MicroPython使用MQTT协议接入OneNET云平台

[复制链接]

本帖最后由 hanyeguxingwo 于 2016-11-22 11:33 编辑

之前使用Arduino+ESP8266使用EDP协议成功接入了OneNET,实现了物联网控制,本次使用板载ESP8266的ESP-MP-01 MicroPython开发板使用MQTT协议同样成功接入,通过发布TOPIC成功实现智能设备控制。

【1】MQTT协议简介:

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

【2】硬件与软件:

本次使用的硬件为ESP-MP-01开发板:

37195061288919969.jpg (84.75 KB, 下载次数: 15)

2016-11-22 11:29 上传

需要准备的软件有:

1、ESP_DOWNLOAD_TOOL 用于下载开发板固件;

2、uPyLoader 用于与开发板的文件传输,同时该软件也具有终端软件调试的功能,该软件的使用和介绍可以在:;

【3】创建产品和设备:

在OneNET平台创建MQTT公开协议的产品并添加设备:

Screenshot_1.png (94.85 KB, 下载次数: 16)

2016-11-22 11:30 上传

360截图20161122101039179.jpg (70.36 KB, 下载次数: 17)

2016-11-22 11:30 上传

【4】程序代码:

1、使用ESP_DOWNLOAD_TOOL工具下载Micropython固件到开发板,固件:

2016-11-22 11:31 上传

点击文件名下载附件

2、打开命令行窗口,在uPyLoader目录下输入python main.py打开uPyLoader软件,该软件的运行需要使用pip安装PyQt5和pyserial;

Screenshot_2.png (4.39 KB, 下载次数: 15)

2016-11-22 11:30 上传

Screenshot_3.png (61.54 KB, 下载次数: 17)

2016-11-22 11:30 上传

3、选择与开发板连接的串口,连接成功后点击File->Init transfer files初始化传输文件,初始化成功后在MCU端会新增_upload.py和_download.py两个文件:

Screenshot_4.png (70.44 KB, 下载次数: 15)

2016-11-22 11:30 上传

4、编辑boot.py,mqtt.py和main.py,并将编辑完成后的三个文件和umqtt目录下的simple.py文件一起传输至MCU端;

boot.py用于设置和连接网络:

def do_connect():

import network

sta_if = network.WLAN(network.STA_IF)

ap_if = network.WLAN(network.AP_IF)

if ap_if.active():

ap_if.active(False)

if not sta_if.isconnected():

print('connecting to network...')

sta_if.active(True)

sta_if.connect('MicroPython', '12345678') #wifi的SSID和密码

while not sta_if.isconnected():

pass

print('network config:', sta_if.ifconfig())

do_connect()

gc.collect()复制代码

mqtt.py用于平台接入和消息处理:

from simple import MQTTClient

from machine import Pin

import machine

import micropython

# ESP8266 ESP-12 modules have blue, active-low LED on GPIO2, replace

# with something else if needed.

led = Pin(2, Pin.OUT, value=1)

# Default MQTT server to connect to

SERVER = "183.230.40.39"

CLIENT_ID = "4070825"

TOPIC = b"micropython1"

username='76013'

password='micropythonespmp01'

state = 0

def sub_cb(topic, msg):

global state

print((topic, msg))

if msg == b"on":

led.value(0)

state = 1

print("1")

elif msg == b"off":

led.value(1)

state = 0

print("0")

elif msg == b"toggle":

# LED is inversed, so setting it to current state

# value will make it toggle

led.value(state)

state = 1 - state

def main(server=SERVER):

c = MQTTClient(CLIENT_ID, server,6002,username,password)

# Subscribed messages will be delivered to this callback

c.set_callback(sub_cb)

c.connect()

c.subscribe(TOPIC)

print("Connected to %s, subscribed to %s topic" % (server, TOPIC))

try:

while 1:

#micropython.mem_info()

c.wait_msg()

finally:

c.disconnect()复制代码

main.py用于程序的运行:

import mqtt

mqtt.main()复制代码

simple.py无需更改。

【5】连接测试:

打开uPyLoader的终端窗口,复位开发板后可以看到成功连接值无线网络和接入OneNET服务器:

Screenshot_5.png (61.55 KB, 下载次数: 13)

2016-11-22 11:30 上传

Screenshot_6.png (64.16 KB, 下载次数: 17)

2016-11-22 11:30 上传

发送MQTT命令,发送on开发板LED灯亮;发送off命令开发板LED灯灭。

Screenshot_7.png (61.65 KB, 下载次数: 16)

2016-11-22 11:30 上传

Screenshot_8.png (25.86 KB, 下载次数: 16)

2016-11-22 11:30 上传

【6】效果展示:

micropython mqtt_MicroPython使用MQTT协议接入OneNET云平台相关推荐

  1. 手机控制的esp8266利用mqtt协议接入百度云智能插座

    手机控制的esp8266利用mqtt协议接入百度云智能插座 19年的春节,相信大家和我一样都待在家里,利用在家的时间现学现卖,制作了一款手机控制的智能插座,网上资料很多,我在查询资料中发现,esp82 ...

  2. Esp8266 进阶之路29【高级篇】百万条消息免费之乐鑫esp8266使用TCP直连模式MQTT协议接入阿里云物联网平台,支持私家服务器对接,支持阿里云规则引擎。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  3. 数据上云|OneMO DTU数传模组接入OneNET云平台操作详细过程

    目录 前言 第一步.OneNET云平台基础搭建 第二步.DTU数传模组参数配置 第三步.成果展示 友友们,我要不再买一块补个仓,拉低成本?! 前言 最近在做物联网实训项目,要求将传感器的数据采集上传到 ...

  4. 模块学习4:(1)通过MQTT协议和电信云平台的通信(内附MQTT协议V3.1.1的原版和中文参考资料)

    这里就不对MQTT协议本身作过多的讲解了,网上也有很多更加详细的对MQTT博文的讲解,当然更直接的就是参看协议文件. 这里直接贴一篇写的比较完整的博客和菜鸟教材对协议的讲解,可以参考学习. 菜鸟教程, ...

  5. 移远BC26模组使用MQTT协议接入阿里云(NB-IoT专栏—进阶篇4)

    目录 1.模块简介 2.阿里云物联网服务部署 3.BC26模组配置 4.数据上传 5.数据下发

  6. 52单片机连接ESP8266烧入固件使用MQTT协议将温湿度上传至OneNET云平台

    52单片机连接ESP8266烧入固件使用MQTT协议连接OneNET云平台 参考: ---------------------------------------------------------- ...

  7. 基于ONENET云平台数据的MQTT协议的使用及模拟数据和搭建。

    登录与添加: 首先,我们打开ONENET云平台 然后选择登录 登录以后我们选择多协议接入中的MQTT 接着我们点击"添加产品"按钮 输入产品名称丶行业丶类别丶简介 技术参数中联网方 ...

  8. arduino UNO通过AT指令控制esp8266连接WiFi及onenet云平台

    写下这篇文章是为了记录我学习使用esp8266的过程.在本文中我们会使用AT指令通过MQTT协议连接onenet云平台 开篇必看 1)关于onenet MQTT设备创建 在设备连接onenet平台中, ...

  9. ESP8266_19MQTT协议接入ONENET平台_订阅主题

    ESP8266_01搭建开发环境 ESP8266_02程序的编译与下载 ESP8266_03SDK与Makefile的基本用法 ESP8266_04管脚控制与软件定时器 ESP8266_05 ESP8 ...

最新文章

  1. 【 MATLAB 】使用 MATLAB 得到高密度谱(补零得到DFT)和高分辨率谱(获得更多的数据得到DFT)的方式对比(附MATLAB脚本)
  2. 数字媒体技术和数据科学与大数据技术_?数据科学与大数据技术的就业前景和待遇怎么样?...
  3. 2021年JVM生态中哪些是流行的、热门的、趋势是什么
  4. 全链路灰度这样做,新需求迭代上线也能放心干饭
  5. Lua 脚本内部执行 Redis 命令
  6. UVA 11210 Chinese Mahjong
  7. zabbix的安装(一)监控os资源:内存,cpu,io,负载,带宽
  8. 如何卸载windows自带的输入法
  9. win7 64位 内核安全_Win7进入死亡倒计时,全国一半电脑要遭殃?
  10. 趣图:程序猿和运维狗的工作日常……
  11. mysql-查询一天,一周,一月,一年,以及mysql的基本日期函数
  12. 【JESD204B】基于JESD204B协议的ADC、DAC数据传输
  13. 字节(B)、千字节(KB)、兆字节(MB)、积 (GB)字节之间的换算
  14. 【操作系统原理-陈渝老师】第十二章 文件系统
  15. matlab ga初始值,matlab之GA优化.pdf
  16. Perl之Spreadsheet::WriteExcel
  17. 【每日一短语】首席芭蕾舞演员
  18. notifyAll()方法
  19. C语言:输出1~1000 之间所有的完全平方数
  20. 经典TVB台词100句

热门文章

  1. 2022-2028年中国PPS树脂产业研究及前瞻分析报告
  2. Electron、QT和JAVA PC桌面开发技术比较
  3. dataframe多列合并成一列
  4. 掩码语言模型(Masked Language Model)mlm
  5. 文件句柄和文件描述符的区别和理解指针
  6. 命名实体识别视频51cto
  7. 来谈谈Servlet~~
  8. 激光雷达与汽车技术路线
  9. TensorFlow分布式详解
  10. Android系统的启动过程