esp32通过micropython-->MQTT--上传至腾讯云,实时显示温湿度数据保姆级教程(下)

esp32通过micropython-->MQTT--上传至腾讯云,实时显示温湿度数据保姆级教程(下)


ps:如果您还没看上,请您先观看阅读“上”后再开始操作

1. 测试MQTT连接腾讯云:

1.1下载MQTTfx

因为目前该软件5.00版本收费,建议您下载1.7.1版本的,在这里给出连接:
阿里云盘MQTTFX下载连接
下载完成后,属于傻瓜式安装,点下一步,更换安装路径即可。安装完成后运行程序:
在这里插入图片描述

1.2连接腾讯云

1.点击上面右方的设置图标:
在这里插入图片描述
点击+新建一个测试:
在这里插入图片描述
填写 Connection Profile 相关信息和 General 信息。
对应着上篇的三元组信息设备id信息进行填写:
在这里插入图片描述
在这里插入图片描述

对应着:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点开MQQTX的User Credentials填写上面三元组信息:在这里插入图片描述
确认无误后点击Apply后者ok
点击connect即可,如果右上角按钮从灰色变绿色,则代表连接成功:
在这里插入图片描述

1.3测试订阅和发送:

发送

点击publish给主题发送数据
在这里插入图片描述
在这里插入图片描述
成功接收到数据:
在这里插入图片描述

订阅

打开MQTTFX的Subscribe订阅设备的主题
在这里插入图片描述
在这里插入图片描述

测试腾讯云给订阅的MQTTFX发消息:

进入管理:
在这里插入图片描述
找到在线调试:
在这里插入图片描述
在这里插入图片描述
接收消息成功:
在这里插入图片描述
至此:测试完毕~~~~~~~~~~~~~~~

上传温湿度数据的python代码

打开Thonny 导入代码:

from umqtt.simple import MQTTClient
from machine import Pin
import network
import time
import machine
import dht
from machine import Timer
 
SSID="xxxxxxxxx"#你的wifi名称
PASSWORD="xxxxxxxxx"#你的wifi密码
 #三元组信息
SERVER ='xxxxxxxx.iotcloud.tencentdevices.com'  #MQTT Server: 网址LGSODS81VJ.iotcloud.tencentdevices.com
CLIENT_ID = "xxxxxxxxesp32_DHT11"   #设备ID
PORT=1883#端口号
#三元组的
username='xxxxxxxxesp32_DHT11;12010126;f6060;1674921600'
password='xxxxxxxxx5f925516ce186d8c41b962c4;hmacsha256'
 #主题
publish_TOPIC = 'xxxxxxxx/esp32_DHT11/data'
subscribe_TOPIC ='xxxxxxxx/esp32_DHT11/data'
d=dht.DHT11(Pin(13))#连接引脚
#以json发送温湿度数据:
def pubdata(temp,hum):#
    message='{"temperture":%d,"humidity":%d}'%(temp,hum)
    return message
#wifi连接配置
def do_connect():
    import network
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    start_time=time.time()
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect(SSID, PASSWORD)
        while not wlan.isconnected():
            
            pass
            if time.time()-start_time>15:
                print("WIFI Connected Timeout!")
                break
    if wlan.isconnected():
        print('network config:', wlan.ifconfig())
        return True
    else:
        return False

#定义mqqt发送数据

def MQTT_Send(tim):
    d.measure()
    #发送温湿度
    client.publish(publish_TOPIC,pubdata(d.temperature(),d.humidity()))

#连接上wifi后判断是否连接上MQTT

if do_connect():
    client=MQTTClient(CLIENT_ID,SERVER,PORT,username,password,60)
    client.connect()
    tim=Timer(-1)
    tim.init(period=10000,mode=Timer.PERIODIC,callback=MQTT_Send)
        
    

点击上传至esp32后:
打开腾讯云 云日志–》内容日志即可查看温湿度数据信息:

在这里插入图片描述

在这里插入图片描述
至此就已经全部完成,如果对您有帮助,请您看完后记得一键三联哦,如果有问题,可以在留言区交流谈论!
参考的大佬文章:
ESP32运行MicroPython通过MQTT上报温湿度到腾讯云

end----------------------------------------------------------------------------------------------------------------

巴法云是一个便捷的物联网平台,能够轻松实现设备的数据上传与远程控制等功能。下面介绍如何将 ESP32 连接到该平台上,并借助 Thonny 编程环境完成整个过程。 首先确保已准备好如下事项: 1. 硬件准备 - 包含一个工作正常的ESP32模块; 2. 软件方面 - 下载并安装好支持MicroPython固件烧录工具以及Thonny IDE; 3. 注册账号登录到[巴法云](https://www.bafayun.com/)获取属于自己的产品ID和密钥等必要信息字段; 接下来按照步骤操作: ### 第一步: 配置ESP32微控制器 1. 将ESP32通过USB线缆连接至电脑端口。 2. 利用 esptool.py 把 MicroPython 固件刷入目标板卡内。(详情参阅官方文档说明) ```bash python esptool.py --port COMx erase_flash python esptool.py --chip esp32 --port COMx write_flash -z 0x1000 firmware.bin ``` *注意替换实际串口号及下载路径* --- ### 第二步: 设置网络参数并通过Wi-Fi联网 在 Thonny 中新建 .py 文件添加以下代码片段初始化无线通信状态: ```python import network sta_if = network.WLAN(network.STA_IF) if not sta_if.isconnected(): print('Connecting to WiFi...') sta_if.active(True) # 启动站模式 sta_if.connect('<your_SSID>', '<WiFi_password>')# 替换真实SSID密码值 while not sta_if.isconnected(): pass print("Connected! Network config:", sta_if.ifconfig()) ``` 检查是否成功连上互联网返回IP地址列表即表明设置无误。 --- ### 第三步: 实现MQTT协议交互对接服务端 继续补充必要的库依赖项进而建立订阅发布话题链接: ```python from umqtt.simple import MQTTClient import time SERVER="mqtt.bafayun.com" # 指定服务器域名 PORT=6002 # 默认端口号 CLIENT_ID=b"<unique_device_id>" TOPIC_PUB=b"/<product_key>/data" USER="<username>" # 登陆用户名 PASSWORD="<password>" # 对应账户密码 def connect_mqtt(): client = MQTTClient(CLIENT_ID, SERVER, PORT, USER, PASSWORD) try: client.connect() return client except Exception as e: raise ValueError(f'MQTT connection failed:{e}') client = connect_mqtt() for i in range(5): payload='{"value": %d}'%(i+1) client.publish(TOPIC_PUB,payload) print(f'Sent {payload}') time.sleep_ms(1000) client.disconnect() ``` 上述示例演示了怎样周期性的推送传感器采集数值给云端存储起来供后续访问查看图表趋势曲线之类的功能应用场合参考案例之一而已哦~
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

i want to舞动乾坤

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

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

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

打赏作者

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

抵扣说明:

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

余额充值