MicroPython:将开发板连入物联网云平台

MicroPython和一般的python一样,也有很多第三库,多亏了这些类库,使得我们能使用少量语句,就可以完成其他语言大量代码才能完成的工作,大家可以到 www.github.com/micropython/micropython-lib , 查看,下载这些类库,使用工具传到板子上,一个import 就可以使用了。

本次,我们使用搭载ESP8266模块的MicroPython开发板,导入了umqtt.simple.py模块,该模块是对MQTT协议的封装,我们使用MQTT协议,接入中国移动ONENET物联网平台,我们的目的是在物联网平台上发送命令,控制开发板上自带的LED,我们发送‘on’,使得LED亮起,发送‘off’使得LED熄灭。

上图是连接好平台以后的开发板串口输出的信息,下图是ONENET云平台上的调试界面:

可以看到,我们成功的发送了命令:

下面是演示视频:

 

下面是代码部分,我们在github上找到了相关示例代码,修改了它的一些参数,以适应ONENET平台的要求,大家可以自己复制代码,主要是boot.py和mqtt.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('dear', 'azrael233') #wifi的SSID和密码
while not sta_if.isconnected():
pass
print('network config:', sta_if.ifconfig())
do_connect()
gc.collect()

上面是boot.py的全部代码,主要是用来连接本地的WIFI,并且在连接WIFI后输出一些网络信息。

from umqtt.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 = "3784858"
TOPIC = b"zhimadiyled"
username='74321'
password='zhimadiymicropythonesp8266'

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):
#括号里主要是客户端ID,服务器地址,服务器端口,用户产品ID,鉴权信息
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()

上面是mqtt.py的全部代码,主要是定义了一下ONENET平台的参数,比如IP,端口,设备id,用户id,鉴权信息。大家使用的时候,只需要把前面几行代码修改成自己的就可以了。
最后是mian.py,代码主要是调用mqtt.py中的函数,开机自动运行:

import mqtt
mqtt.main()

还有umqtt.simple.py大家可以上文章开头的地址下载,不需要改动。大家把上述四个.py文件修改好以后,上传到板子上,按下RST按键,就可以连接上ONENET开放平台了。