ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

海萤物联网教程:MicroPython SDK

海萤物联网教程:MicroPython SDK 文章目录海萤物联网教程MicroPython SDK简介开源安装APIconnect_wifi连接wifirun运行用户应用程序示例读取NTP时间对外提供灯控服务海萤物联网教程MicroPython SDK本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.在线文档地址简介海萤物联网的MicroPython SDK是标准Python SDK移植到MicroPython的版本标准版本可以查看文档海萤物联网教程Python SDKMicroPython版本SDK在esp32中测试成功esp8266资源太少不能运行。本文主要介绍MicroPython版本与标准版本的不同之处。开源github上的项目地址gitee上的项目地址安装MicroPython版本的SDK已上传到pypi包名是mciropython-tziot。此包依赖micropython-lagancrcmodbus等若干个包。所以可以新建需求文件然后一键全部下载。新建文件requirements.txt内容micropython-tziot micropython-lagan micropython-dcompy crcmodbus knocky sbc utzpy输入命令下载包到指定目录pip install --targetd:/package -r requirements.txt下载后文件如下图删除掉egg-info等无关文件将所有文件夹都上传到设备的lib目录下即可在设备中使用。APIMicroPython版本的SDK和标准版本的API接口全部一致新增了两个函数defconnect_wifi(ssid:str,keyNone,timeout10)-bool: 连接wifi :param ssid: wifi热点名 :param key: wifi密码.不需要密码则填None :param timeout: 超时时间.单位:s :return: 返回True表示连接成功.False是连接失败 defrun(app):运行应用程序.如果没有应用程序,app可填写Noneconnect_wifi连接wifiesp32等可通过wifi联网的设备可调用本函数连接wifi。run运行用户应用程序MicroPython在不同设备上函数嵌套深度各有不同以esp32为例主线程的嵌套深度为49线程中只有10。所以将海萤物联网SDK部署在主线程然后通过run函数开辟线程运行用户程序。所有用户代码需放在用户程序中。示例读取NTP时间importtziotimporttime pipe0defmain():globalpipeprint(connect wifi)oktziot.connect_wifi(JDHOME_MASTER,QWERASDFZXCV)ifokisFalse:print(connect wifi failed)returnprint(connect wlan success)pipetziot.bind_pipe_net(0x2141000000010029,pwd, 0.0.0.0,12025)tziot.run(app)defapp():globalpipewhilenottziot.is_conn():time.sleep(0.1)resp,errtziot.call(pipe,0x2141000000000004,1,2000,bytearray())print(err:,err,time:,resp)if__name____main__:main()输出connect wifi connect wlan success err: 0 time: b2021-04-06 05:23:00 0800 CST对外提供灯控服务开发板上有一个灯通过GPIO2控制的。对外提供灯控服务控制这个灯的亮灭。服务号服务1控制灯状态CON请求字段字节数灯状态1ACK应答空源码importtziotimporttimefrommachineimportPin# 服务号RID_LED1pipe0gpioNonestateFalsedefmain():globalpipe,gpio gpioPin(2,Pin.OUT)gpio.on()print(connect wifi)oktziot.connect_wifi(JDHOME_MASTER,QWERASDFZXCV)ifokisFalse:print(connect wifi failed)returnprint(connect wlan success)pipetziot.bind_pipe_net(0x2141000000010029,pwd,0.0.0.0,12025)tziot.register(RID_LED,ledService)tziot.run(None)defledService(pipe:int,src_ia:int,req:bytearray)-(bytearray,int):globalstate,gpioiflen(req)!1:returnprint(src ia:0x%x state:%d%(src_ia,req[0]))ifreq[0]:gpio.on()else:gpio.off()returnNone,0if__name____main__:main()用go语言编写一个测试程序控制灯灭然后3秒后亮pipe,_tziot.BindPipeNet(0x2141000000000401,pwd,192.168.1.119,12021)fortziot.IsConn()false{}resp,err:tziot.Call(pipe,0x2141000000010029,1,3000,[]uint8{0})fmt.Println(err:,err,time:,string(resp))time.Sleep(3*time.Second)resp,errtziot.Call(pipe,0x2141000000010029,1,3000,[]uint8{1})fmt.Println(err:,err,time:,string(resp))设备LED会灭3秒然后亮并有打印输出connect wifi connect wlan success src ia:0x2141000000000401 state:0 src ia:0x2141000000000401 state:1
返回列表