Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 9 additions & 84 deletions haas_lib_bundles/python/README.md
Original file line number Diff line number Diff line change
@@ -1,86 +1,5 @@
# HaaS Python

## HaaS Python快速开始

  
对于初学者,我们建议您从开发板快速开始入门。
* [ESP32快速开始](docs/startup/ESP32_startup.md)
* [HaaS100快速开始](docs/startup/HaaS100_startup.md)
* [HaaS EDU K1快速开始](docs/startup/HaaS_EDU_K1_startup.md)
* [HaaS506快速开始](docs/startup/HaaS506_startup.md)

  
快速入门完成之后,建议您进入HaaS Python官网中[趣味案例专区](https://haas.iot.aliyun.com/solution),趣味对应的markdown文档链接如下:
* ESP32开发板
* [起夜灯](./docs/examples/human_detector/esp32/README.md)
* [燃气检测系统](./docs/examples/gas_detector/esp32/README.md)
* [甲醛检测系统](./docs/examples/hcho_detector/esp32/README.md)
* [花卉养植](./docs/examples/floriculture/esp32/README.md)
* [火焰检测](./docs/examples/fire_detector/esp32/README.md)
* [智慧路灯](./docs/examples/smart_public_lighting/esp32/README.md)
* [车辆定位](./docs/examples/vehicle_location/esp32/README.md)

  
如果您想更详细的了解如何从浅到深完成一个完整的物联网应用的开发,建议您进入我们的[学习中心](https://haas.iot.aliyun.com/learning)进行学习。


  
如果您想看HaaS Python都提供哪些库及其API说明,请点击如下链接查看。
* MicroPython标准API

|库名称|库说明|超链接|
|:-:|:-|:-:|
|math|数学函数|[点我查看说明](docs/standard_api/math.md)|
|ubinascii|二进制/ASCII转换|[点我查看说明](docs/standard_api/ubinascii.md)|
|ucollections|容器|[点我查看说明](docs/standard_api/ucollections.md)|
|uhashlib|散列算法|[点我查看说明](docs/standard_api/uhashlib.md)|
|uio|输入/输出流|[点我查看说明](docs/standard_api/uio.md)|
|ujson|JSON编解码|[点我查看说明](docs/standard_api/json.md)|
|uos|基础系统操作模块|[点我查看说明](docs/standard_api/uos.md)|
|usocket|socket模块|[点我查看说明](docs/standard_api/usocket.md)|
|ustruct|打包和解压原始数据类型|[点我查看说明](docs/standard_api/ustruct.md)|
|sys|系统相关函数|[点我查看说明](docs/standard_api/sys.md)|
|utime|时间相关函数|[点我查看说明](docs/standard_api/utime.md)|
|uzlib|zlib解压缩|[点我查看说明](docs/standard_api/uzlib.md)|
|_thread|底层多线程|[点我查看说明](docs/standard_api/_thread.md)|
|bluetooth|蓝牙BLE功能|[点我查看说明](docs/standard_api/bluetooth.md)|

* HaaS Python扩展API

|库名称|库说明|超链接|
|:-|:-|:-:|
|aliyunIoT Device|物联网平台设备类功能|[点我查看说明](docs/haas_extended_api/aliyunIoT/device.md)|
|aliyunIoT Gateway|物联网平台网关类功能|[点我查看说明](docs/haas_extended_api/aliyunIoT/gateway.md)|
|kv|键值对存储系统|[点我查看说明](docs/haas_extended_api/kv.md)|
|OSS|阿里云存储服务|[点我查看说明](docs/haas_extended_api/oss.md)|
|audio| 音频录制和播放|[点我查看说明](docs/haas_extended_api/audio.md)|
|bleNetConfig|蓝牙配网功能|[点我查看说明](docs/haas_extended_api/bleNetConfig.md)|
|http|HTTP模块|[点我查看说明](docs/haas_extended_api/http.md)|
|modbus|Modbus协议|[点我查看说明](docs/haas_extended_api/modbus.md)|
|ulog|log分级打印模块|[点我查看说明](docs/haas_extended_api/ulog.md)|
|OTA|Python轻应用在线更新|[点我查看说明](docs/haas_extended_api/ota.md)|
|ucamera| 摄像头功能模块|[点我查看说明](docs/haas_extended_api/ucamera.md)|
|AI|人工智能功能模块|[点我查看说明](docs/haas_extended_api/AI.md)|

* HaaS Python硬件积木驱动库

|硬件积木名称|功能|Python驱动库|
|:-|:-|:-:|
|aht21b|温湿度传感器库|[库文件](./libraries/aht21b)|
|sht3x|温湿度传感器库|[库文件](./libraries/sht3x)|
|si7006|温湿度传感器库|[库文件](./libraries/si7006)|
|cht8305|温湿度传感器库|[库文件](./libraries/cht8305)|
|ir|人体感应传感器|[库文件](./libraries/ir)|
|dcmotor|直流电机|[库文件](./libraries/dcmotor)|
|fire|火焰传感器|[库文件](./libraries/fire)|
|ap3216c|光照传感器|[库文件](./libraries/ap3216c)|
|mq2|燃气/烟雾传感器|[库文件](./libraries/mq2)|
|photoresistor|光敏传感器|[库文件](./libraries/photoresistor)|
|hcho|甲醛传感器|[库文件](./libraries/hcho)|
|gnss|GPS传感器|[库文件](./libraries/gnss)|

更多关于硬件积木的介绍、API使用文档及对应的案例文档请参考[链接](https://gitee.com/haasedu/haasedu/blob/release_2.0/%E6%8B%93%E5%B1%95%E7%9F%A5%E8%AF%86/HaaS%E7%A1%AC%E4%BB%B6%E7%A7%AF%E6%9C%A8%E5%BA%93/%E4%BC%A0%E6%84%9F%E5%99%A8%E7%A1%AC%E4%BB%B6%E7%A7%AF%E6%9C%A8/README.md#/haasedu/haasedu/blob/master/%E6%8B%93%E5%B1%95%E7%9F%A5%E8%AF%86/HaaS%E7%A1%AC%E4%BB%B6%E7%A7%AF%E6%9C%A8%E5%BA%93/%E4%BC%A0%E6%84%9F%E5%99%A8%E7%A1%AC%E4%BB%B6%E7%A7%AF%E6%9C%A8/%E6%B8%A9%E6%B9%BF%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8_SHT3X-DIS.md)。

## HaaS Python背景

  
Expand All @@ -95,13 +14,16 @@ MicroPython开源项目中主要包含四部分内容:轻量级的Python解释
  
HaaS Python是阿里云IoT团队最新研发的一套低代码编程框架,兼容MicroPython编程规范,依托HaaS平台软硬件积木提供AI、支付、蓝牙配网、云连接、UI等物联网场景常用的能力,从而解决了物联网应用开发难的问题。有了Python轻应用框架,物联网编程不再局限于专业软件开发人员,一般的技术员也可以快速实现复杂的物联网需求。

### HaaS Python特点
## HaaS Python特点
1. 更好的解决数据上云问题

  
物联网中最常用的场景是数据上云及远程设备控制,针对这点,Python轻应用提供了简单易用支持Python应用快速移植的硬件访问接口Driver库及包括Socket,HTTP,HTTPS,Websocket,MQTT及aliyunIoT(连接阿里云物联网平台的SDK)在内的多种网络功能。以下是基于Python轻应用框架实现远程控制开发板LED灯的例子。可以看出只需要数十行代码(以ESP32平台为例)就可以完成物联网设备数据上云及远程控制的功能。


<details>
<summary>数据上云示例代码</summary>

```python

'''
Expand Down Expand Up @@ -242,13 +164,14 @@ if __name__ == '__main__' :
connect_lk(productKey, deviceName, deviceSecret)

```
</details>

2. 丰富的垂直解决方案

&emsp;&emsp;
HaaS云端解决方案中心包含大量软硬一体应用案例,覆盖连云、控端、AI、UI等IoT设备常见应用。开发者可以基于这些案例快速定制物联网产品。

1. 背靠阿里生态,不止有端,还有云
3. 背靠阿里生态,不止有端,还有云

&emsp;&emsp;
Python轻应用不仅仅是一个端上开发框架,它还背靠阿里生态,提供强大的云端能力。除了提供物联网常用的设备管理、远程控制、数据报表、异常预警等能力以外,还提供了支付宝支付能力、天猫精灵语音识别和语义理解能力、达摩院数视觉算法能力及高德地图能力等。
Expand All @@ -263,6 +186,8 @@ Python轻应用不仅仅是一个端上开发框架,它还背靠阿里生态
&emsp;&emsp;
HaaS开发者钉钉群提供7*24小时技术支持。HaaS供需平台,帮HaaS开发者实现商业链路闭环。每月一次Python轻应用开发者月会,开发者提出的需求和建议通过阿里内部任务系统跟进,并通过HaaS微发布向开发者反馈最新进展。Python轻应用的开发团队还提供了一套详细的编程文档,其中包括如何在不同的HaaS开发板上完成快速上手的文章、最新编程接口的详细介绍及参考用法(其中包括Python轻应用在物联网场景的垂直使用案例),基于这套文档及技术支持体系,开发者只需要一两天就可以学会Python轻应用。

## HaaS Python快速开始
如何快速开始你的HaaS Python之旅,请参考[链接](https://haas.iot.aliyun.com/haasapi/index.html#/Python/docs/zh-CN/startup/startup)。

## 了解更多
&emsp;&emsp;
Expand All @@ -271,5 +196,5 @@ HaaS开发者钉钉群提供7*24小时技术支持。HaaS供需平台,帮HaaS
&emsp;&emsp;
如果您对HaaS有任何疑问或建议,也欢迎进群提给我们。
<div align="center">
<img src=https://hli.aliyuncs.com/haas-static/haasapi/imgs/HaaS社区.png width=100%/>
<img src=https://img.alicdn.com/imgextra/i3/O1CN01aYBmpk1kG2REDqZNM_!!6000000004655-2-tps-2240-880.png width=100%/>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
动作行为识别目前有着较广泛的应用场景,比如可用于公共场合不文明行为的监测、校园日常安全监测等场景。本文基于Haas Python,通过摄像头采集环境图像,并调用Haas云端积木能力,识别图像中人体的动作行为。


## 背景知识
## 1、背景知识
&emsp;&emsp;
动作行为识别是用摄像机或摄像头采集含有人体动作的图像或视频流,并自动在图像中识别人体的动作行为,属于机器视觉中重要的一个应用。本章中使用阿里云视觉智能开放平台的人体动作行为识别功能来进行识别,目前支持的动作类型有:

Expand All @@ -17,7 +17,7 @@
* 洗手
* 拍照

## 准备
### 1.1、准备

1. M5Stack Core2开发板 一套
2. M5Stack Unit CAM摄像头 一个
Expand All @@ -39,7 +39,7 @@
</div>
<br>

## 云端平台功能开通
## 2、云端平台功能开通
在本案例中涉及到云端平台功能都聚合在HaaS云端积木中,所以无需单独使用 **对象存储OSS** 和 **视觉智能开发平台**。


Expand All @@ -49,13 +49,13 @@
2. 在HaaS官网中的云端积木控制台创建设备;
3. 推送脚本到M5Stack Core2并运行手势识别;

## 注册阿里云账号
### 2.1、注册阿里云账号
&emsp;&emsp;
进入阿里云官网,[注册阿里云账号](https://account.aliyun.com/login/login.htm) 。

<br>

## HaaS云端积木平台
### 2.2、HaaS云端积木平台

1. **登录HaaS官网**

Expand All @@ -68,6 +68,7 @@
<br>

2. **进入HaaS云端积木控制台**

&emsp;&emsp;
如**上图**所示,点击右上角的“控制台”,进入HaaS云端积木的控制台页面。

Expand Down Expand Up @@ -103,31 +104,27 @@
</div>
<br>

## 设备端开发
## 3、设备端开发

### 开发环境
### 3.1、开发环境
&emsp;&emsp;
在进行下一步之前请确保M5StackCore2开发环境已经搭建完毕。详情请参考[M5StackCore2快速开始](../../../startup/M5StackCore2_startup.md)的说明。
<br>

### 创建解决方案
### 3.2、创建解决方案

&emsp;&emsp;
如下图所示,打开VS Code之后在新建一个基于helloworld的python工程,设定好工程名称(“action_recognization”)及工作区路径之后,硬件类型选择m5stackcore2,点击立即创建,创建一个Python轻应用的解决方案。(将下图的项目名字改为“action_recognization”)
如下图所示,在Haas Studio中创建项目。先选择左侧的“开发板型号”再从右侧的案例中选择“动作行为识别系统”案例点击“立即创建”即可。

<div align="center">
<img src=./../../../images/action创建工程.jpg width=60%/>
<img src=./../../../images/HaaS_Studio_创建工程示范.png width=100%/>
</div>

&emsp;&emsp;
将[动作识别](./code/)文件夹中的所有脚本进行复制到“action_recognization”工程根目录中,然后进行如下设定完成设备端代码的开发。

> Python脚本的详细说明请参考脚本内嵌的文字注释
<br>

1. **修改路由器名称及密码**

&emsp;&emsp;
修改action_recognization工程里main.py中SSID和PWD的值为开发者实际要连接的路由器的名称及密码(请注意名称和密码都需要放在''符号中间)。
修改工程里main.py中SSID和PWD的值为开发者实际要连接的路由器的名称及密码(请注意名称和密码都需要放在''符号中间)。

```python
# Wi-Fi SSID和Password设置
Expand All @@ -150,8 +147,8 @@ deviceSecret = "Your-deviceSecret"
```


## 运行结果
### 本地查看
## 4、运行结果
### 4.1、本地查看

&emsp;&emsp;
在网络连接成功后,屏幕上将打印出IP地址和"NTP Done",如果迟迟不能显示“NTP Done”,请长按电源键关机同时拔掉USB线重新上电运行。
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# 气体检测系统
## 1.简介
## 1简介
&emsp;&emsp;
本案例将向大家介绍如何使用Python语言在HaaS 506上实现读取传感信息,上报到阿里云物联网平台,并实现云端下发控制继电器。

## 2.准备
### 1.1、准备
+ 硬件环境
<br>
(1) haas506开发板 Usb转uart模块,Hy转杜邦线4pin 6pin线材,购买链接:
Expand Down Expand Up @@ -32,7 +32,7 @@ https://blog.csdn.net/HaaSTech/article/details/119379840
(6) Haas506 Python api手册,查看链接:
https://g.alicdn.com/HaaSAI/PythonDoc/library/index.html

## 3.涉及知识点
### 1.2、涉及知识点
&emsp;&emsp;(1)uart通讯原理
<br>
&emsp;&emsp;&emsp;&emsp;串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。
Expand All @@ -46,7 +46,7 @@ https://g.alicdn.com/HaaSAI/PythonDoc/library/index.html
&emsp;&emsp;&emsp;&emsp;阿里云物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备支撑设备数据采集上云;向上提供云端API,服务端通过调用云端API将指令下发至设备端,实现远程控制。
<br>

## 4.代码流程图
### 1.3、代码流程图
&emsp;&emsp;
<div align="center">
<img src=./../../../images/haas506案例图片/haas506_gas_1.jpg width=80%/>
Expand All @@ -55,15 +55,15 @@ https://g.alicdn.com/HaaSAI/PythonDoc/library/index.html



## 5.接线方式
### 1.4、接线方式
&emsp;&emsp;(1)空气传感器连接4pin HY线材对接HaaS506 开发板TTL接口(J8)。
注意事项:空气传感器接收接HaaS506开发板发送(TX),空气传感器发送接HaaS506开发板接收(RX),空气传感器地接HaaS506开发板GND,空气传感器VCC接HaaS506 开发板3.3V
<br>
&emsp;&emsp;(2) 将6pin HY线材插入SPI接口(J9)。
注意事项:继电器VCC接Haas506开发板3.3V,继电器Gnd接HaaS506开发板GND,继电器In1接HaaS506开发板MOSI。HaaS506开发板CS接HaaS506开发板GND。
<br>

## 6.使用
### 1.5、使用
+ 阿里云物联网产品创建

&emsp;&emsp;&emsp;&emsp;请参见如下文档:
Expand Down Expand Up @@ -285,7 +285,7 @@ https://g.alicdn.com/HaaSAI/PythonDoc/library/index.html



## 7.测试
### 1.6、测试
+ 准备硬件:

&emsp;&emsp;(1)请参考上述准备 硬件环境。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
</div>
<br>

## 简介
## 1、简介
&emsp;&emsp;
气压是作用在单位面积上的大气压力,即在数值上等于单位面积上向上延伸到大气上界的垂直空气柱所受到的重力。气压的国际制单位是帕斯卡,简称帕,符号是Pa。气象学中,人们一般用千帕(kPa)或百帕(hPa)作为单位。气压不仅随高度变化,也随温度而异。

### 背景知识
### 1.1、背景知识
&emsp;&emsp;
本系统的核心在于如何精准的检测环境中的大气压值,测量大气压值一般使用气压传感器。气压传感器其实就是一个惠斯通电桥,扩散在单晶硅片上,用于检测电阻值的微小变化。电压阻效应使桥壁电阻值发生变化,产生一个差动电压信号。根据差动电压信号,即可计算出气体压强是多大。

Expand All @@ -22,7 +22,7 @@
</div>
<br>

## 准备
### 1.2、准备
&emsp;&emsp;
完成本案例需要如下硬件:

Expand All @@ -35,7 +35,6 @@
&emsp;&emsp;
3、杜邦连接线若干

### 硬件连线图
&emsp;&emsp;
硬件连线图如下图所示,六个引脚的名称与功能如下:

Expand All @@ -62,46 +61,37 @@
</div>
<br>

## 开发步骤
## 2、开发步骤

### 搭建开发环境
### 2.1、搭建开发环境

&emsp;&emsp;
在进行开发之前请确保ESP32开发环境已经搭建完毕。详情请参考[M5StackCore2开发环境](../../../startup/M5StackCore2_startup.md)的说明。

### 创建解决方案
### 2.2、创建解决方案
&emsp;&emsp;
如下图所示,打开VS Code之后在新建一个基于hellworld的python工程,设定好工程名称(“air_pressure_detector”)及工作区路径之后,硬件类型选择M5StackCore2,点击立即创建,创建一个Python轻应用的解决方案
如下图所示,在Haas Studio中创建项目。先选择左侧的“开发板型号”再从右侧的案例中选择“气压检测系统”案例点击“立即创建”即可

<div align="center">
<img src=./../../../images/气压检测系统_创建air_pressure_detector工程.png width=30%/>
<img src=./../../../images/HaaS_Studio_创建工程示范.png width=100%/>
</div>
<br>

### 案例代码
&emsp;&emsp;
将[气压检测系统](./code/)文件下所有脚本代码复制后,覆盖刚创建的“air_pressure_detector”工程根目录下的文件。
<br>

## 推送脚本

&emsp;&emsp;
推送此工程到 M5StackCore2 设备上,如下图所示。

<div align="center">
<img src=./../../../images/气压检测系统-推送步骤.png width=90%/>
</div>

2. **推送脚本时的日志**

&emsp;&emsp;
推送过程中的日志输出如下图所示。如果需要选择串口号,请选择“/dev/cu.wchusbserial53190134851 'USB Single Serial'”,直接输入串口号前面的数字即可。

<div align="center">
<img src=./../../../images/气压检测系统-推送脚本log.png width=90%/>
</div>

## 运行结果
## 3、运行结果
&emsp;&emsp;
推送此脚本到M5StackCore2之后并运行,串口会周期性的打印如下日志,包括温度、气压和海拔高度:

Expand Down Expand Up @@ -132,9 +122,9 @@ M5StackCore2界面显示的结果如下图所示:
</div>
<br>

## 设备端代码说明
## 4、设备端代码说明

### UI显示界面开发
### 4.1、UI显示界面开发
&emsp;&emsp;
在做一个气压检测系统之前,首先需要做出气压表盘的UI显示界面,用于显示气压数据。HaaS Python提供了[UI Lite轻应用显示框架](../../../haas_extended_api/ui_lite/UI_Lite_widgets.md),支持丰富的UI控件,开发者可以自行选择需要的控件进行UI界面开发,实现自己的业务逻辑。本案例选用了[UI Lite轻应用显示框架](../../../haas_extended_api/ui_lite/UI_Lite_widgets.md)中的"meter - 表盘"组件,作为气压检测系统的UI显示界面。

Expand Down Expand Up @@ -254,7 +244,7 @@ spans.set_mode(lv.SPAN_MODE.EXPAND)
span = spans.new_span()
```

### 获取传感器数据并传入表盘
### 4.2、获取传感器数据并传入表盘
&emsp;&emsp;
定义set_value()接口,对表盘的气压值进行设置,以传入传感器数据实时显示当前气压值:
```python
Expand Down
Loading