micropython mqtt_MicroPython使用MQTT协议接入OneNET云平台
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云平台相关推荐
- 手机控制的esp8266利用mqtt协议接入百度云智能插座
手机控制的esp8266利用mqtt协议接入百度云智能插座 19年的春节,相信大家和我一样都待在家里,利用在家的时间现学现卖,制作了一款手机控制的智能插座,网上资料很多,我在查询资料中发现,esp82 ...
- Esp8266 进阶之路29【高级篇】百万条消息免费之乐鑫esp8266使用TCP直连模式MQTT协议接入阿里云物联网平台,支持私家服务器对接,支持阿里云规则引擎。(附带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...
- 数据上云|OneMO DTU数传模组接入OneNET云平台操作详细过程
目录 前言 第一步.OneNET云平台基础搭建 第二步.DTU数传模组参数配置 第三步.成果展示 友友们,我要不再买一块补个仓,拉低成本?! 前言 最近在做物联网实训项目,要求将传感器的数据采集上传到 ...
- 模块学习4:(1)通过MQTT协议和电信云平台的通信(内附MQTT协议V3.1.1的原版和中文参考资料)
这里就不对MQTT协议本身作过多的讲解了,网上也有很多更加详细的对MQTT博文的讲解,当然更直接的就是参看协议文件. 这里直接贴一篇写的比较完整的博客和菜鸟教材对协议的讲解,可以参考学习. 菜鸟教程, ...
- 移远BC26模组使用MQTT协议接入阿里云(NB-IoT专栏—进阶篇4)
目录 1.模块简介 2.阿里云物联网服务部署 3.BC26模组配置 4.数据上传 5.数据下发
- 52单片机连接ESP8266烧入固件使用MQTT协议将温湿度上传至OneNET云平台
52单片机连接ESP8266烧入固件使用MQTT协议连接OneNET云平台 参考: ---------------------------------------------------------- ...
- 基于ONENET云平台数据的MQTT协议的使用及模拟数据和搭建。
登录与添加: 首先,我们打开ONENET云平台 然后选择登录 登录以后我们选择多协议接入中的MQTT 接着我们点击"添加产品"按钮 输入产品名称丶行业丶类别丶简介 技术参数中联网方 ...
- arduino UNO通过AT指令控制esp8266连接WiFi及onenet云平台
写下这篇文章是为了记录我学习使用esp8266的过程.在本文中我们会使用AT指令通过MQTT协议连接onenet云平台 开篇必看 1)关于onenet MQTT设备创建 在设备连接onenet平台中, ...
- ESP8266_19MQTT协议接入ONENET平台_订阅主题
ESP8266_01搭建开发环境 ESP8266_02程序的编译与下载 ESP8266_03SDK与Makefile的基本用法 ESP8266_04管脚控制与软件定时器 ESP8266_05 ESP8 ...
最新文章
- 【 MATLAB 】使用 MATLAB 得到高密度谱(补零得到DFT)和高分辨率谱(获得更多的数据得到DFT)的方式对比(附MATLAB脚本)
- 数字媒体技术和数据科学与大数据技术_?数据科学与大数据技术的就业前景和待遇怎么样?...
- 2021年JVM生态中哪些是流行的、热门的、趋势是什么
- 全链路灰度这样做,新需求迭代上线也能放心干饭
- Lua 脚本内部执行 Redis 命令
- UVA 11210 Chinese Mahjong
- zabbix的安装(一)监控os资源:内存,cpu,io,负载,带宽
- 如何卸载windows自带的输入法
- win7 64位 内核安全_Win7进入死亡倒计时,全国一半电脑要遭殃?
- 趣图:程序猿和运维狗的工作日常……
- mysql-查询一天,一周,一月,一年,以及mysql的基本日期函数
- 【JESD204B】基于JESD204B协议的ADC、DAC数据传输
- 字节(B)、千字节(KB)、兆字节(MB)、积 (GB)字节之间的换算
- 【操作系统原理-陈渝老师】第十二章 文件系统
- matlab ga初始值,matlab之GA优化.pdf
- Perl之Spreadsheet::WriteExcel
- 【每日一短语】首席芭蕾舞演员
- notifyAll()方法
- C语言:输出1~1000 之间所有的完全平方数
- 经典TVB台词100句