通过 REST API 控制 CHIP IO 通道的模块
项目描述
chip_python_aREST
=============================
用于控制 CHIP GPIO 的 REST API
手册::
对于 Python2.7::
sudo apt-get update
sudo apt-get install git build-essential python-dev python-pip flex bison python-flask -y
git clone https://github.com/xtacocorex/chip_python_aREST.git
cd chip_python_aREST
sudo python setup.py install
For Python3::
sudo apt-get update
sudo apt-get install git build-essential python3-dev python3-pip flex bison python-flask -y
git clone https://github.com/xtacocorex/chip_python_aREST.git
cd chip_python_aREST
sudo python3 setup.py install
使用这个库需要 CHIP_IO,代码和说明在这里:https://github.com/xtacocorex/CHIP_IO
使用这个库的脚本需要以 root 权限运行(sudo 或在启动时通过 init 脚本启动)。
这个库也可以在 pypi 上使用,可以通过 pip/pip3 安装。:
# Python2
sudo pip install chip-python-aREST
# Python3
sudo pip3 install chip-python-aREST
Usage
--------
**示例脚本**
以下是一个示例脚本,详细说明了在 CHIP 上实例化 REST API 的基本方法::
import CHIP_aREST.aREST as aREST
# Setup the id
# The id is a special identifier for your CHIP
aREST.set_id('5gad42' )
# 设置名称
# 名称可以是任何你想要
的 aREST.set_name("My Local CHIP")
# 设置硬件类型
# 在 CHIP_IO 获得 CHIP Pro 支持之前不需要
aREST.set_hardware("chip")
# 这是任何地方将设置变量和函数
# 启动 API
# 可以打开/关闭调试
# 保持主机 0.0.0.0 以允许本地网络访问
# 端口可以是任何你想要的
aREST.RestApp(host="0.0. 0.0"<Plug>PeepOpenort=3000,debug=True)
API还支持用户指定的变量和函数::
# 先创建变量
temperature = 25.2
# 然后添加到API
aREST.variable("temperature",temperature)
# 对于函数,我们需要先定义它
# 函数可以有参数,它们可以通过 url 参数
传入 def myfunction():
# 你可以在这里做任何你想做的事情
# CHIP_IO 特定调用
# 疯狂的数学
# 或者在这种情况下
返回“我的函数被调用,你好!”
# 现在我们将它添加到 API
# 确保你没有将 () 添加到函数
aREST.function("functiontest",myfunction)
云功能待定。
示例脚本位于示例文件夹中。它们也安装在 /usr/local/bin/ 中。
REST API
---------
对于 API 的本地实例,您可以通过以下方式访问 CHIP:http:
//192.168.0.5 :3000/
将 IP 地址替换为您的 CHIP 的地址。如果您的 CHIP 上安装了 avahi,您可以将 IP 地址替换为 <hostname>.local。
下表详细介绍了所有 REST API。请注意用于调用的 HTTP 方法。并非所有东西都使用普通的 HTTP GET 方法。
如果您使用 Web 浏览器将 URL 发送到 CHIP,则仅限于 GET 方法。
安装在 Linux 或 MacOS/OS X 上的 curl 程序可用于测试 API::
curl -X GET http://chipdev.local:3000/digital/csid0/1
curl -X GET http://chipdev.local :3000/温度
curl -X PUT http://chipdev.local:3000/temperature?value=-24.2
**基本知识**
+-----------------+-------------------------- ------+-------------------------------------------------------- ------------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | / | 基本信息 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /id | 基本信息 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /调试 | 转储所有数据 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /<变量名> | 获取 <变量名> 的值 |
+------------------+------------------ -+------------------------------------------------ ------+
| 删除 | /<变量名> | 删除 <变量名> |
+------------------+------------------ -+------------------------------------------------ ------+
| 放置,发布 | /<变量名>?值=<值> | 将 <变量名> 设置为 <值> |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /<函数名> | 获取 <functionname> 的值 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /<函数名>?值=<值> | 使用 <value> 获取 <functionname> 的值 作为输入 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /版本 | 获取当前 CHIP_IO 版本 |
+------------------+------------------ -+------------------------------------------------ ------+
**GPIO**
+-----------------+------------------ -------------+------------------------------------ ------------------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取、放置、发布 | /digital/<pinname>/[0,1] | 数字写入 0 或 1 到 <pinname> |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /digital/<pinname> | 数字阅读 <pinname> |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /digital/<pinname>/r | 数字阅读 <pinname> |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /数字/清理 | 清理所有 GPIO 引脚 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /digital/cleanup/<pinname> | 仅清理 GPIO 引脚:<pinname>
+------------------+------------------ -+------------------------------------------------ ------+
**PWM**
+-----------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- --------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
| 获取 | /pwm/0/start?duty_cycle=[0.0-100.0]&frequency=<频率> | 以占空比和频率启动 PWM0。duty_cycle 和 frequency 是可选的,它们默认为 25.0% 和 200.0 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
| 获取 | /pwm/0/停止 | 停止 PWM0 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
| 获取 | /pwm/0/清理 | 清理 PWM0 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
| 获取、放置、发布 | /pwm/0/duty_cycle/[0.0-100.0] | 更改 PWM0 占空比 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
| 获取、放置、发布 | /pwm/0/frequency/<频率> | 改变 PWM0 频率 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
**软件 PWM **
+------------------+---------------------------- --------------------------------------------+------ -------------------------------------------------- -------------------------------------------------- -------------------------------------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
| 获取 | /softpwm/<pinname>/start?duty_cycle=[0.0-100.0]&frequency=<频率> | 使用占空比和频率在 <pinname> 上启动 SoftPWM。duty_cycle 和 frequency 是可选的,它们默认为 25.0% 和 35.0 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
| 获取 | /softpwm/<引脚名称>/stop | 在 <pinname> 上停止 SoftPWM |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
| 获取 | /softpwm/<引脚名称>/cleanup | 清除 <pinname> 上的 SoftPWM |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
| 获取、放置、发布 | /softpwm/<pinname>/duty_cycle/[0.0-100.0] | 更改 <pinname> 上的 SoftPWM 占空比 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
| 获取、放置、发布 | /softpwm/<pinname>/frequency/<频率> | 更改 <pinname> 上的 SoftPWM 频率 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
**LRADC**
+------------------+------------------ -------------+------------------------------------ ------------------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取、放置、发布 | /analog/sample_rate/[32.25,62.5,125,250] | 将 LRADC 采样率设置为 32.25、62.5、125 或 250 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /模拟/采样率 | 获取当前 LRADC 采样率 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /模拟/比例因子 | 获取 LRADC 比例因子 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /模拟/原始/[0,1] | 获取通道 0 或 1 的原始 LRADC 输出 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /模拟/完整/[0,1] | 获得通道 0 或 1 的完整 LRADC 输出 |
+------------------+------------------ -------------+------------------------------------ ------------------+
**实用程序**
+-----------------+------ -------------------------------------+------------ ------------------------------------------------------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取、放置、发布 | /1v8_pin/enable/[1.8,2.0,2.6,3.3] | 启用 1.8V 引脚以输出 1.8、2.0、2.6 或 3.3V |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /1v8_pin/电压 | 获取当前 1.8V 引脚电压设置 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /1v8_pin/禁用 | 禁用 1.8V 引脚 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /unexport_all | 取消导出所有 GPIO 的备份功能 |
+------------------+------------------ -------------+------------------------------------ ------------------+
学分
--------
Marco Schwartz 的原始 pi-aREST node.js 代码用作此代码的基础。
(https://github.com/marcoschwartz/pi-aREST)
许可证
-------
Robert Wolterman 的 CHIP Python aREST,在 MIT 许可证下发布。
0.3.0
----
* SERVO 支持
* CHIP Pro 支持
0.2.1
----
* Python3 Fixes
0.2.0
----
* 完成封装
* PWM 和 SoftPWM 添加
* 变量删除
* 功能验证
* README 更新
0.1 .3
----
* 将所有内容封装到类中,因为它使所有内容保持清洁
- 通过这样做,我清理了实际的 Flask 装饰器代码
0.1.2
----
* 添加了每个引脚的清理代码
* 添加了调试挂钩以返回所有数据
0.1.1
----
* 添加了数字读/写功能
* 添加了数字清理功能
0.1.0
----
* 初始努力让它工作
- REST API 信息
- 自定义变量
- 自定义函数(未经测试)
- CHIP_IO 版本
- CHIP_IO LRADC 控制和状态
- 用于 1.8VDC 引脚控制和取消导出所有 GPIO 引脚的 CHIP_IO 实用程序
* 基本示例脚本(安装到/usr/bin)
=============================
用于控制 CHIP GPIO 的 REST API
手册::
对于 Python2.7::
sudo apt-get update
sudo apt-get install git build-essential python-dev python-pip flex bison python-flask -y
git clone https://github.com/xtacocorex/chip_python_aREST.git
cd chip_python_aREST
sudo python setup.py install
For Python3::
sudo apt-get update
sudo apt-get install git build-essential python3-dev python3-pip flex bison python-flask -y
git clone https://github.com/xtacocorex/chip_python_aREST.git
cd chip_python_aREST
sudo python3 setup.py install
使用这个库需要 CHIP_IO,代码和说明在这里:https://github.com/xtacocorex/CHIP_IO
使用这个库的脚本需要以 root 权限运行(sudo 或在启动时通过 init 脚本启动)。
这个库也可以在 pypi 上使用,可以通过 pip/pip3 安装。:
# Python2
sudo pip install chip-python-aREST
# Python3
sudo pip3 install chip-python-aREST
Usage
--------
**示例脚本**
以下是一个示例脚本,详细说明了在 CHIP 上实例化 REST API 的基本方法::
import CHIP_aREST.aREST as aREST
# Setup the id
# The id is a special identifier for your CHIP
aREST.set_id('5gad42' )
# 设置名称
# 名称可以是任何你想要
的 aREST.set_name("My Local CHIP")
# 设置硬件类型
# 在 CHIP_IO 获得 CHIP Pro 支持之前不需要
aREST.set_hardware("chip")
# 这是任何地方将设置变量和函数
# 启动 API
# 可以打开/关闭调试
# 保持主机 0.0.0.0 以允许本地网络访问
# 端口可以是任何你想要的
aREST.RestApp(host="0.0. 0.0"<Plug>PeepOpenort=3000,debug=True)
API还支持用户指定的变量和函数::
# 先创建变量
temperature = 25.2
# 然后添加到API
aREST.variable("temperature",temperature)
# 对于函数,我们需要先定义它
# 函数可以有参数,它们可以通过 url 参数
传入 def myfunction():
# 你可以在这里做任何你想做的事情
# CHIP_IO 特定调用
# 疯狂的数学
# 或者在这种情况下
返回“我的函数被调用,你好!”
# 现在我们将它添加到 API
# 确保你没有将 () 添加到函数
aREST.function("functiontest",myfunction)
云功能待定。
示例脚本位于示例文件夹中。它们也安装在 /usr/local/bin/ 中。
REST API
---------
对于 API 的本地实例,您可以通过以下方式访问 CHIP:http:
//192.168.0.5 :3000/
将 IP 地址替换为您的 CHIP 的地址。如果您的 CHIP 上安装了 avahi,您可以将 IP 地址替换为 <hostname>.local。
下表详细介绍了所有 REST API。请注意用于调用的 HTTP 方法。并非所有东西都使用普通的 HTTP GET 方法。
如果您使用 Web 浏览器将 URL 发送到 CHIP,则仅限于 GET 方法。
安装在 Linux 或 MacOS/OS X 上的 curl 程序可用于测试 API::
curl -X GET http://chipdev.local:3000/digital/csid0/1
curl -X GET http://chipdev.local :3000/温度
curl -X PUT http://chipdev.local:3000/temperature?value=-24.2
**基本知识**
+-----------------+-------------------------- ------+-------------------------------------------------------- ------------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | / | 基本信息 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /id | 基本信息 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /调试 | 转储所有数据 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /<变量名> | 获取 <变量名> 的值 |
+------------------+------------------ -+------------------------------------------------ ------+
| 删除 | /<变量名> | 删除 <变量名> |
+------------------+------------------ -+------------------------------------------------ ------+
| 放置,发布 | /<变量名>?值=<值> | 将 <变量名> 设置为 <值> |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /<函数名> | 获取 <functionname> 的值 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /<函数名>?值=<值> | 使用 <value> 获取 <functionname> 的值 作为输入 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /版本 | 获取当前 CHIP_IO 版本 |
+------------------+------------------ -+------------------------------------------------ ------+
**GPIO**
+-----------------+------------------ -------------+------------------------------------ ------------------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取、放置、发布 | /digital/<pinname>/[0,1] | 数字写入 0 或 1 到 <pinname> |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /digital/<pinname> | 数字阅读 <pinname> |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /digital/<pinname>/r | 数字阅读 <pinname> |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /数字/清理 | 清理所有 GPIO 引脚 |
+------------------+------------------ -+------------------------------------------------ ------+
| 获取 | /digital/cleanup/<pinname> | 仅清理 GPIO 引脚:<pinname>
+------------------+------------------ -+------------------------------------------------ ------+
**PWM**
+-----------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- --------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
| 获取 | /pwm/0/start?duty_cycle=[0.0-100.0]&frequency=<频率> | 以占空比和频率启动 PWM0。duty_cycle 和 frequency 是可选的,它们默认为 25.0% 和 200.0 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
| 获取 | /pwm/0/停止 | 停止 PWM0 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
| 获取 | /pwm/0/清理 | 清理 PWM0 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
| 获取、放置、发布 | /pwm/0/duty_cycle/[0.0-100.0] | 更改 PWM0 占空比 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
| 获取、放置、发布 | /pwm/0/frequency/<频率> | 改变 PWM0 频率 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- ---------------------------------------------+
**软件 PWM **
+------------------+---------------------------- --------------------------------------------+------ -------------------------------------------------- -------------------------------------------------- -------------------------------------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
| 获取 | /softpwm/<pinname>/start?duty_cycle=[0.0-100.0]&frequency=<频率> | 使用占空比和频率在 <pinname> 上启动 SoftPWM。duty_cycle 和 frequency 是可选的,它们默认为 25.0% 和 35.0 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
| 获取 | /softpwm/<引脚名称>/stop | 在 <pinname> 上停止 SoftPWM |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
| 获取 | /softpwm/<引脚名称>/cleanup | 清除 <pinname> 上的 SoftPWM |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
| 获取、放置、发布 | /softpwm/<pinname>/duty_cycle/[0.0-100.0] | 更改 <pinname> 上的 SoftPWM 占空比 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
| 获取、放置、发布 | /softpwm/<pinname>/frequency/<频率> | 更改 <pinname> 上的 SoftPWM 频率 |
+------------------+------------------ -----------------------------------------+-------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+
**LRADC**
+------------------+------------------ -------------+------------------------------------ ------------------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取、放置、发布 | /analog/sample_rate/[32.25,62.5,125,250] | 将 LRADC 采样率设置为 32.25、62.5、125 或 250 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /模拟/采样率 | 获取当前 LRADC 采样率 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /模拟/比例因子 | 获取 LRADC 比例因子 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /模拟/原始/[0,1] | 获取通道 0 或 1 的原始 LRADC 输出 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /模拟/完整/[0,1] | 获得通道 0 或 1 的完整 LRADC 输出 |
+------------------+------------------ -------------+------------------------------------ ------------------+
**实用程序**
+-----------------+------ -------------------------------------+------------ ------------------------------------------------------+
| **方法** | **命令** | **描述** |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取、放置、发布 | /1v8_pin/enable/[1.8,2.0,2.6,3.3] | 启用 1.8V 引脚以输出 1.8、2.0、2.6 或 3.3V |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /1v8_pin/电压 | 获取当前 1.8V 引脚电压设置 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /1v8_pin/禁用 | 禁用 1.8V 引脚 |
+------------------+------------------ -------------+------------------------------------ ------------------+
| 获取 | /unexport_all | 取消导出所有 GPIO 的备份功能 |
+------------------+------------------ -------------+------------------------------------ ------------------+
学分
--------
Marco Schwartz 的原始 pi-aREST node.js 代码用作此代码的基础。
(https://github.com/marcoschwartz/pi-aREST)
许可证
-------
Robert Wolterman 的 CHIP Python aREST,在 MIT 许可证下发布。
0.3.0
----
* SERVO 支持
* CHIP Pro 支持
0.2.1
----
* Python3 Fixes
0.2.0
----
* 完成封装
* PWM 和 SoftPWM 添加
* 变量删除
* 功能验证
* README 更新
0.1 .3
----
* 将所有内容封装到类中,因为它使所有内容保持清洁
- 通过这样做,我清理了实际的 Flask 装饰器代码
0.1.2
----
* 添加了每个引脚的清理代码
* 添加了调试挂钩以返回所有数据
0.1.1
----
* 添加了数字读/写功能
* 添加了数字清理功能
0.1.0
----
* 初始努力让它工作
- REST API 信息
- 自定义变量
- 自定义函数(未经测试)
- CHIP_IO 版本
- CHIP_IO LRADC 控制和状态
- 用于 1.8VDC 引脚控制和取消导出所有 GPIO 引脚的 CHIP_IO 实用程序
* 基本示例脚本(安装到/usr/bin)
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
CHIP_aREST-0.3.tar.gz
(17.2 kB
查看哈希)
内置分布
CHIP_aREST-0.3-py2.py3-none-any.whl
(14.4 kB
查看哈希)
关
CHIP_aREST -0.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 31a8bd827fec12dcea46fe54649b0407fef33aed822c61e7e69ef2898a9f7acb |
|
MD5 | 6159b1e2cc8b555ff63fd9a86e15b9c1 |
|
布莱克2-256 | 74c0164b827847ca63492f93705af6a298df82e98e4292c09511d6d8a7016235 |
关
CHIP_aREST -0.3-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9839b6656faa91d3a1393eb48cc126627dd59445f444639091a47b19847580f3 |
|
MD5 | 2636b1e15b2822ea4950757e0d6d3260 |
|
布莱克2-256 | 552fb06646c596a589193652e7c0f7525bea0537806146c9c163a604c028f5d3 |