一:目的: 根据官方入门实践例程,学习面向 C/C++ 和 Java* 开发的 Eclipse* IDE中多线程处理。实现自动工厂照明监控系统。 二,具体实现: 1,使用灯光传感器根据可配置时间表检查各自动照明系统的启闭情况; 2,使用内置 Web 界面访问以设置照明间隔; 3,使用连接的温度传感器监测工厂温度; 4,如果系统不正常工作,发出报警信号。 三,工作原理: 通过web界面设置照明系统时间表。如果到了开灯时间,灯光传感器没有检测到灯光,发出报警信号。并实时监测温度数据并记录改信息。 四,硬件搭建 使用带 Grove* Starter Kit Plus套件的intel edison开发板,包括:1,Arduino breakout套件; 2,Grove灯光传感器; 3,Grove温度传感器; 4,Grove RGB LCD显示器; 5,Grove LED灯。 组装: 1,Grove灯光传感器连接到A0上; 2,Grove温度传感器连接在A1上; 3,Grove RGB LCD显示器接在任意一个I2C接口上。 4,Grove led接在D8上。
五,代码实现与分析 首先创建=三个线程,分别处理相关任务。
线程一,读取温度传感器值,并上传到web界面上显示
线程二,读取灯光传感器值,判断是否出现异常情况。有异常,则发出报警信息。异常情况有: 1,开灯时间,读取灯光传感器值比较小; 2,光灯时间,读取灯光传感器值比较大。
线程三,在lcd上显示时间。处理灯控事务。
六,结果验证 打开web界面
设置灯控时间。 手动打开灯,点击On
点击off,灯灭
周期上传温度值在web上显示。。但是接入温度传感器后,运行是提示错误:undefined symbol: _ZN3upm9GroveTempC1Ejf 所以上传了光传感器的值。 等有时间来查找加入温度传感器后提示错误:undefined symbol: _ZN3upm9GroveTempC1Ejf的问题。应该是库的问题。
|