zl程序教程

您现在的位置是:首页 >  Python

当前栏目

HaaS轻应用(Python):连接物联网平台并控制设备硬件

2023-02-26 12:28:15 时间

1、前言

Python 语言的是一款非常容易使用的解释性语言,它的主要特点如下:

  • 易学易用
  • 可扩展可移植
  • 丰富的三方库

正是由于以上这些特点,使得python在一些逻辑简单,功能复杂的场景应用非常广泛。近几年,随着人工智能的飞速发展,Python 的优点得到的充分的体现,因此成为了AI开发的首选语言。

(福利推荐:阿里云、腾讯云、华为云服务器最新限时优惠活动,云服务器1核2G仅88元/年、2核4G仅698元/3年,点击这里立即抢购>>>

MicroPython(简称mpy)在保留了python语言主要特性的基础上,他还对嵌入式系统的底层做了非常不错的封装,它的特点如下:

  • 沿用python语法和基本数据结构,保持易学易用性
  • 提供基于嵌入式系统的硬件功能库封装,让嵌入式开发简单便捷

今天要介绍的是HaaS100如何使用micropython ,连接阿里云的物联网平台,并通过云端来控制设备的LED 灯。

2、方案介绍

阿里云物联网平台提供安全可靠的设备连接通信能力,支持设备数据采集上云,规则引擎流转数据和云端数据下发设备端。此外,也提供方便快捷的设备管理能力,支持物模型定义,数据结构化存储,和远程调试、监控、运维。

本文通过物联网平台下发修改HaaS100的LED状态的命令,HaaS100上的Python程序接收命令,并控制LED灯。具体交互方案设计如下:

HaaS轻应用(Python):连接物联网平台并控制设备硬件

3、效果视频

LinkKit 控制HaaS100视频详情

4、代码清单

# -*- coding: UTF-8 -*-   import iot   import utime   # 请替换物联网平台申请到的产品和设备信息,可以参考文章:https://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 的根目录。

它的主要功能如下:

  1. 连接物联网平台
  2. 等待物联网平台的云端消息,并处理

注意事项:

  • 请务必将代码中以下信息替换成自己的物联网平台上相关信息
PRODUCT_KEY = "a1uTFk4xjko"   PRODUCT_SECRET = "xxxxxxx"   DEVICE_NAME  =    "mpy_001"   DEVICE_SECRET  =   "xxxxxxxxxxxxxxx"  
  • 运行代码之前请务必保证机器联网,python 联网指令如下
python /data/python-apps/wifi/main.py wifi_ssid  wifi_password

5、物品清单

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?userCode=wrvvs1rm?spm=a2c4g.11174283.6.572.3a8b1668juSbg2 ,创建一个自己的产品和设备

HaaS轻应用(Python):连接物联网平台并控制设备硬件

如上图所示,笔者创建的产品是 mpy_test, 设备是mpy_001

6.2、创建物模型

HaaS轻应用(Python):连接物联网平台并控制设备硬件

如上图所示,首先点击产品,选择我们自己创建的产品mpy_test, 然后点击编辑草稿,添加自定义功能 进入下图中的界面

HaaS轻应用(Python):连接物联网平台并控制设备硬件

选择属性,输入LED开关, 选中弹出的默认属性, 点击确定即可完成属性的添加

也可以完全自己定义一个属性,确保属性主程序代码中的属性键的名称和 这里一致即可。

创建完成以后,点击发布即可。

6.3、执行轻应用代码

烧录完成以后,插入sdcard, 开机并连接串口

通过串口输入:

python /sdcard/LinkKitControlLed.py

就可以完成轻应用的启动,启动成功以后,串口会出现如下打印:

HaaS轻应用(Python):连接物联网平台并控制设备硬件

连接成功以后,主程序就会等待云端的消息分发,收到消息以后就会通过on_prop_set 函数处理

6.4、发送云端控制指令

在设备属性发布以后,我们就可以开始在线调试了

HaaS轻应用(Python):连接物联网平台并控制设备硬件

如上图所示:

  • 选择监控运维—->在线调试
  • 选择产品mpy_test 和 设备 mpy_001
  • 正常情况下,设备已经在线,我们就可以看到下面的调试选项了
  • 选择属性调试—->默认模块—->LED开关
  • 选择参数 开启-1
  • 点击调试,设置即可

发送成功以后,设备端串口会收到如下打印,最终调用回调函数,开启设备上的led 灯,从而实现上图中的效果

HaaS轻应用(Python):连接物联网平台并控制设备硬件

技术交流

Python轻应用继承了Python易学易用的特点,同时提供了基于嵌入式硬件的基础库封装,让开发者可以很方便的通过交互式的环境,实时进行嵌入式开发,让嵌入式开发也变得简单方便。

如需更多技术支持,可加入钉钉开发者群,获取一对一的技术支持!

HaaS轻应用(Python):连接物联网平台并控制设备硬件

HaaS轻应用(Python):连接物联网平台并控制设备硬件


本站部分内容转载自网络,版权属于原作者所有,如有异议请联系QQ153890879修改或删除,谢谢!
转载请注明原文链接:HaaS轻应用(Python):连接物联网平台并控制设备硬件

你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:

1、点击这里立即申请成为腾讯云VIP客户

2、点击这里立即注册成为天翼云VIP客户

3、点击这里立即申请成为华为云VIP客户

4、点击这里立享阿里云产品终身VIP优惠价

喜欢 (0)
[[email protected]]
分享 (0)