300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Arduino-ESP8266检测温湿度上传阿里云

Arduino-ESP8266检测温湿度上传阿里云

时间:2023-07-03 16:31:45

相关推荐

Arduino-ESP8266检测温湿度上传阿里云

Arduino-ESP8266检测温湿度上传阿里云

硬件准备Arduino IDE环境阿里云端实物接线IDE库文件配置ArduinoJsonAliyunIoTSDKPubSubClientCryptoAWS-SDK-ESP8266容易出现的问题库文件缺失MQTT连接失败代码部分

硬件准备

ESP8266-12F开发板

DHT11DHT22温湿度传感器

Arduino IDE环境

我们使用ESP8266开发板在Arduino IDE下编译使用前,需要在Arduino下配置ESP8266的开发环境

在Arduino首选项中,添加附加开发板管理器网站:

/stable/package_esp8266com_index.json

接着在工具——开发板——开发板管理器中下载安装ESP8266的开发板

安装好后,在开发板中选择:NodeMCU开发板

阿里云端

进入阿里云官网

登陆后进入阿里云生活物联网

新建项目

新建产品

新建属性

新建两个属性,一个是温度,一个湿度(注意温度中标识符是temperature,湿度的标识符是humidity

PS:注意,这里有一点,我们在这里创建的属性中,数据类型要和代码中的数据类型一致,图中我们的数据类型创建的是int型,对应的我们代码中定义的数据类型也要是int型,float,double同理,DHT传感器检测范围可以精确到小数点后两位,所以建议数据类型设置为double或float,(图中疏忽,于下面的代码不符,还请见谅)

在设备中,选择找到乐鑫

继续新增测试设备

成功新增后得到密钥

保存记录好密钥!

实物接线

IDE库文件配置

ArduinoJson

AliyunIoTSDK

PubSubClient

Crypto

AWS-SDK-ESP8266

容易出现的问题

库文件缺失

注意,因为AliyunSDK依赖库比较多,以上的库请务必安装完毕

若出现报错 缺少SHA256.h即为Crypto库没有安装

SHA256.h是加密算法,如果有需要单独下载 ——SHA256.h

MQTT连接失败

若串口出现MQTT连接失败,则需要修改PubSubClient.h

默认的SIZEKEEPALIVE较小分别修改为102460即可

代码部分

#include <ESP8266WiFi.h>static WiFiClient espClient;/*温湿度*/#include "DHT.h" #define DHTTYPE DHT11#define dht_dpin D4DHT dht(dht_dpin, DHTTYPE);/*阿里云SDK*/ #include <AliyunIoTSDK.h>/*配置阿里云设备信息*/#define PRODUCT_KEY "***********" //产品KEY#define DEVICE_NAME "********"//设备名字#define DEVICE_SECRET "******************"//设备密钥#define REGION_ID "cn-shanghai"//连接服务器/* 配置WIFI */#define WIFI_SSID "你的wifi名称"#define WIFI_PASSWD "你的wifi密码"void setup(){Serial.begin(115200);dht.begin();// 初始化WIFIwifiInit(WIFI_SSID, WIFI_PASSWD); // 传入WIFI-client 设备产品信息AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);//AliyunIoTSDK::send("temperature", t); 如有需要可发送模拟数据}void loop(){AliyunIoTSDK::loop();float h = dht.readHumidity();float t = dht.readTemperature();AliyunIoTSDK::send("temperature", t);AliyunIoTSDK::send("humidity", h);delay(800);}// 初始化 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");}

实际效果图:

设备详情-运行状态(勾选实时刷新)下可以看到当前实时的温湿度

祝你顺利!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。