当前位置:首页 > 项目 > Wpython > 正文内容

micropython 连接到mqtt

Watrt2年前 (2023-05-31)Wpython7320
from umqtt.simple import MQTTClient
from machine import Pin
import ujson
import urequests
import network
import time

SERVER = "www.028sd.net"
CLIENT_ID = "esp32_01"
TOPIC = b"/#"
username='xk102'
password='200000'
state = 0
c=None
def sub_cb(topic, msg):
  global state
  print((topic, msg))
  try:
    data = ujson.loads(msg.decode())
    print(data)
    if data['cmd'] == "clean":
      print("清屏")
      ili.fill(0xFFFF)
      ili.show()
    elif data['cmd'] == "strst":
      print("写字")
      ili.fill(0xFFFF)
      line = int(data['line']) if "line" in data.keys() else 0
      col = int(data['col']) if "col" in data.keys() else 0
      print("行列:%d :%d" % (line,col))
      ili.textst('%s' % (data['data']), col, line*13, ili.brg(r=255))
      ili.show()
    elif data['cmd'] == "toggle":
      print("X")
      # LED is inversed, so setting it to current state
      # value will make it toggle
  except Exception as e:
    print(e)
    print("未知指令")
    
try:
  c = MQTTClient(CLIENT_ID, SERVER,0,username,password)     #create a mqtt client
  c.set_callback(sub_cb)                    #set callback
  c.connect()                               #connect mqtt
  c.subscribe(TOPIC)                        #client subscribes to a topic
  print("连接到 %s, 已订阅 %s topic" % (SERVER, TOPIC))

  while True:
    c.wait_msg()                            #wait message 
finally:
  if(c is not None):
    c.disconnect()


分享给朋友:

相关文章

wpython板子的gui版本已经设计完成

wpython板子的gui版本已经设计完成

这个是已经修改过多次的了。现在是1.6版1、调整旋转编码器为5向开关2、调整LCD的SPI为HSPI(SPI1)为IO_MUX 直接硬件接口不在通过GPIO matrix,理论上能够达到速度80M(待测试)3、调整电池供电芯片为:SPX3819M5解决使用asm1117 3.3 压差不够,电压不能够稳定到3.3的BUG4、留出I2S接口5、调整I2C接口为插座位置。6、调整布线,板子更小了...

wpython_GUI 1.6板子回来了

wpython_GUI 1.6板子回来了

板子打出来了。小的元件已经SMT好了,大的元件我已经自己手焊好了,先给大家看看样板两个LED因为出于成本的原因是单面贴,双面太贵了,而且感觉不重要就先没有焊正面,大体算正常吧,但是也现在了两个BUG,还是缺少经验。1、ESP32的IO36脚和IO39脚,只支持输入模式,而且没有内部上拉,所以要外挂上拉,这点在画板的时间 没有想到。目前使用的是补焊两个电阻补救上(KEY_A、KEY_B)。2、还有一个就是屏的背景使用的是S8050当做背光开关,结果发现在虽然可以过通IO来控制引脚,但是背景电压太低...

LVGL_micropython 模拟器

LVGL_micropython 模拟器

在使用micropython编写lvgl界面时有时间非常的麻烦。要在设备上才看得到效果。比较麻烦。npx的GUI-Guider软件中的模拟器给抠出来了单独使用,非常不错。下面是运行实例:import SDL import utime as time import usys as sys import lvgl as lv import lodepng as p...

micropython 实现tar 文件解包

micropython 实现tar 文件解包

import upip_utarfile as tar import os def run(src,dest_dir):   t = tar.TarFile(src)   if not dest_dir in os.listdir():     os.mkdir(dest_dir)  ...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。