使用ESP-01S与阿里云物联网平台服务器的连接与配置(温湿度检测)

avatar
作者
筋斗云
阅读量:1

本文旨在手把手的教大家学会使用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
点击前往

4.手机APP开发(待补充)

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!