ESP32使用mqtt做了一个远程的电脑开关,麻烦大佬看看怎么解决心跳包的问题

ESP32、ESP8266
ESP32-S2、ESP32-S3、ESP32-C3
回复
dancerjiu
帖子: 3
注册时间: 2022年 8月 9日 02:02

ESP32使用mqtt做了一个远程的电脑开关,麻烦大佬看看怎么解决心跳包的问题

#1

帖子 dancerjiu »

import time
from machine import Timer
from machine import Pin
import network
from umqttsimple import MQTTClient


def do_connect():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect('15121', '18628084896')
        i = 1
        while not wlan.isconnected():
            print("正在链接...{}".format(i))
            i += 1
            time.sleep(1)
    print('network config:', wlan.ifconfig())


def sub_cb(topic, msg): # 回调函数,收到服务器消息后会调用这个函数
    print(topic, msg)
    # ---- 添加 --------
    if topic.decode("utf-8") == "ledctl" and msg.decode("utf-8") == "on":
        led.value(1)  # 吸合
        time.sleep_ms(200)
        led.value(0)  # 断开
    elif topic.decode("utf-8") == "ledctl" and msg.decode("utf-8") == "off":
        led.value(1)  # 吸合
        time.sleep_ms(200)
        led.value(0)  # 断开
    elif topic.decode("utf-8") == "ledctl" and msg.decode("utf-8") == "gg":
        led.value(1)  # 吸合
        time.sleep(5)
        led.value(0)  # 断开
    # ---- 添加 --------


# 1. 联网
do_connect()

# 2. 创建mqt
c = MQTTClient("umqtt_client", "121.43.39.58",keepalive=0)  # 建立一个MQTT客户端
c.set_callback(sub_cb)  # 设置回调函数
c.connect()  # 建立连接
c.subscribe(b"ledctl")  # 监控ledctl这个通道,接收控制命令
# ---- 添加 --------
# 3. 创建LED对应Pin对象
led = Pin(27, Pin.OUT)
lcd=Pin(22,Pin.OUT)
lcd.value(0)

#def MQTT_Send(tim):
#    tim = Timer(1)
#    tim.init(period=2000, mode=Timer.PERIODIC, callback=MQTT_Send)
# ---- 添加 --------

while True:
    c.check_msg()
    time.sleep(1)









---------------------------------------------------------------------------------------------------------------------------
我尝试过心跳包的例程(倒数几行的注释),好像是能保持在线了但是收不到订阅,麻烦大佬帮萌新看看这个该怎么改,确实不知道咋办所以我把上面keeplive写了个0


 



dancerjiu
帖子: 3
注册时间: 2022年 8月 9日 02:02

Re: ESP32使用mqtt做了一个远程的电脑开关,麻烦大佬看看怎么解决心跳包的问题

#4

帖子 dancerjiu »

很关键谢谢大佬,这篇比我之前找到的都详细不少.

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章