Esp32读取温湿度数据通过mqtt上传阿里云平台

目录

前言

一、esp32刷MicroPython固件库

二、创建阿里云产品

1.注册阿里云账号并登录控制台

2.找到物联网平台中的公共实例进入

3.创建产品及设备

4.编辑物模型并发布

5.最后找到刚创建的产品设备查看DeviceSecret一键复制

6.打开mqtt单片机编程工具将刚才复制的设备证书复制进去得到设备三元组用于后面的编程

三、读取温湿度及光照数据通过mqtt上传阿里云

四、设置产品规则引擎

五、应用层的实现


前言

最近做了个课设有点小心得,在这里记录下。


内容主要是基于esp32读取温湿度以及光照强度然后连接路由器通过mqtt协议上传数据到阿里云服务器,最后显示到微信小程序界面,并且可以通过发布主题达到控制传感层的led以及蜂鸣器。

一、esp32刷MicroPython固件库

1、安装MicroPython开发环境uPyCraft

2.选择固件库的.bin文件和COM口刷固件

3.按住esp32开发板的BOOT按钮,直到出现如下界面,则刷新开始

3.运行如下代码,如果esp32开发板上的led闪烁则成功。

二、创建阿里云产品

1. 注册阿里云账号并登录控制台

2.找到物联网平台中的公共实例进入

3.创建产品及设备

4.编辑物模型并发布

5.最后找到刚创建的产品设备查看DeviceSecret一键复制

6.打开mqtt单片机编程工具将刚才复制的设备证书复制进去得到设备三元组用于后面的编程

三、读取温湿度及光照数据通过mqtt上传阿里云

代码如下:

from umqtt.simple import MQTTClient
from machine import ADC, Pin
import network
import time
import machine
import dht
from machine import Timer
#wifi账号密码
SSID="dmx"
PASSWORD="dmx12593"
#阿里云mqtt服务器域名(改成自己的)
SERVER ='a1mryuZf1Md.iot-as-mqtt.cn-shanghai.aliyuncs.com'
#三元组(找到mqtt工具上对应的改)
CLIENT_ID = "esp32|securemode=3,signmethod=hmacsha1,timestamp=789|"   
username='esp32&a1mryuZf1Md'
password='91eb97701704ffb99977a313c74a7502b8cecb3e'
#这个topic改成matt工具的属性上报那一行
publish_TOPIC = '/sys/a1mryuZf1Md/esp32/thing/event/property/post'
subscribe_TOPIC ='/a1mryuZf1Md/esp32/user/dmx123'
client=None
mydht=None
def sub_cb(topic, msg):  
     print(msg)
    
     if msg == b'{"Led":1}':
       led.value(1)
     elif msg == b'{"Led":0}':
       led.value(0)
     elif msg == b'{"Beep":1}':
       beep.value(1)
     elif msg == b'{"Beep":0}':
       beep.value(0)
      

    
def ConnectWifi(ssid,passwd):   #连接wifi
    global wlan
    wlan=network.WLAN(network.STA_IF)         #create a wlan object
    wlan.active(True)                         #Activate the network interface
    wlan.disconnect()                         #Disconnect the last connected WiFi
    wlan.connect(ssid,passwd)                 #connect wifi
    while(wlan.ifconfig()[0]=='0.0.0.0'):
        time.sleep(1)
    print(wlan.ifconfig())
 
def apptimerevent(mytimer):
    try:
        wsData=ReadTemHum()
        Light=ReadLight()
        Led=led.value()
        Beep=beep.value()
        
        mymessage='{"params": {"Temp": %d ,"Hum": %d ,"Light": %d,"Led":%d,"Beep":%d}, "method": "thing.event.property.post"}'%(wsData[0],wsData[1],Light,Led,Beep)
        client.publish(topic=publish_TOPIC,msg= mymessage, retain=False, qos=0)
    except Exception as ex_results2:
        print('exception',ex_results2)
        mytimer.deinit()
        
def ReadTemHum():   #获取温湿度
    mydht.measure()
    tem=mydht.temperature()
    hum=mydht.humidity()
    data=[tem,hum]
    print(data)
    return data
    
def ReadLight():
   adcData=mylight.read()
   Lightvalu=10240000/(adcData*1.1)-2500 #adc转换
   Light=round(Lightvalu)  #取整
   print(Light)
   return Light
    
if __name__=='__main__':
    try:
        mydht=dht.DHT11(machine.Pin(4)) 
        mylight=ADC(machine.Pin(34))
        led=Pin(2,Pin.OUT)
        beep=Pin(5,Pin.OUT)
        led.value(0)
        beep.value(0)
        ConnectWifi(SSID,PASSWORD)
        client = MQTTClient(CLIENT_ID, SERVER,0,username,password,60)     #create a mqtt client
        print(client)
        client.set_callback(sub_cb)                         #set callback
        client.connect()                                    #connect mqtt
        client.subscribe(subscribe_TOPIC)                   #client subscribes to a topic
        mytimer=Timer(0)
        mytimer.init(mode=Timer.PERIODIC, period=5000,callback=apptimerevent)   #初始化回调函数
        while True:
            client.wait_msg()                                #wait message          
    except Exception  as ex_results:
        print('exception1',ex_results)
    finally:
        if(client is not None):
            client.disconnect()
        #wlan.disconnect()
        #wlan.active(False)



注意:这里上传的数据格式因为阿里云物模型上报规定需要加上params及method。还有上传的数据的键值 需要和你设置的物模型的标识符一致

eg:{"params":

{"Temp": %d ,

"Hum": %d ,

"Light": %d,

"Led":%d,

"Beep":%d},

"method": "thing.event.property.post"}

四、设置产品规则引擎

规则引擎中的云产品流转主要是为了实现两个设备之间的通信,从一个设备的topic转发到另一个设备的topic,从而实现数据的传输。也就是说可以将感知层获得的数据转发到应用层显示。下面开始设置云产品流转规则:

1.首先需要在同一个产品中继续创建一个设备phone代表应用端拿到esp32发过来的数据

2.然后创建规则引擎用于转发数据

处理数据

转发数据到phone设备的topic上

3.然后用阿里云的mqtt调试助手模拟应用端接收数据

4.最后订阅云流转中转发的topic

5.成功收到数据

6.最后最后,在同理创建一个由phone设备转发到esp32设备的规则引擎,用于转发数据控制传感层的led和蜂鸣器。

测试

7.成功亮灯!!!!

五、应用层的实现

前面用的mqtt模拟器成功实现了数据的传输,接下来就可以开始编写微信小程序实现数据的显示及底层的控制

小程序端的具体实现代码等下次有空在搞

未完待续。。。。。。。

要喝肥仔水
关注 关注
  • 19
    点赞
  • 223
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论
20-MicroPython+ESP32实现MQTT通信
weixin_42255154的博客
09-09 1791
通过本实验,学会了使用MicroPython编程语言控制ESP32模块进行MQTT的消息的订阅与发布。
ESP32阿里云物联网平台连接及数据互传(MQTT)_esp32连接阿里云平台
2401_83817418的博客
04-05 1305
你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!!(备注:嵌入式)你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!
Esp32读取温湿度数据上传mqtt服务器
要喝肥仔水的博客
04-25 7794
本地搭建mqtt服务,esp32上传数据
物联网开发笔记(55)- 使用Micropython开发ESP32开发板之MQTT(消息队列遥测传输)实战_micropython mqtt(1)
碧海朝天素
05-08 1089
① 2000多本Python电子书(主流和经典的书籍应该都有了)② Python标准库资料(最全中文版)③ 项目源码(四五十个有趣且经典的练手项目及源码)④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)⑤ Python学习路线图(告别不入流的学习)我们接着往下讲,上面资料你后面再看。打开浏览器,输入输入默认用户名admin和密码public,登录进去:登录进去会强制让你更改密码,你设置好新密码后,就可以操作了。
ESP32+PythonMQTT服务使用例子包含温感和继电器应用
王佩健的博客
02-05 579
3.使用例子,包括控制板子灯+外接温感+继电器,温感是3秒一上报,继电器和灯是通过MQTT 发送指令控制。2.ESP32基础库,放在目录下名称为umqttsimple.py。1.MQTT服务推荐使用。
ESP32-C3通过MQTT协议把温湿度上传阿里云物联网平台
帕法西尔的博客
01-31 9805
最近本来想实现微信小程序通过OneNet平台控制灯开关的,没想到微信小程序代码都写好接口了,才发现onenet想下发命令的应用管理得要钱了,秉承白嫖绝不白给的精神,毅然决然的转用阿里云平台。
[5]ESP32连接阿里云MQTT,并上报传感器数据
保持热爱,奔赴山海。
03-01 2378
上传数据格式因为阿里云物模型上报规定需要加上params和method,还有上传的键值需要和设置的物模型的标识符一致。除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。注意事项:源字符必须以‘\0’结束,目标空间必须足够大,以确保能放源字符串,目标空间必须可变。5.返回值为字符串的长度。2.控制浮点数打印格式。1.格式化数字字符串。
STM32采集温湿度数据通过MQTT协议上传ONENET平台
06-17
在这个项目中,STM32将扮演数据采集和传输的角色,利用DHT11温湿度传感器获取环境信息,并通过MQTT(Message Queuing Telemetry Transport)协议将这些数据上传到ONENET平台。 DHT11是一款常见的数字温湿度传感器,...
基于STM32通过MQTT协议将温湿度数据上传阿里云
08-24
在本文中,我们将深入探讨如何使用STM32微控制器通过MQTT协议将温湿度数据上传阿里云。STM32是意法半导体公司推出的高性能、低功耗的32位微控制器系列,广泛应用于物联网(IoT)设备。MQTT(Message Queuing ...
STM32+ESP01s通过MQTT连接OneNET上传DHT11温湿度数据
03-29
STM32+ESP01s通过MQTT连接OneNET上传DHT11温湿度数据是一项在物联网(IoT)领域常见的应用。这个项目的核心在于利用STM32微控制器收集DHT11传感器的数据,并通过ESP01s Wi-Fi模块将这些数据发送到OneNET云平台。以下是...
AT指令通过ESP8266运用MQTT上传阿里云
最新发布
05-10
在本文中,我们将深入探讨如何使用AT指令通过ESP8266模块将数据上传阿里云,特别是利用MQTT协议进行通信。ESP8266是一款广泛应用的Wi-Fi芯片,常用于物联网(IoT)项目,它能方便地连接到各种传感器并实现无线数据...
stm32f103c8t6通过ESP8266上传温湿度,MQ2、甲醛到阿里云,并控制下发风扇开启。MQ2阈值蜂鸣器报警、甲醛蜂鸣
04-12
温湿度 信号线接PB12 VCC接5V GND接GND MQ2 信号线AO接PA0 VCC接5V GND接GND SPG30 GND接GND VCC接3.3V SCL接PA7 SDA接PA6 Esp8326601S 3.3V接3.3V GND接GND PA2接RX PA3接TX PA4接RST 屏幕 GND接GND VCC接5V SCL接PB13 SDA接PB15 24C02芯片 GND接GND VCC接3.3V SCL接PB6 SDA接PB7 USB转TTL GND接GND 5V接5V TX接PA10 RX接PA9 光耦隔离开关1 DC+接5V DC-接GND IN 接PA5 MQ2蜂鸣器1 DC+接5V DC-接GND I/O接PB11 甲醛蜂鸣器2 DC+接5V DC-接GND I/O接PB10
单片机通过ESP8266上传温湿度数据
03-07
单片机通过ESP8266上传温湿度数据是一个典型的物联网(IoT)应用场景,它涉及到硬件、软件、网络通信等多个技术领域。在这个项目中,单片机作为数据采集和控制中心,通过ESP8266无线模块将采集到的温湿度数据发送到...
ESP32-DHT11温湿度数据上传MQTT服务器
优信电子的博客
11-13 2678
MQTT 是轻量级的、灵活的物联网消息交换和数据传递协议,本次实验目的为通过ESP32驱动DHT11,并把DHT11的温湿度数据上传MQTT服务器,实现远程监测。
ESP32通过MQTT协议连接阿里云物联网平台(1)
m0_57863338的博客
06-16 3080
因为自己要做一个关于ESP32的项目,自己想把这个过程记录下来并且分享一下自己在这个过程中如何进行操作,以及我自己遇到的一些问题是如何解决的。首先,我们需要将阿里云物联网平台配置好,(这里配置阿里云物联网平台可以参考,但MQTT协议部分讲的不是很详细,我对这部分进行进一步解析)
ESP32MQTT上传温湿度,火焰,烟雾至阿里云平台。问题:task_wdt: Task watchdog got triggered.
weixin_44565065的博客
01-20 4110
硬件:NODEMCU-32,MQ-2,MH-Sensor-Series,DHT11 环境:win7 软件:vscode+espidf 连接: 效果: 看门狗错误: 可适当提高MQTT优先级 xTaskCreate(&mqtt_test_task, “mqtt_test_task”, 4096, NULL, 3, NULL); BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, /* 任务函数入口指针 */ const c
安信可 ESP32-S3 模组上驱动摄像头 OV2640,实现远程拍照并 HTTP 传输到阿里云对象存储OSS,并显示在微信小程序上。(深度好文,全部开源)
安信可科技
10-20 6762
文章目录一、 ESP32-S3 产品特性CPU 和存储外设接口和传感器功耗特性二、 准备工作硬件软件接线三、通讯协议和原理3.1 模组拍照上传服务器3.2 小程序下发指令给模组拍照给服务器3.3 模组把上传服务器结果回调给小程序四、服务器准备3.1 接收图片处理3.2 接收图片处理3.3 服务器业务逻辑五、嵌入式开发准备六、微信小程序开发准备源码下载联系我们 一、 ESP32-S3 产品特性    安信可已做好了ESP32S3模组,给大家看最近特火的ESP32S3模组规格书。
【STM32HAL库(智能家居)】
m0_65974939的博客
03-05 573
该设计是一种基于STM32的无线温湿度检测系统以智能化、自动化、高效化为出发点,充分利用物联网技术手段,实现温湿度检测系统,实现数据的采集、处理和反馈。该设计使用STM32单片机通过温湿度传感器采集环境温湿度数据并通过WIFI或者蓝牙将采集好的数据上传到Things Cloud云平台,并将采集好的温湿度数据在手机App上显示出来,当数据出现异常时Things Cloud云平台和手机App会记录采集好的数据并显示异常警告提醒用户采取相关的设施;~~大家感兴趣的可以私聊~~微信:18808978454。
STM32与ESP-01S进行通信,并上传阿里云显示(Hal库)
dgch5的博客
04-05 745
需要准备的硬件材料:STM32F1或其他系列板子,一块ESP-01S物联网通信模块,若干杜邦线软件材料:ESP-01S的刷固件工具flash_download_tool_v3.8.5和对应的固件库,串口显示软件(任意),阿里云物联网账号以及阿里云物联网的配置,MQTTFX软件。本帖子仅涉及如何使用,不讲原理部分,写这篇博客的目的是以后如果再使用这个模块时不会忘记怎么用,如果想知道原理可以自己去百度。
ESP32接收温湿度信息通过串口通信传给esp8266mqtt上传阿里云
05-24
首先,您需要使用ESP32连接温湿度传感器,并通过代码获取传感器数据。然后,您需要将ESP32配置为串口通信,以便将传感器数据发送到ESP8266。您可以使用Arduino IDE或类似工具编写代码,以便将串口数据传递给ESP8266。 接下来,您需要在ESP8266上安装MQTT库,并配置MQTT连接以将数据上传阿里云。您可以使用PubSubClient库来与阿里云进行通信。 以下是一个简单的代码示例,其中ESP32获取温湿度数据并将其发送到ESP8266,然后ESP8266将数据上传阿里云ESP32代码: ```arduino #include <SoftwareSerial.h> SoftwareSerial espSerial(16, 17); // RX, TX void setup() { Serial.begin(9600); espSerial.begin(9600); } void loop() { // 获取温湿度数据 float temperature = getTemperature(); float humidity = getHumidity(); // 将温湿度数据发送到ESP8266 String data = String(temperature) + "," + String(humidity); espSerial.println(data); delay(1000); } float getTemperature() { // 获取温度数据 } float getHumidity() { // 获取湿度数据 } ``` ESP8266代码: ```arduino #include <ESP8266WiFi.h> #include <PubSubClient.h> const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* mqtt_server = "your_MQTT_server_address"; const char* mqtt_username = "your_MQTT_username"; const char* mqtt_password = "your_MQTT_password"; const char* mqtt_topic = "your_MQTT_topic"; WiFiClient wifiClient; PubSubClient mqttClient(wifiClient); void setup() { Serial.begin(9600); delay(1000); // 连接WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); } // 连接MQTT服务器 mqttClient.setServer(mqtt_server, 1883); mqttClient.setCallback(callback); while (!mqttClient.connected()) { if (mqttClient.connect("ESP8266Client", mqtt_username, mqtt_password)) { mqttClient.subscribe(mqtt_topic); } else { delay(1000); } } } void loop() { // 等待ESP32发送数据 while (Serial.available() == 0) { delay(100); } // 读取ESP32发送的数据 String data = Serial.readStringUntil('\n'); // 将数据上传阿里云 mqttClient.publish(mqtt_topic, data.c_str()); delay(100); } void callback(char* topic, byte* payload, unsigned int length) { // 处理MQTT消息 } ``` 请注意,这只是一个简单的示例代码,您需要根据自己的需求进行修改。此外,您需要在阿里云上创建MQTT主题并设置正确的用户名和密码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Esp32读取温湿度数据通过mqtt上传阿里云平台 18484
  • stm32单片机驱动L298N模块 15574
  • pycharm中安装了opencv但还是无法使用imread、imshow的问题解决办法。 10173
  • Esp32读取温湿度数据上传到mqtt服务器 7794

最新评论

  • Esp32读取温湿度数据通过mqtt上传阿里云平台

    lucky-tgm: subscribe_TOPIC填什么,一直报错exception128

  • Esp32读取温湿度数据通过mqtt上传阿里云平台

    apple_52138977: 好哥们 有小程序的教程吗555

  • pycharm中安装了opencv但还是无法使用imread、imshow的问题解决办法。

    预言·未来: python和opencv的版本兼容问题

  • Esp32读取温湿度数据上传到mqtt服务器

    要喝肥仔水: 接传感器就行,控啥都可以

  • Esp32读取温湿度数据上传到mqtt服务器

    Y518518588: 可以做远程控制开关灯吗

大家在看

  • 深度刨析自定义类型(结构体、枚举、联合) 913
  • 机器学习之主成分分析案例-红酒主成分分析
  • NVM配置 251
  • 【系统架构设计师】论文:论虚拟现实技术的应用与发展 774
  • 乘积最大3 352

最新文章

  • Esp32读取温湿度数据上传到mqtt服务器
  • pycharm中安装了opencv但还是无法使用imread、imshow的问题解决办法。
  • stm32单片机驱动L298N模块
2022年1篇
2021年3篇

目录

目录

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

要喝肥仔水

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值

PHP网站源码坪山网站优化石岩网站建设松岗企业网站改版惠州营销网站光明网页制作大浪外贸网站设计龙华企业网站建设西乡至尊标王布吉设计公司网站坪山网站优化推广光明网站关键词优化东莞关键词排名双龙关键词按天扣费观澜百度标王盐田建设网站塘坑网络营销福永网站优化排名丹竹头百度seo深圳百度竞价坂田seo优化广州网站关键词优化坪地阿里店铺运营丹竹头网站设计福田网站优化按天计费荷坳建站福永至尊标王大浪网站改版坑梓网站搜索优化坑梓网站关键词优化布吉模板网站建设歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化