基于Arduino(ESP8266)与阿里云物联网产品开发基础教程

       这是我个人第二次接触Arduino(ESP8266)这块板,再此之前的话使用的是Arduino R1,R1是没有自带ESP8266的,建议大家选单片机的时候选Arduino有自带ESP8266,这样就可以少走弯路,省了很多代码。


1、首先,我们先在电脑下载并安装Arduino IDE,大家可以去Arduino中文社区下载自己想要的版本https://www.arduino.cn/,因为我之前使用过一次这个软件,就不需要再去进行安装驱动,不懂驱动安装的同学可以去网上看看教程,这里就不教大家安装驱动。

2、接下来就要安装ESP8266Arduino开发环境,打开  文件->首选项->附加开发板管理器网址  这里输入http://arduino.esp8266.com/stable/package_esp8266com_index.json,确定后建议关闭软件重新开启再使用。

                    

                                                                              图1

接下来就是下载对应的开发板,打开  工具->开发板->开发板管理器  查找ESP8266,选择你想要的版本安装就可以,安装过程较久,大家耐心等待就好,不要中途觉得卡了就关了界面进入重新下载,我就是在这折腾了几次,浪费了些时间。

     

                                                                               图2

3、开发环境搭建好后,直接使用库ESP8266WiFi,以下代码就能使ESP8266连接上家里WiFi。

#include <ESP8266WiFi.h>
static WiFiClient espClient

#define WIFI_SSID       "wenwen"      //替换自己的WIFI名
#define WIFI_PASSWD     "88888888"    //替换自己的WIFI密码

void setup()
{
  Serial.begin(115200);

  //连接到wifi
  wifiInit(WIFI_SSID, WIFI_PASSWD);
}

void loop()
{
  
}
//wifi 连接
void wifiInit(const char *ssid, const char *passphrase)
{
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, passphrase);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(1000);
    Serial.println("WiFi not Connect");
  }
  Serial.println("Connected to AP");
}

4、成功连接WiFi,接下来就是连接上我们阿里云物联网创建的产品,这里需要用到几个接入阿里云的库AliyunIoTSDK库、crypto库、PubSubClient库,打开  项目->加载库->库管理器  安装完这三个库后就算完成了接入阿里云的环境配置。

                                                                                      图3

安装好以上几个库,要想接入到物联网的产品还需要提供产品的三元组。

              

                                                                                       图4

程序中写入自己三元组信息。

                    

                                                                                       图5

调用一系列ESP8266和阿里云的SDK函数,让客户端连接到阿里云,当然也包含了复杂的密码认证等,在setup()函数中加入这条语句即可接入到你对应的设备。

 AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);

5、最后就是Arduino单片机如何向阿里云物联网设备进行发送信息和接收信息。

在loop()函数中加入以下代码,AliyunIoTSDK::send()是发送信息到阿里云的函数,body_temperature是设备的标识符,wendu是你要发送的变量,这里要注意,数据类型要一样,不然会报错。

     AliyunIoTSDK::loop();
    if (millis() - lastMsMain >= 5000)
    {
        lastMsMain = millis(); 
//       mqttCheckConnect();
//       messageBufferCheck();
   AliyunIoTSDK::send("body_temperature", wendu);
    }

在setup()函数中加入以下代码,  AliyunIoTSDK::bindData()是回调信息的函数,可以获取设备当前标识符的值,led为标识符,LED为函数名。

  AliyunIoTSDK::bindData("led", LED);   

LED的函数代码如下

//LED控制亮灭函数
void LED(JsonVariant L)//固定格式,修改参数l
{
  int LED = L["led"];//参数l
  LED_kg=LED;
  if (LED == 0)
  {
    digitalWrite(ledPin, LOW);
  }
  else 
  {
    digitalWrite(ledPin, HIGH);
  }
  Serial.printf("收到的led是:"); 
  Serial.println(LED);
}         

                                                                                            图6


      配置完以上这些,就可以做各种各样的小产品了(●'◡'●)!!!!!!!!其实挺简单的,自己做的时候走了不少弯路,网上查阅了挺多资料和视频,希望我的小总结能帮助到你。

猜你喜欢

转载自blog.csdn.net/weixin_46458179/article/details/107776072