2016年7月至8月下旬,笔者正逢大一暑假,和两个大二的师兄一起参加了这个比赛。比赛作品中,笔者主要负责整个系统的硬件部分,软件部分负责WIFI部分和部分传感器处理,约占程序的50%。而我的队友之一黄师兄负责了SIM800模块的GSM和GPRS部分,还有传感器处理的算法部分。另外一个队友张师兄主要负责答辩和后勤支持。可以说,我们三个缺一不可,各自付出了努力才有了成绩。

现在笔者读大三,比较有时间便分享一下这段经历,下面主要讲整个系统的设计和之后完善方向。

        首先是解题思路:我们查看了官网上有关这次比赛健康电子专题的资料,资料上提出希望参赛者结合互联网+、物联网技术,设计一个关于健康电子的作品。于是,我们便有了这个想法,通过无线方式上传数据至云端,监测、上传一些危害人体健康的数据,并可以实时看到数据且通过控制减少危害,这完全切合题意。


        系统实现的功能:集云端监测、自动化控制(闭环)、远程控制(开环)于一体,运用WIFI和GPRS技术,将水质指标数据上传至云端(OneNet物联网云服务平台),当水质指标值超过设定值时,系统向用户发送手机信息和控制水质处理设备,改善水质的质量。

详细介绍:该系统通过传感器检测水体中的水温、水浊度、PH值以及外界的光照强度。经过单片机(arduino)的处理,系统将传感器的数值转换为对应的水体指标数值,经过按键选择WIFI和GPRS传输模式,将数据上传至ONENET平台。用户可通过电脑网页或手机APP查看数据和控制水质处理设备。当水质指标超过设定值时,系统向用户发送手机信息和控制水质处理设备,改善水质的养殖质量。

采用的方案:

该系统采用WIFI和GPRS相互结合进行传感器数据的传输,通过ONENET平台进行数据的上传。


功能框图:



硬件:

单片机:arduino mega2560  

传感器: DS18b20 、PH计、浑浊度传感器、光照传感器

模块:ESP8266、 SIM800、继电器


主程序框图:



部分程序框图:






部分源代码:

String ssid = "PUSHPULL";//需要连接的自己路由器的无线名称
String pass = "888******"; //无线密码

#define OneNetAPIKEY "pmWLtnkDBSreKfvg7GsClUXdXa4A''  //ONENET的APIkey
#define OneNetDeviceID 79146   //设备ID号
#define OneNetSensorID0 "TEMP"  //数据流名称
#define OneNetSensorID1 "HUMI"

WIFI wifi;

void setup() {
wifi.begin(ssid,pass);//设置wifi连接 
}

void loop() {
//读取温湿度传感器值,经过这个函数后,myDHT11.TEM_Buffer_Int和myDHT11.HUMI_Buffer_Int被分别填充上了温度和湿度值
myDHT11.DHT11_Read();
//将数据上传到ONENET对应的设备和传感器
wifi.postDataToOneNet(OneNetAPIKEY,OneNetDeviceID,OneNetSensorID0,myDHT11.TEM_Buffer_Int);
delay(1000);
wifi.postDataToOneNet(OneNetAPIKEY,OneNetDeviceID,OneNetSensorID1,myDHT11.HUMI_Buffer_Int);
delay(1000);
}  
//该代码例程是一位arduino开发者写的,底层函数打包在一个arduino的CPP库中,WIFI传输数据全是基于这个代码。


//以下是GPRS上传数据的函数,我们团队编写的。

void  postGSMdatatoOneNet(String APIKEY1,unsigned long device_id,String sensor_id,float thisData){
Serial.println("AT+CIPSTART=\"TCP\",\"api.heclouds.com\",80");  //修改为要发送给的IP和端口
        delay(3000);
        Serial.println("AT+CIPSEND");    //设置发送模式
        delay(100);
        time = millis();      //返回当前CPU时间
        String cmd;  

//以下按照ONENET通信协议,发送字符串
        cmd = "POST http://api.heclouds.com/devices/";  
cmd += String(device_id);
cmd += "/datapoints HTTP/1.1\r\n";
cmd += "Host: ";
cmd += "api.heclouds.com"; 
cmd += "\r\n";
cmd += "api-key: ";
cmd +=  APIKEY1;
cmd += "\r\n";
cmd += "Connection: close";
cmd += "\r\n";
cmd += "Content-Length: ";

String thisData1=String(thisData);
int length = 53 + sensor_id.length() + thisData1.length();  //算出长度
cmd += String(length);
cmd += "\r\n\r\n";
cmd += "{\"datastreams\":[{\"id\":\"";
cmd += sensor_id;
cmd += "\",\"datapoints\":[{\"value\":";
cmd += String(thisData);
cmd += "}]}]}";
cmd += "\r\n\r\n\r\n\r\n";
         Serial.print(cmd);
         delay(200);
         Serial.write(26);
         delay(500);
         Serial.println("AT+CIPCLOSE");   //传输关闭
         delay(200);
}


传感器方面不是我们想体现的主要功能,在有库函数的情况下,arduino中传感器程序比较简单,我们只是将数据做了一些滤波和转换,在这里就不贴出来了。


作品图片:

网页版



手机APP



比赛作品



附:ONENET网址:https://open.iot.10086.cn/?utm_source=baidu&utm_campaign=%E5%93%81%E7%89%8C&utm_adgroup=onenet-%E6%A0%B8%E5%BF%83&utm_term=onenet&utm_medium=search_cpc

(可以注册账号和下载app,用户免费使用其云端)

该版本的不足:

由于当时水平不够,所以用了编程相对比较简单的arduino,arduino开发周期虽然短,但是局限性也比较大,如果要做深入的应用开发,还是要用其他单片机,比如STM32等。

完善方向:


该系统可以将单片机换成STM32,芯片为F103RCT6,比完赛后笔者在ONENET官方群上申请了这样的一块板,可以做后期的应用开发。除了使用WIFI,GPRS这些无线方式,近年来比较火的NB-iot也是一个很好的方向。此外,应用场景很广泛,各种监测都能使用,如果个人使用,ONENET已经足够了;企业使用的话,可以开发企业专属云端和配套的网站、APP。


下期预告:

下回笔者会将这次比赛相关资料整理下,上传到百度云盘,方便大家学习。同时,笔者在寒假开发ONENET申请的麒麟板,尝试做出V2.0版本,有新的进展再更新博客。如果大家有更多更好的方案解决,或者有好的模块介绍,可以联系本人QQ23154762。笔者大一下学期开始接触电子,大一大二主要玩无线传输比较多,目前大三方向为嵌入式自动化控制,主要研究四旋翼和平衡车。笔者小白,第一次发博客,如有哪里错误,希望大家海涵并指出。

2016年广东省电子设计大赛健康电子专题——健康养殖远程监控系统(环境监控系统V1.0版本)相关推荐

  1. 电子设计大赛计算机,【计算机设计大赛】电子设计类决赛圆满落幕

    原标题:[计算机设计大赛]电子设计类决赛圆满落幕 四川旅游学院2017年大学生计算机设计大赛电子设计类决赛圆满落幕 为体现学生的创新能力,提高我院学生对数电建模以及电力电子技术.变流技术等方面的了解, ...

  2. 计算机设计大赛国赛可以换队员,关于遴选2016年中国计算机设计大赛国赛评委候选人的通知...

    各学院: 根据国家有关高等学校创新能力提升计划.进一步深化高校教学改革.全面提高教学质量的精神,切实提高计算机教学质量,激励大学生学习计算机知识.技术.技能的兴趣和潜能,培养其创新创业能力及团队合作意 ...

  3. 【N32G457设计大赛】《基于N32G457的远程环境监测报警系统》

    RT-thread-WCH-N32G457 介绍 超越自我,突破边界,创新"芯"引擎,RT-Thread与国民技术联手推出N32G457 RT-Thread设计大赛工程. 作品简介 ...

  4. 【电子签到】v1.0版本正式上线!免费下载!

    由于上一个版本没有完善就是匆匆发布,后来也造成一些不方便,这次小猿带着V1.0版的电子签到来了!经过一些朋友与用户的建议和意见,我做了大量的修改,从而大大提高了签到效率.本款软件使用PHP+mysql ...

  5. 备战2020年大学生电子设计大赛

    备战2020年大学生电子设计大赛 首先,我们了解什么是电子设计大赛. 电子设计大赛它不是单纯的设计理论大赛,也不是实验竞赛,而是在一个半封闭,相对集中的环境中,在有限定的时间内,由一个队共同设计,制作 ...

  6. 计算机院徽设计大赛,2017年院徽设计大赛活动策划方案(800字)

    JE范文为您整理.编辑<2017年院徽设计大赛活动策划方案(800字)>一文,为了您更好完成一篇精彩的范文,JE范文还为你准备与<2017年院徽设计大赛活动策划方案(800字)> ...

  7. 第四届立创电子设计大赛开幕!

    30万+大赛丰厚奖金池.知名创投机构投资意向.名企名校资深评委指导.定向/自由主题任意选!5月30日-9月22日火热报名中! 立创商城简介 立创商城( WWW.SZLCSC.COM)成立于2011年, ...

  8. 电子设计大赛作品_赛事“暨”忆录|重大比赛介绍第二期——电子设计大赛省赛比赛介绍...

    赛 事 暨 忆 录 电子设计大赛省赛 电子工程系竞赛系列报道 比 赛 时 间 与 命 题 报  名  时  间 电子设计大赛省赛每年的具体报名时间可能有所变化,但一般都在三月份到五月份左右,作品的审评 ...

  9. 第七届科技节电子设计大赛须知

    一.背景意义 云南大学信息学院主要是以电子信息方向科学知识教学与研究的理工科学院,电子设计正是对同学们所学的基础理论知识与实际应用相结合一项活动. 全国大学生电子设计竞赛是教育部倡导的大学生学科竞赛之 ...

最新文章

  1. linux脚本退出状态,Shell退出状态的使用
  2. CV多任务学习笔记 yolop
  3. Oracle数据库备份与还原命令
  4. 把文本以图片的形式保存
  5. ScrollView以及TextView和对应链接
  6. 面试题: 看下面的程序是否有问题 如果有问题请指出 并说明 (关于数据类型-隐性转换的小陷阱)
  7. 918国际导航网V4.2版整站源码
  8. Vue ---- 指令
  9. java懒汉,[Java教程]java 懒汉式
  10. 30岁的我们,生活数据有了哪些改变
  11. 美国人太嚣张(爆笑呀!)
  12. 金万维怎么使用远程服务器,远程桌面如何设置?
  13. java分页数据再次进行分页操作
  14. android启动序列帧动画,关于 Lottie 动画的说明及应用
  15. 关于100层楼,扔两个鸡蛋,求摔碎鸡蛋的临界层的问题
  16. 【机器视觉】Halcon 19安装教程详解
  17. Opencv 笔记7 凸包算法-Graham扫描法
  18. jQuery播放音乐
  19. 盘点我用过的导出Excel的方法
  20. php发送指令给易语言,易语言发送信息代码数字指令编程整理

热门文章

  1. 二维数组最大连通子数组之和
  2. 在win7下安装VC6.0
  3. java 实现数据结构之队列
  4. Static静态---笔记A
  5. 详解Windows 搭建MRTG流量检控服务器
  6. 网络工程师考试2005年上半年下午试题解析(二)
  7. js的正则表达,只允许数字和特殊
  8. varnish构建高速缓存
  9. 【ANDROID游戏开发之六】在SURFACEVIEW中添加系统控件,并且相互交互数据!
  10. 基础C语言 学习总结3