Python 语言的是一款非常容易使用的解释性语言,它的主要特点如下:
易学易用可扩展可移植丰富的三方库正是由于以上这些特点,使得python在一些逻辑简单,功能复杂的场景应用非常广泛。近几年,随着人工智能的飞速发展,Python 的优点得到的充分的体现,因此成为了AI开发的首选语言。
MicroPython(简称mpy)在保留了python语言主要特性的基础上,他还对嵌入式系统的底层做了非常不错的封装,它的特点如下:
沿用Python语法和基本数据结构,保持易学易用性提供基于嵌入式系统的硬件功能库封装,让嵌入式开发简单便捷今天要介绍的是HaaS100如何使用micropython ,连接阿里云的物联网平台,并通过云端来控制设备的LED 灯。
2、方案介绍
阿里云物联网平台提供安全可靠的设备连接通信能力,支持设备数据采集上云,规则引擎流转数据和云端数据下发设备端。此外,也提供方便快捷的设备管理能力,支持物模型定义,数据结构化存储,和远程调试、监控、运维。
本文通过物联网平台下发修改HaaS100的LED状态的命令,HaaS100上的Python程序接收命令,并控制LED灯。具体交互方案设计如下:
3、效果视频<iframe allowfullscreen="true" data-mediaembed="youku" ID="GmGdHKer-1623046461420" src="@R_301_6822@s://player.youku.com/embed/XNTExNDczNjcyOA=="></iframe>
linkKit 控制HaaS100
4、代码清单
# -*- Coding: UTF-8 -*- import iot import utime # 请替换物联网平台申请到的产品和设备信息,可以参考文章:@R_301_6822@s://blog.csdn.net/HaaSTech/article/details/114360517 productKey = "xxxxx" productSecret = "xxxxx" devicename = "xxxxx" deviceSecret = "xxxx" on_connected = False # 初始化linkkit sdk key_info = { 'region' : 'cn-shanghai' , 'productKey': productKey , 'devicename': devicename , 'deviceSecret': deviceSecret , 'productSecret': productSecret } device = iot.Device(key_info) # 物联网平台连接成功的回调函数 def on_connect(): global on_connected on_connected = True device.on('connect',on_connect) # 设置props 事件接收函数(本案例是云端控制led事件) def on_props(request): from driver import GPIO import uJson ON = 0 OFF = 1 #服务端返回的Json 转换成dict payload = uJson.loads(request) #获取dict 中的led 状态字段 stat = payload["LEDSwitch"] gpio = GPIO() # open 函数支持的参数列表如下: # led1;led2;led3;led4;led5 gpio.open('led1') if stat == 1: gpio.write(ON) else: gpio.write(OFF) utime.sleep_ms(200) gpio.close() device.on('props',on_props) # 连接物联网平台 device.connect() # 触发linkit sdk持续处理server端信息 while(True): # device.do_yIEld(200) if on_connected: print('物联网平台连接成功') break else: utime.sleep(1) while True: utime.sleep(0.2) # 断开连接 device.close()
以上就是python 轻应用的主体代码,我们将其保存到文件 linkKitControlLed.py, 然后拷贝到 sdcard 的根目录。
它的主要功能如下:
连接物联网平台等待物联网平台的云端消息,并处理注意事项:
请务必将代码中以下信息替换成自己的物联网平台上相关信息
PRODUCT_KEY = "a1uTFk4xjko" PRODUCT_SECRET = "xxxxxxx" DEVICE_name = "mpy_001" DEVICE_SECRET = "xxxxxxxxxxxxxxx"
python /data/python-apps/wifi/main.py wifi_ssID wifi_password
5.1、硬件
HaaS100 开发板一块电源一个micro usb 一个sdcard 一个
注意事项:
HaaS100支持外接微型SD卡(Micro SD),最大支持64GB数据的存储,SD卡槽位于开发板背,可以外接微型SD存储卡sdcard 格式支持: FAT16/fat32本案例中暂时不支持exFAT 格式5.2、软件
最新的HaaS100 开源代码串口工具
6、实现步骤
在开始之前,务必保证按照Python轻应用官网中的快速开始章节,烧录官方固件或者自己编译固件烧录。
6.1、创建产品和设备
首先参考文章 https://help.aliyun.com/document_detail/189183.html?spm=a2c4g.11174283.6.572.3a8b1668juSbg2 ,创建一个自己的产品和设备
如上图所示,笔者创建的产品是 mpy_test, 设备是mpy_001
6.2、创建物模型@H_301_170@
选择属性,输入LED开关, 选中d出的默认属性, 点击确定即可完成属性的添加
也可以完全自己定义一个属性,确保属性主程序代码中的属性键的名称和 这里一致即可。
创建完成以后,点击发布即可。
6.3、执行轻应用代码
烧录完成以后,插入sdcard, 开机并连接串口
通过串口输入:
python /sdcard/linkKitControlLed.py
就可以完成轻应用的启动,启动成功以后,串口会出现如下打印:
连接成功以后,主程序就会等待云端的消息分发,收到消息以后就会通过on_prop_set 函数处理
6.4、发送云端控制指令
在设备属性发布以后,我们就可以开始在线调试了
如上图所示:
选择监控运维---->在线调试选择产品mpy_test 和 设备 mpy_001正常情况下,设备已经在线,我们就可以看到下面的调试选项了选择属性调试---->默认模块---->LED开关选择参数 开启-1点击调试,设置即可发送成功以后,设备端串口会收到如下打印,最终调用回调函数,开启设备上的led 灯,从而实现上图中的效果
技术交流
Python轻应用继承了Python易学易用的特点,同时提供了基于嵌入式硬件的基础库封装,让开发者可以很方便的通过交互式的环境,实时进行嵌入式开发,让嵌入式开发也变得简单方便。
如需更多技术支持,可加入钉钉开发者群,获取一对一的技术支持!
————————————————
版权声明:本文为CSDN博主「HaaS技术社区」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:@R_301_6822@s://blog.csdn.net/HaaSTech/article/details/117561136
以上是内存溢出为你收集整理的Python轻应用:如何快速的数据上云和对设备端控制?全部内容,希望文章能够帮你解决Python轻应用:如何快速的数据上云和对设备端控制?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)