Skip to main content

通过 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_aREST-0.3.tar.gz (17.2 kB 查看哈希

已上传 source

内置分布

CHIP_aREST-0.3-py2.py3-none-any.whl (14.4 kB 查看哈希

已上传 py2 py3