irpas技术客

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

网络投稿 2318

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

硬件准备

ESP8266-12F开发板 DHT11 或 DHT22温湿度传感器

Arduino IDE环境

我们使用ESP8266开发板在Arduino IDE下编译使用前,需要在Arduino下配置ESP8266的开发环境 在Arduino首选项中,添加附加开发板管理器网站:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

接着在工具——开发板——开发板管理器中下载安装ESP8266的开发板 安装好后,在开发板中选择:NodeMCU开发板

阿里云端

进入阿里云官网 登陆后进入阿里云生活物联网 新建项目 新建产品 新建属性 新建两个属性,一个是温度,一个湿度(注意温度中标识符是temperature,湿度的标识符是humidity) PS:注意,这里有一点,我们在这里创建的属性中,数据类型要和代码中的数据类型一致,图中我们的数据类型创建的是int型,对应的我们代码中定义的数据类型也要是int型,float,double同理,DHT传感器检测范围可以精确到小数点后两位,所以建议数据类型设置为double或float,(图中疏忽,于下面的代码不符,还请见谅) 在设备中,选择找到乐鑫 继续新增测试设备 成功新增后得到密钥 保存记录好密钥!

实物接线 DHT11ESP8266VCC3VGNDGSD4

IDE库文件配置 ArduinoJson

AliyunIoTSDK

PubSubClient

Crypto

AWS-SDK-ESP8266

容易出现的问题 库文件缺失

注意,因为AliyunSDK依赖库比较多,以上的库请务必安装完毕 若出现报错 缺少SHA256.h即为Crypto库没有安装 SHA256.h是加密算法,如果有需要单独下载 ——SHA256.h

MQTT连接失败

若串口出现MQTT连接失败,则需要修改PubSubClient.h 默认的SIZE和KEEPALIVE较小分别修改为1024,60即可

代码部分 #include <ESP8266WiFi.h> static WiFiClient espClient; /*温湿度*/ #include "DHT.h" #define DHTTYPE DHT11 #define dht_dpin D4 DHT 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(); // 初始化WIFI wifiInit(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"); }

实际效果图: 在设备详情-运行状态(勾选实时刷新)下可以看到当前实时的温湿度 祝你顺利!!!


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #esp8266温度监测传输 #