电子说
小编今天介绍的项目是通过使用CY8CKIT-048 PSoC模拟协处理器先锋套件和树莓派,进行全天24小时不间断的环境数据监控。
本文转自Hackster.io网站(点击文章末尾的“阅读原文”访问该网站相关页面),由小编编译,欢迎拍砖。
项目简介
通过使用CY8CKIT-048 PSoC模拟协处理器先锋套件和树莓派(Raspberry Pi),进行24小时不间断的环境数据监控。
准备材料
硬件:
赛普拉斯PSoC模拟协处理器先锋套件 ×1
(https://www.hackster.io/cypress/products/psoc-analog-coprocessor-pioneer-kit)
树莓派2代B型或其他运行Linux的设备 ×1
(https://www.hackster.io/raspberry-pi/products/raspberry-pi-2-model-b)
USB-A至微型USB线缆
构建系统
赛普拉斯CY8CKIT-048 PSoC®模拟协处理器先锋套件是个很有趣的开发板,可与PSoC Creator 集成开发环境(IDE)轻松配合使用。
其中包括用于与主板之间通信的工具——Bridge Control Panel。
Bridge Control Panel允许用户使用I²C协议与相关应用设备之间双向接收/发送数据。数据可用于绘制数据图表或存储到文件。
该工具的“问题”在于,其仅限在Windows系统中使用,而不适用于运行Linux系统的设备,例如Raspberry Pi。
下面,我们创建二十四小时环境数据监控的应用实例。
试想,如果可以用兼容的Linux / Raspberry Pi的东西来替代Bridge Control Panel 会有怎样的效果?
首先,来看看I²C通信协议是如何通过USB连接工作的。
主板上有两个微控制器:
主芯片是CY8C4A45LQI,用来运行我们的应用程序,譬如说,收集一些传感器数据,并传输到I²C接口上。
CY8C586LTI作为辅助芯片,通过一个USB接口连接到I²C上获取相关数据,以实现I2C-USB bridge。
这块主板的USB HID接口具有一些专有协议。
幸好,该协议与Cypress 3240 USB to I2C bridge基本相同,Kevin Kirkup已经创建了一个相关的库。
https://github.com/kevinkirkup/cy3240-i2c-bridge
把项目从已经淘汰的libhid迁移到libhidapi,并利用Wireshark检测来自Bridge Control Panel的USB命令:
将上述设置进行更新,使其适用于CY8CKIT-048PSoC®模拟协处理器先锋套件。
主要的改变如下:
调整USB产品和供应商ID
调整协议,使其适用于CY8CKIT-048PSoC®模拟协处理器先锋套件
把项目从已经淘汰的libhid迁移到libhidapi
确保代码可兼容64位系统
欲查询代码,可访问我的GitHub账户
https://github.com/bluetiger9/cypress-usb-i2c-bridge.git dd
使用方法
在Raspberry Pi / Linux设备上安装电路板的操作步骤:
需要为CY8CKIT-048PSoC®模拟协处理器先锋套件的开发板上添加一些udev规则。
这样,即使非根(non-root)用户也拥有访问的权限。
为此,我们创建出49-hid-development.rules文件:
内容如下:
重新启动,使新的设置生效:
构建项目之前,首先要安装所需的依赖项:
然后,从我的GitHub资源库克隆项目:
项目配置:
现在这个代码已经准备好编译,运行“make” 程序了。
但是,还需要再等一下。在src目录里有一个main.c文件:
所以,我们需要根据应用程序发布的数据类型先对此进行编辑。
例如,我的项目要发布包含四组传感器值的数据结构(Struct),包括:土壤阻力(水分)、温度、湿度及照度:
从你的PSoC Creator项目中如实复制此struct。
我们还需要根据已经获得的字段,编辑打印数据的代码:
现在可以使用“make”来编译代码了:
接下来,我们要检查一下这个应用程序能否正常运作:
如果一切正常,我们可以利用ts指令创建一些时间戳、改变输出方式为“输出到文件”,然后可以通过“nohup”指令运行该应用程序。这样,即使用户从SSH退出后仍可以保持运行状态:
输出到文件的状态显示如下:
至此,这个应用程序即可全天24小时运行。经过一段时间后,就可以对该文件进行处理,比如绘制数据图表。
OK,尽情享用吧!
原理图
将赛普拉斯开发板连接到树莓派
下载
https://halckemy.s3.amazonaws.com/uploads/attachments/258660/cypr_rpi_C2Drgfd4mm.png
可利用USB缆连接两者。通过Micro USB线缆给树莓派供电。
代码
Cypress USB-I2C bridge
bluetiger9
https://github.com/bluetiger9
cypress-usb-i2c-bridge
https://github.com/bluetiger9/cypress-usb-i2c-bridge
全部0条评论
快来发表一下你的评论吧 !