首页 > 编程语言 > 详细

野路子学习esp32(十六) MQTT与ESP32-MicroPython @a.宏万

时间:2020-04-27 11:14:52      阅读:191      评论:0      收藏:0      [点我收藏+]

MQTT与ESP32-MicroPython

在ESP32上安装MQTT库

首先,我们需要在ESP32上面安装mqtt的库。(MQTT客户端在ESP32上面的实现)

首先确认ESP32-MicroPython已经连接上了热点!!!, 通过REPL控制ESP32。

引入upip包管理器

>>> import upip
>>> upip.install(‘micropython-umqtt.simple‘)
Installing to: /lib/
Installing micropython-umqtt.simple 1.3.4 from https://files.pythonhosted.org/packages/bd/cf/697e3418b2f44222b3e848078b1e33ee76aedca9b6c2430ca1b1aec1ce1d/micropython-umqtt.simple-1.3.4.tar.gz

这样umqtt.simple这个包就安装好了。

使用umqtt实现接收者

esp32/subscriber.py
from umqtt.simple import MQTTClient
import time

SERVER = ‘192.168.43.16‘
CLIENT_ID = ‘PYESPCAR_A0‘
TOPIC = b‘pyespcar_basic_control‘

def mqtt_callback(topic, msg):
    print(‘topic: {}‘.format(topic))
    print(‘msg: {}‘.format(msg))


client = MQTTClient(CLIENT_ID, SERVER)
client.set_callback(mqtt_callback)
client.connect()

client.subscribe(TOPIC)


while True:
    # 查看是否有数据传入
    # 有的话就执行 mqtt_callback
    client.check_msg()
    time.sleep(1)

使用umqtt实现发送者

esp32/publisher.py
from umqtt.simple import MQTTClient
import time

SERVER = ‘192.168.43.16‘
CLIENT_ID = ‘PYESPCAR_A0‘ # 客户端的ID
TOPIC = b‘pyespcar_basic_control‘ # TOPIC的ID

client = MQTTClient(CLIENT_ID, SERVER)
client.connect()


while True:
    client.publish(TOPIC, ‘helloworld‘)
    time.sleep(1)

注意在Esp32里面TOPIC需要是bytes类型。

 

现在我们修改 boot.py

原来的 

from emp_wifi import Wifi
from emp_webrepl import WebREPL
from emp_utils import webrepl_pass
from emp_utils import post_ip


if __name__ == __main__:
    Wifi.connect()
    try:
        post_ip(Wifi.ifconfig()[0][0])
    except ImportError:
        pass
    WebREPL.start(password=webrepl_pass())
    from emp_ide import *

新的

from emp_wifi import Wifi
from emp_webrepl import WebREPL
from emp_utils import webrepl_pass
from emp_utils import post_ip
import ubinascii
import machine
 
#mqtt 服务器相应的信息
mqtt_server = *.*.*.*
client_id = bQ1+ubinascii.hexlify(machine.unique_id()).upper()
mqtt_user = bQ1
mqtt_pwd = b‘‘
topic_sub = client_id
topic_pub = bHongwans_EMQ

if __name__ == __main__:
    Wifi.connect()
    try:
        post_ip(Wifi.ifconfig()[0][0])
    except ImportError:
        pass
    WebREPL.start(password=webrepl_pass())
    from emp_ide import *

 

 

 

野路子学习esp32(十六) MQTT与ESP32-MicroPython @a.宏万

原文:https://www.cnblogs.com/hongwans/p/12784681.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!