资讯专栏INFORMATION COLUMN

ESP8266使用Arduino ide通过MQTT协议接入阿里云平台(上传温湿度,甲醛浓度,土壤湿

Loong_T / 1512人阅读

摘要:具体操作如下创建自己的设备进入到阿里云控制台,找到物联网平台,创建属于自己的设备点击公共实例进行创建里面有个设备管理,点击产品,里面有个创建产品输入名称即可,然后选择标准品类这里我创建的是温湿度检测。

jetson nano和K210的学习就这样告一段落了,看着手上的东西,还有一块ESP8266,这不是接入物联网的好工具吗,于是便开始了解这个东西,真的真的好香,网上有安信可和乐鑫的官方教程,因为python环境的冲突放弃了安信可,选择了更为简单的Arduino ide进行学习,今天我给大家分享一下直接上云的学习过程。


前言

之所以选择Arduino ide进行开发,原因主要有两个:一、安信可和我电脑的环境冲突了,另外本人也不是很会JAVA 。二、之前有过51和32的学习经历上手Arduino ide很快代码一下就能看懂(Arduino开发真的好丝滑)。好了,废话不多说,这篇博客将开启你的上云之旅。

一、ESP8266是什么?

ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网通信,实现联网功能。

二、操作步骤

1.环境准备

1.硬件准备

这里我准备了如下东西
1.ESP8266X1
2.0.96寸OLED显示屏X1
3.DHT11温湿度传感器X1
4.YL-69土壤湿度传感器X1
5.MQ-3酒精浓度传感器X1

2.软件准备

1.Arduino ide1.8.3

基本上准备这么多东西就够了,首先你需要在Arduino ide上配置ESP8266的开发环境,网上真的太多了,我就不一点点的介绍了,可以推荐一个up主的视频讲的特别好。(https://www.bilibili.com/video/BV1SX4y1F77s?p=1)

配置完成后就可以在工具进行选择了,这里我选择的是We Mos D1 R1,其实还有好多版本都可以。

2.阿里云端

你要上传到云平台,肯定需要在阿里云端进行相应的配置,得到你需要的三元组以及其他一些属性等等。具体操作如下

1.创建自己的设备


进入到阿里云控制台,找到物联网平台,创建属于自己的设备

点击公共实例进行创建

里面有个设备管理,点击产品,里面有个创建产品

输入名称即可,然后选择标准品类

这里我创建的是温湿度检测。在设备里添加设备就可以了

点击查看,里面就有你需要的三元组

到这里,阿里云端的准备工作就完成了。

2.ESP8266端

一个好的教程真的很重要,这里我附上上云的源码,大家可以根据我写的备注自行修改

#include #include #include #include "DHT.h"#define sensor_Pin   0  #define DHTPIN 2     #define DHTTYPE DHT11   DHT dht(DHTPIN, DHTTYPE);float h;float t;long s;// 连接WIFI和密码 #define WIFI_SSID         "wifi名"#define WIFI_PASSWD       "密码"//设备的三元组信息#define PRODUCT_KEY       "*****"#define DEVICE_NAME       "*****"#define DEVICE_SECRET     "*****"#define REGION_ID         "cn-shanghai"//不需要改 #define MQTT_SERVER       PRODUCT_KEY ".iot-as-mqtt." REGION_ID ".aliyuncs.com"#define MQTT_PORT         1883#define MQTT_USRNAME      DEVICE_NAME "&" PRODUCT_KEY#define CLIENT_ID     //这里使用技小新可以生成,注意密码和密钥一定要对否则连不上MQTT    "FESA234FBDS24|securemode=3,timestamp=789,signmethod=hmacsha1|"#define MQTT_PASSWD       "***********************"#define ALINK_BODY_FORMAT         "{/"id/":/"ESP8266/",/"version/":/"1.0/",/"method/":/"thing.event.property.post/",/"params/":%s}"#define ALINK_TOPIC_PROP_POST     "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/event/property/post"unsigned long lastMs = 0;WiFiClient espClient;PubSubClient  client(espClient);float soil_data = 0;  //连接wifivoid wifiInit(){    WiFi.mode(WIFI_STA);    WiFi.begin(WIFI_SSID, WIFI_PASSWD);    while (WiFi.status() != WL_CONNECTED)    {        delay(1000);        Serial.println("WiFi not Connect");    }    client.setServer(MQTT_SERVER, MQTT_PORT);   //连接MQTT服务器 }//mqtt连接void mqttCheckConnect(){    while (!client.connected())    {        client.connect(CLIENT_ID, MQTT_USRNAME, MQTT_PASSWD);    }}void mqttIntervalPost(){  soil_data = analogRead(sensor_Pin);   //模拟数据读取(A0脚输入的数据)385-1024  soil_data -= 385;         //0-639  soil_data /= 6.39;        //0.00-100.00,变为百分比  soil_data = 100 - soil_data;         //修改为百分比越大湿度越大    char param[32];    char jsonBuf[128];    read_data();    sprintf(param, "{/"CurrentTemperature/":%f}",t);    //这里/"**"/要选择对应的标识符,否则数据发不过去。    sprintf(jsonBuf, ALINK_BODY_FORMAT, param);    Serial.println(jsonBuf);    boolean e = client.publish(ALINK_TOPIC_PROP_POST, jsonBuf);    sprintf(param, "{/"CurrentHumidity/":%f}",h);    sprintf(jsonBuf, ALINK_BODY_FORMAT, param);    Serial.println(jsonBuf);     boolean f = client.publish(ALINK_TOPIC_PROP_POST, jsonBuf);}void setup() {    Serial.begin(115200);    wifiInit();    dht.begin();}void read_data(){  float read_h = dht.readHumidity();//湿度  float read_t = dht.readTemperature();//温度  h = read_h;  t = read_t;  Serial.print("湿度:");  Serial.print(h);  Serial.println("%");  Serial.print("温度:");  Serial.println(t);}void loop(){   s=millis();  delay(500);  read_data();  Serial.println(millis()-s);    if (millis() - lastMs >= 5000)    {        lastMs = millis();        mqttCheckConnect();         mqttIntervalPost();    }    client.loop();    delay(2000);}

标识符的选择如下图

然后烧写程序到ESP8266上。

三、现象展示


这里我用了好几个模块,所以会显示很多。
一篇好的博客可以让你事半功倍,这便是我写博客的初心,希望你看了这篇博客能够2小时上云。加油!
嘿嘿,今天还是很充实的,可以将各个模块的数据上传到云平台了,下一步通过串口接收数据,将接收到的数据上传到云平台。

总结

学习是一个有趣的过程,我写博客主要是为了记录自己的大学生活,同样也希望我的博客能够帮到那些想学习的同学。fighting!!!
这里同样送给大家一句话:
瞩目远方,你才会加快步伐;观赏风景,你才会步履轻盈;风雨兼程,你才能成功登顶!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123911.html

相关文章

  • 【基于Arduino IDE平台开发ESP8266连接巴法

    摘要:教程传送门基于平台开发连接巴法云简介实验准备硬件软件实验步骤点灯实验发送温湿度指令升级总结关于巴法云专注于开源,智造,创新,分享。 Arduino教程传送门????...

    不知名网友 评论0 收藏0
  • ESP8266+Blinker 的万物互联(智能家居篇)

    摘要:下面是演示视频物联网文章目录前言一准备二操作步骤配置配置三效果展示总结前言实现万物互联第一步,千里点灯,然后添加你想要的模块就可以了,接下来我们进入正文。 前面学习...

    CntChen 评论0 收藏0
  • (超简单)ESP8266深度睡眠模式下远程采集湿信息

    摘要:超简单深度睡眠模式下远程采集温湿度信息项目背景相关技术深度睡眠模式温湿度采集数据收发前后端实现后端前端项目背景自己用收纳箱做了一个用于存放打印耗材的干燥箱,想用闲置的开发板和温湿度传感器做一个远程温湿度监测的小项目。 ...

    pkhope 评论0 收藏0
  • 基于STM32的ESP8266 WIFI与ONENET通信连接(2),平台以及手机APP数据显示

    摘要:基于的与通信连接,实现温湿度数据互传,控制第一步,在实现将传感器数据采集之后,并且完成配网步骤,可以正常通过模块正常将数据发送到云平台之后进行以下阅读,上述内容可以跳转到以下链接进行查看具体操作。 ...

    antz 评论0 收藏0
  • esp8266 TCP接入巴法物联网平台

    摘要:本文,将介绍如何通过这个芯片连接到巴法云的设备云。例如向主题推送数据,可为示例调试测试的内容就是上面的指令,使用网络调试助手连接上巴法云后,修改就可以直接发送指令了。 ...

    xingpingz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<