Arduino 您所在的位置:网站首页 室内温度测量器怎么使用 Arduino

Arduino

2024-06-27 15:46| 来源: 网络整理| 查看: 265

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 static WiFiClient espClient; /*温湿度*/ #include "DHT.h" #define DHTTYPE DHT11 #define dht_dpin D4 DHT dht(dht_dpin, DHTTYPE); /*阿里云SDK*/ #include /*配置阿里云设备信息*/ #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"); }

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有