ESP8266+dht11 连接阿里云 上传温湿度
①在刚开始研究的时候也是一头雾水,在看了几天各路大神写的博客和视频之后,最终得以实现。
②接下来让我详述一下整个过程
需要编写代码,云端创建产品和设备,还有阿里云的库文件需要用到
下面让我们开始吧!
一、创建云端设备
1.1首先我们进到阿里云的官网,在产品里找到物联网平台

接下来进入控制台

我记得是先要开通物联网平台,然后看下图

我这里显示已经开通了公共实例,没开通的话,需要先开通一下,需要等待一会,才能开通完成。
接下来点击公共实例,跳转到如下界面

我们点击创建产品

跳转到下图

填入产品名称(这个没有要求,自己填写就行),然后下面选择产品所属品类,这里我们搜索温湿度选择第一个即可。
下面的选项默认即可

点击确认,产品就创建完成了

接下来创建设备

选择刚才创建的产品,并输入设备名称

创建完产品就如下,箭头所指的地方信息是我们需要用到的,点击查看,可以看到ProductKey、DeviceName、DeviceSecret,这三个是要写到代码里的


我们的设备创建完了,可以看到当前是未激活的状态,这里的产品名称和设备名称我是随意输入的

至此云端上的任务已经完成!完成了本次项目的一大步!

二、在Arduino或者VScode里编写代码,安装库文件,修改PubSubClient里的参数

2.1我们先安装库文件,安装AliyunIoTSDK、ArduinoJson、 PubSubClient、Crypto,以上四个库

在里面搜索安装即可

2.2 修改PubSubClient里的参数
因为要连接阿里云,所以需要修改参数
找到我们PubSubClient库文件位置,一般都在Arduino里的Libraries里面,打开PubSubClient里面的src文件,可以看到.h头文件,打开它,修改第26行和第31行的参数,改为1024和60,如下图。

2.3编写代码,烧录到esp8266
代码如下,可以直接复制使用
但是这里的宏定义需要修改自己的设备相关参数,在前面已经强调过在哪里查看了,忘记了可以往回翻
#define PRODUCT_KEY “gsastNB7Yat”
#define DEVICE_NAME “temperature”
#define DEVICE_SECRET “d184b8d1688523eb04ec6249234fe735”//(这三个东西在阿里云里面)
#define REGION_ID “cn-shanghai”//这里无需修改

#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>//设置用于连接温湿度传感器的引脚
#define DHTPIN 13  //根据硬件连接确定引脚编号(注意,这里我连接的是D7,也就是GPIO13)
#define Led  D4#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
float h,t;// 引入 wifi 模块,并实例化,不同的芯片这里的依赖可能不同
#include <ESP8266WiFi.h>
static WiFiClient espClient;// 引入阿里云 IoT SDK
#include "AliyunIoTSDK.h"// 设置产品和设备的信息,从阿里云设备信息里查看
#define PRODUCT_KEY "gsastNB7Yat"
#define DEVICE_NAME "temperature"
#define DEVICE_SECRET "d184b8d1688523eb04ec6249234fe735"//(这三个东西在阿里云里面)
#define REGION_ID "cn-shanghai"// 设置 wifi 信息
#define WIFI_SSID "明小岩"//(这里面连你自己家的WiFi,注意要是2.4G频段的,5G的不行)
#define WIFI_PASSWD "999999999"//(你自己家的WiFi密码)void setup()
{Serial.begin(115200);// 初始化 wifiwifiInit(WIFI_SSID, WIFI_PASSWD);初始化 iot,需传入 wifi 的 client,和设备产品信息AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);// 绑定一个设备属性回调,当远程修改此属性,会触发 powerCallback// PowerSwitch 是在设备产品中定义的物联网模型的 id// AliyunIoTSDK::bindData("温湿度",CurrentTemperature);// // 发送一个数据到云平台,LightLuminance 是在设备产品中定义的物联网模型的 id// AliyunIoTSDK::send("LightLuminance", 100);pinMode(DHTPIN,INPUT);pinMode(Led,OUTPUT);dht.begin();}void loop()
{AliyunIoTSDK::loop();  AliyunIoTSDK::send("CurrentTemperature",t);AliyunIoTSDK::send("CurrentHumidity",h);h = dht.readHumidity();t = dht.readTemperature();                Serial.print("Temperature:");                      Serial.println(t);                                     delay(1000);Serial.print("Humidity:");                            Serial.print(h);                                    Serial.println("%");                                 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");digitalWrite(Led, LOW);}// 电源属性修改的回调函数
void powerCallback(JsonVariant p)
{int PowerSwitch = p["PowerSwitch"];if (PowerSwitch == 1){// 启动设备}
}

代码烧录完,连接上网络,可以打开串口监视器,看到温湿度和连接MQTT的状态

2.4另外强调
AliyunIoTSDK::send(“CurrentTemperature”,t);
AliyunIoTSDK::send(“CurrentHumidity”,h);
这两行代码,CurrentTemperature、CurrentHumidity,是与我们云端产品的功能定义标识符一致,要不然数据传不上来,另外标识符的数据类型也要与代码中的一致。

还有这里我注释掉了,这个代码是干嘛的呢,就是这里设置一个属性与云端的对应上,就是我们产品里定义的功能,比如温度或者湿度这些。

powerCallback是一个函数名,而PowerSwitch是一个功能标识符

我们可以在此设置一些其他东西的控制,比如控制一个led点亮,蜂鸣器响等等。
我举一个例子哈,比如说,我们想控制led灯,我们就可以像下面这样,其他的大家可以多多尝试!

void powerCallback(JsonVariant p)
{int PowerSwitch = p["PowerSwitch"];if (PowerSwitch == 1){digitalWrite(Led, LOW);}
}

在线调试就可以了,我们调试开关为1(打开),然后点设置,可以看到我们ESP8266的led灯点亮了!

三、最终效果展示

温度和湿度已经上传到阿里云,只要我们代码烧录到esp8266里,并且连接上wifi网络(热点),我们云端的设备就会显示在线的状态,数据也会上传。

最后希望大家顺利完成此项目,如有遗漏可以评论告诉我一下,本篇文章为记录自己学习生活,并且希望和我一样学习esp8266 的小伙伴可以借鉴经验,更快入手,建议大家库文件都从ArduinoIDE里安装,如果从github里下载可能有问题,大家多多尝试!

ESP8266+dht11 连接阿里云 上传温湿度相关推荐

  1. MQTT协议-报文分析及网络客户端报文测试(MQTT报文连接阿里云上传数据+订阅数据)

    文章目录 一.本文章所涉及到的内容 二.感性认识MQTT协议 三.准备信息 (一)工具获取 (二)获取信息 1.获取三元组信息 2.获取发布topic和订阅topic 3.客户端ID,用户名,哈希加密 ...

  2. 【arduino】nodemcu连接阿里云上传PZEM-004T数据

    本博客讲解nodemcu使用arduino编写代码,连接阿里云并上传PZEM-004T的数据. 设备 PZEM-004T 10A v3模块, 测量负载的电压.电流.功率.用电量等. nodemcu 不 ...

  3. 基于STM32+FreeRtos+ESP8266+MQTT连接阿里云

    基于STM32+FreeRtos+DHT12+ESP8266+MQTT连接阿里云 1.概述 2.实现步骤 2.1.MQTT.fx模拟器与阿里云通信 2.2.STM32与阿里云通信 3. 搭建云平台 3 ...

  4. 【阿里云生活物联网架构师专题 ④】分享可商用的ESP8266 SDK连接阿里云物联网生活平台的在线远程升级OTA笔记。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.esp32接入阿里云物联网平台,实现天猫精灵语音控制: 2.es ...

  5. linux服务器选ubantu或centos_如何通过SSH连接阿里云上的Linux系统

    首先SSH是啥,维基一下: Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境[1].SSH通过在网络中创建安全隧道来实现SS ...

  6. 微信小程序 实现阿里云上传

    先安装,我使用composer安装 在项目的根目录运行composer require aliyuncs/oss-sdk-php 微信小程序页面 <l-image-picker count=&q ...

  7. Arduino+ESP8266自动配网并上传温湿度、光照强度到OneNET

    前言:     从接触ESP8266到现在有一段时间了,也感受到ESP8266的强大,其高性价比给极客者们带来了极大的福音.之前用ESP8266改装了一部遥控车,使其能用手机控制,手机app是用易安卓 ...

  8. STM32+ESP8266+MQTT连接阿里云服务器(一、烧写MQTT固件)

    用STM32连接阿里云服务器首先ESP8266得支持MQTT的AT指令,所以!!!在连接阿里云服务器时,得先对ESP8266进行固件替换. 工具 硬件:ATK-ESP8266.USB转串口 软件:fl ...

  9. STM32+ESP8266+MQTT连接阿里云服务器(四、STM32连接阿里云平台)

    材料: STM32F103.ESP8266.串口 第三章介绍了利用串口调试助手+AT指令连接阿里云平台的,现在用代码去实现其功能,利用STM32的串口2跟WIFI模块进行数据通信即可.这里我实现的功能 ...

最新文章

  1. Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) B. Verse Pattern 水题
  2. 一个公众号可以绑定几个小程序_如何实现微信小程序和公众号的绑定
  3. 谷歌AI一次注释了10%的已知蛋白质序列,超过人类十年研究成果
  4. jQuery-给ul添加了li之后,添加的li并没有绑定点击监听怎么办?
  5. 网管,待遇为何如此差劲?
  6. javaEE 飞机大战
  7. 计算机网络考试试题库-期末考试题库含答案
  8. python和java学哪个好-Python和Java两门编程语言,学习哪个更好?
  9. 6.RabbitMQ实战 --- 从故障中恢复
  10. 高手的思维与打法:灰度思维,黑白决策
  11. linux内核旋转屏幕,全志A33屏幕旋转(Android)
  12. java读取word2010_Java 添加、读取、删除Word脚注/尾注
  13. 计算机的软硬件发展进程,计算机的发展史
  14. CSS DIV 滚动(CSS,HTML)
  15. Git之版本回退与前进
  16. 思维导图(自我介绍)
  17. 计算机的主要配件是哪两个,组成计算机cpu的两大部件是什么
  18. 微信小程序实现瀑布流,如何实现!
  19. [沟通能力] 述职,你搞定了吗?
  20. 数据库同步非常实用的工具,阿里数据迁移工具yugong使用细则

热门文章

  1. C - Pangu and Stones 区间DP
  2. P型硅与N型硅的区别
  3. FOTA与 SOTA介绍
  4. 电信主机托管费用_电信托管服务器需要如何计费?
  5. Web渗透测试学习笔记
  6. Rust企业落地探索
  7. 年仅22岁的苹果视障工程师正在改变科技世界
  8. ssm整合笔记(1)-curd
  9. UFI模式下GPT分区安装win8
  10. Z-001 IVD体外诊断液面探测专题