本项目为2016年广东省电子设计大赛健康电子专题参赛作品,开发了环境监控系统V1.0版本,实现了对养殖场环境参数的实时监测与远程控制。
2016年7月至8月下旬的暑假期间,我与两位大二的同学一起参加了这次比赛,并在现在的大三阶段有时间分享这段经历。以下将主要介绍整个系统的设计及后续改进方向。
### 解题思路
我们参考了官网关于健康电子专题的比赛资料,了解到主办方希望参赛者结合互联网+和物联网技术设计一个作品。因此,我们的构思是通过无线方式上传数据到云端,并监测、传输可能危害人体健康的指标数据;同时用户可以实时查看这些数据并采取措施减少潜在风险。
### 系统实现的功能
系统集成了云端监测功能及闭环自动化控制与远程开环控制于一体,使用WIFI和GPRS技术将水质参数的数据传送到OneNet物联网云服务平台。当检测到的水质指标超过预设值时,会向用户发送短信并自动启动相应设备来改善水体质量。
### 详细介绍
该系统利用传感器监测水中温度、浊度以及pH值,并记录外部光照强度等环境因素。这些数据经由单片机(Arduino)处理后转化为对应水质指标数值;然后通过按键选择WIFI或GPRS传输模式,将所有采集到的数据上传至ONENET平台。
用户可以通过电脑网页或者手机应用程序查看实时监测结果并远程控制相关设备以改善养殖条件等用途。一旦发现异常情况如超出设定的阈值,系统会立即向注册用户的手机发送信息,并启动相应的水质处理装置来优化水体质量。
### 采用的技术方案
本项目采用了WIFI和GPRS相结合的方式进行传感器数据传输,通过ONENET平台实现云端的数据上传及远程监控功能。具体硬件配置包括了Arduino Mega2560单片机、多种类型的环境监测传感器(如DS18B20温度计)、光敏电阻以及用于水质分析的PH值测量仪等。
### 功能框图
- **硬件部分**:
- 单片机:使用Arduino Mega2560。
- 感应器模块包括温湿度感应、pH传感器和浊度检测装置,光照强度监测设备。
- 网络通信模块如ESP8266 WiFi模块与SIM800 GPRS模块用于数据传输;
- 继电器用以控制外部执行机构。
- **软件部分**:
主程序负责协调各硬件组件的工作流程,并通过预设的API调用实现云端服务接口的操作。在主循环中,系统定期读取传感器的数据并通过设定好的网络连接方式将其上传至ONENET服务器上存储和展示给用户查看。
### 部分代码示例
```cpp
String ssid = PUSHPULL; // Wi-Fi SSID
String pass = 888******; // Wi-Fi password
#define OneNetAPIKEY pmWLtnkDBSreKfvg7GsClUXdXa4A // ONENET的APIkey定义
#define OneNetDeviceID 79146 // 设备编号
void setup() {
wifi.begin(ssid,pass); // 初始化Wi-Fi连接设置
}
void loop() {
myDHT11.DHT11_Read(); // 获取温湿度传感器读数
wifi.postDataToOneNet(OneNetAPIKEY, OneNetDeviceID,TEMP,myDHT11.TEM_Buffer_Int);
delay(500); // 等待一段时间后再次上传温度数据
}
// 发送GPRS方式的数据到ONENET平台的函数实现细节略。
```
以上代码段展示了如何使用预定义的Wi-Fi连接参数以及OneNet API密钥来发送环境监测结果至云端服务器。