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

硬件准备

ESP8266-12F开发板
DHT11DHT22温湿度传感器
在这里插入图片描述

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,(图中疏忽,于下面的代码不符,还请见谅在这里插入图片描述
在设备中,选择找到乐鑫
在这里插入图片描述
继续新增测试设备
在这里插入图片描述
成功新增后得到密钥
在这里插入图片描述
保存记录好密钥!

实物接线

DHT11ESP8266
VCC3V
GNDG
SD4

在这里插入图片描述

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 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");
}

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

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BIGBOSSyifi

Thanks & Salute

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值