本文旨在手把手的教大家学会使用ESP-01S连接阿里云物联网平台服务器,并通过手机APP监测(待补充)以DHT11检测环境温湿度数据为例。
1.阿里云平台的配置
首先注册登录后在主页面搜索物联网平台
选择物联网平台
然后点击管理控制台
然后选择左下角的公共实例
这里我是已经开通过了,直接点击开通即可。开通后点击进入即可。
进入后点击设备管理界面
然后点击产品
点击创建产品
名字自取,品类选择自定义,然后点击确定
创建完成点击添加设备
输入设备名称 DeviceName 随意 不过后面会用到 完成点击确认即可
然后点击查看设备信息
然后就能看到你所创建的设备
点击查看产品密钥
记录这些数据后面代码部分要用
然后点击产品界面 点击查看产品
然后点击功能定义
点击编辑草稿
选择添加自定义功能
我这里添加的是温湿度检测,按需添加即可
设置完成后点击左下角的发布上线
在弹出的窗口打钩确认即可
到这一步产品的发布就大功告成了,剩下的只需要配置代码即可
2.配置部分
模块使用ESP-01S以及DHT11模块
使用Arduino IDE 进行固件编写
不熟悉的小伙伴可以通过下方链接进入太极创客的视频进行学习
点击学习Arduino编程
安装完Arduino IDE后 打开软件选择工具-管理库
输入AliyunIoTSDK然后点击安装即可 如果后面缺少其他库同理
然后在开发板管理器选择ESP8266
安装完成后选择NodeMCU即可 ESP-01S与ESP8266 NodeMCU开发板通用
3.代码部分
#include <ESP8266WiFi.h> static WiFiClient espClient; //引入DHT库使用DHT11 #include <DHT.h> // 引入阿里云 IoT SDK #include <AliyunIoTSDK.h> // 设置产品和设备的信息,从阿里云设备信息里查看 #define PRODUCT_KEY "修改为自己的信息" #define DEVICE_NAME "修改为自己的信息" #define DEVICE_SECRET "修改为自己的信息" #define REGION_ID "cn-shanghai"//修改为自己的信息 // 设置 wifi 信息 #define WIFI_SSID "修改为自己的信息" #define WIFI_PASSWD "修改为自己的信息" #define DHTPIN 2 // 连接到DHT11的引脚 #define DHTTYPE DHT11 // 使用DHT11传感器 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(115200); //pinMode(DHTPIN, OUTPUT); // 将GPIO0引脚设置为输出模式 // 初始化 wifi wifiInit(WIFI_SSID, WIFI_PASSWD); dht.begin(); // 初始化 iot,需传入 wifi 的 client,和设备产品信息 AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID); } void loop() { float humidity = dht.readHumidity(); float temperature = dht.readTemperature(); Serial.print("Humidity: "); Serial.print(humidity); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(temperature); Serial.println(" °C"); // 发送一个数据到云平台,Temperature是在设备产品中定义的物联网模型的 id AliyunIoTSDK::send("Temperature", temperature);//修改为自己的标识符 delay(1000); AliyunIoTSDK::send("Humility", humidity);//修改为自己的标识符 AliyunIoTSDK::loop(); delay(1000); } // 初始化 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"); }
这里使用了阿里云官方提供的SDK,所以我们只需要配置产品和设备的信息然后调用AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);即可
这个函数一共有五个参数
分别是espClient 开头定义的wiFiClient类的对象
PRODUCT_KEY 产品密钥
DEVICE_NAME 设备名称
DEVICE_SECRET 设备密钥
REGION_ID 地区ID
这四项都能在设备界面查看
地区一共有这些,显示华东2(上海)的不需要修改直接使用cn-shanghai即可
剩下的需要修改的部分为数据上传部分
将Temperature Humility修改为产品-功能定义处的标识符即可
烧录成功后打开串口监视器(因为没接DHT11所以还没有数据)
连接好DHT11然后使用我自制的电源供电
(这里提一下数据类型的匹配,代码里的温湿度数据为float类型,需要将产品功能定义里的数据类型也改成float类型,不然会不显示)
这时打开设备-物模型数据就,成功显示了检测的数据,到这里就大功告成了!
部分常见问题可以前往这位大佬的帖子进行观看,篇幅有限不再赘述,也可以评论或者私信讨论。
https://blog.csdn.net/tiandiren111/article/details/107032096
点击前往