本帖最后由 王顺 于 2018-6-11 09:15 编辑
一、摘要 随着物联网时代的到来,智能物联逐步嵌入了人们的生活中,智能插座,智能电灯,智能门禁等一系列的物联网控制,让我们的生活变得多姿多彩,当智能物联遇上了鱼缸会擦出怎样火花呢!今天我为大家带来的一个智能作品“智能鱼缸”。 “鱼缸"又称 水族箱",而随着科技水平的不断进步,以及人们养殖观赏鱼和种植水草的水平的不断提高,水族箱不仅被认为是一个养动植物的容器,而且被认为是自然域的一个缩影,是一相对完备的生态系统。在早期,水族箱多用于展览馆、公园等大众化的场所供大家观赏,随着生活水平的提高,科技和水族养殖业的快速发展,水族箱已成为普通家庭的室内装饰。近年来,这种以水草、金鱼为主的水族箱被称作“水中微缩的鱼草园林”,深受人们的喜爱,但由于人们缺乏养护的技艺或者是由于时间原因不能及时进行养护,往往“好景不长“,最后的结局多是“草枯鱼亡"。 针对水族箱的养护问题,市场上也陆续出现了各种控制鱼缸水温、排水、充氧和照明的设备,如过滤器、加热器、加氧泵等改善水质的设备。但是由于产品繁多,功能不统一,而且大多是非智能化的、单一的恒温控制、充氧或是照明的系统。如果要组成一套完整的智能控制系统,往往需要人为的手工进行控制,而且功能使用不灵活、不方便,整体性能也无法得到提升。 目前随着各种各样的观赏鱼缸之类的工艺产品逐步进入了家庭,由于现有的观赏鱼缸水温监测、水循环、温度控制等操作都需要人为的手工进行控制,这给人们带来了很大的不便,本作品对目前大多数水族箱控制设备应用现状的分析和研究,提出了一种多功能的观赏鱼缸智能控制系统。该控制系统以单片机为控制核心,结合传感器技术,集多种控制功能于一体,包括恒温、照明、换水、水循环等,同时在系统中设计一个通信模块,可实现对鱼缸的远程控制和管理。整个系统分为两个部分:第一部分是以Arduino为核心的控制部分,实现对传感器信号提取,中移物联网OneNET平台下发数据的分析处理,并输出多路信号实现对鱼缸相应功能的实时控制,第二部分是以ESP8266为核心的透传数据部分,用于将Arduino处理传感数据和模块状态数据实时上传中移物联网OneNET平台,两部分之间以串口进行通讯,实现对鱼缸控制器的智能管理。 二、设计思路 作品主要包括了主控部分、输入部分、和云服务部分来构建了一个完整的设计模型。 主控部分:完成MCU下发的指令控制,包括换水开关,恒温开关,以及照明灯开等; 输入部分:是传感器的数据信息采集,感知鱼缸的一系列的环境数据变化; 云服务部分:用户界面,完成用户的指令下发,人机交互信息等; 三、所用材料 在你开始之前,需要准备万用表、电烙铁、焊锡、串口调试线、钳子、热水管、导线等备用耗材和器件,除此之外你还需要以下元器件,来保证你的计划顺利进行。 四、链路连接图
首先你要理解整个系统硬件连线图,如下图所示,在图没有标注地线连接线,红色线代表电源线,黄色的代表信号线,传感器数据引脚和控制器信号输入引脚的定义如下所示: D10 ----水温传感器 D6------恒温开关继电器 D11----DHT11数据接口 D7------三合一系统继电器 RX-----8266TX D8------照明开关继电器 TX-----8266RX D9------总开关 A0------光照数据接口 四、硬件制作过程 1、焊接前准备 在焊接洞洞板之前你需要准备足够的细导线用于走线。细导线分为单股的和多股的 单股硬导线可将其弯折成固定形状,剥皮之后还可以当作跳线使用;多股细导线质地 柔软,焊接后显得较为杂乱。洞洞板具有焊盘紧密等特点,这就要求我们的烙铁头有较高的精度,建议使用功率30瓦左右的尖头电烙铁。同样,焊锡丝也不能太粗,建议选择线径为0.5~0.6mm的。 2、硬件实物的焊接方法 对于元器件在洞洞板上的布局,大多数人习惯“顺藤摸瓜”,就是以芯片等关键器件为中心,其他元器件见缝插针的方法。这种方法是边焊接边规划,无序中体现着有序,效率较高。但由于初学者缺乏经验,所以不太适合用这种方法,初学者可以先在纸上做好初步的布局,然后用铅笔画到洞洞板正面(元件面),继而也可以将走线也规划出来,方便自己焊接。对于洞洞板的焊接方法,一般是利用前面提到的细导线进行飞线连接,飞线连接没有太大的技巧,但尽量做到水平和竖直走线,整洁清晰。洞洞板的焊接方法是很灵活的,因人而异,找到适合自己的方法即可。 3、继电器控制部分 本次我们采用了4路带光耦隔离的继电器模块,光耦隔离继电器使被隔离的两部分电路之间没有电的直接连接,主要是防止因有电的连接而引起的干扰,特别是低压的控制电路与外部高压电路之间。解决了220V水泵供电所导致给单片机的电气干扰。 4、灯光改造 灯光改造选用了高亮LED,设置在了鱼缸盖子的顶部,根据鱼缸的特殊物理位置,在后盖打眼作为LED等的入线口,在用扎带绑牢固,将控制线接于继电器。 5、水循环过滤器 将三合一水循环装置的开关控制线接于继电器控制端,过滤介质采用鱼缸专用的过滤棉,将棉剪切成大小刚好和过滤槽一样大的形状,装入四层,根据笔者的经验,选用活性炭作为过滤材料为最佳,具有净化水质,保持水质的清澈,吸附水中有害物质的作用,建议在1~2个月更会一次。
6、恒温器安装
恒温器在安装之前需要通电测试一下是否正常,将温度设置在适合鱼儿生长的规定温度范围之内,把恒温器控制开关接于控制继电器之上;安装时,尽量与三合一过滤器装在一个地方,采用皮碗吸附在鱼缸的缸壁之上,可空出最大空间来便于观赏鱼儿。
7、温度传感器
温度传感器采用了18B20作为温度的采集;如上图所示,安装在过滤器一旁,是常用的数字温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点, 测温范围 -55℃~+125℃,固有测温误差1℃。 8、硬件总设计 根据上面安装介绍,硬件安装算是基本介绍完成,读者可以很具实际的鱼缸外形和恰当的安装位置进行安装与布局,根据个人喜好,安装美观得体大方即可!
硬件电路总控制部分
五、物联网平台接入 1、OneNET平台介绍 OneNet平台是中国移动物联网公司推出的物联网解决方案平台,完善了协议的封装,简化了开发流程,让开发者专注于应用开发。目前支持大部分物联网协议,包括公网协议HTTP,MQTT,EDP等,还提供私有协议支持,方便开发者个人定制。通过官方的教程文档和社区的几个帖子入门了如何通过OneNet创建产品,添加设备,发布应用等,个人感觉平台做的不错,入门容易。因为官方开放了各个协议的API,自己首先了解练习了下HTTP协议。通过Fiddler这款网页调试工具,可以很方便的验证API和熟悉报文格式。 2,、OneNET平台的接入 1、用户接入OneNET平台,首先在OneNET平台上进行注册,创建设备等一些列准备工作,然后要通过网络和OneNET服务器建立EDP连接,最后将数据按照一定的协议打包上传到OneNET平台,从而实现设备端接入。在接入OneNET官方网站之前,需要在平台注册账号,登录网址:https://open.iot.10086.cn/ ,显示如下: 点击界面的右上角“注册”进入注册界面: 注册完毕并登录后,进入“开发者中心”,在界面右上角点击“创建产品”:
进入如下界面,填写相应的产品名称,所属行业,产品类别等相关信息, 在创建产品选项的最后几项值得注意一下,“设备接入方式”选择“公开协议”,“联网方式”选择“WiFi”,“模组选择”“安信可ESP8266-XX系列”,设备接入协议选择EDP协议,然后再点击确定后弹窗口,点击接入设备, 根据接入设备填写接入设备的名称,鉴权信息,数据保密性设置为公开。 弹出如下界面:
点击“智能鱼缸”创建独一应用“鱼缸监控管理”, 在弹出的界面右上角中选中“编辑”按钮 在编辑框中选择编辑按钮、树状图,仪表盘等来创建应用编辑。
3、平台下发指令当点击平台按钮开关,对应的下位机接收端(鱼缸控制系统)将接受到由平台下发的命令,此指令在应用编辑窗口右旁中有相应按钮下发指令数据设置如下图所示 产品创建的过程中有些数据需要特别记住,使用API的过程中需要用到。一个是产品ID,OneNet可以创建多个产品,产品也就是一个项目,产品ID是唯一的。第二个是API Key,相当于访问OneNet平台的授权钥匙,有此才嫩访问你自己的产品,进行开发。再说设备ID,每个产品下都有设备,设备可以有多个,但每个设备号都是唯一的,设备也就是实体的终端。手动添加设备的方式很繁琐,如果有多个设备,可以通过设备注册码这个东西来动态创建设备。
4、OneNet数据上传(EDP协议) 为了方便大家使用Ardiuno接入OneNET设备云平台,笔者找到了接入OneNET的设备EDP协议的官方例程,读者可去https://open.iot.10086.cn/bbs/thread-505-1-1.html下载,官方提供了各种开发板的相关例程,可供大家开发和研究。 当我们下载相应的程序例子过后,官方给出了arduino开发板数据接入平台gprs和wifi两种接入的方式,本次用到的是WiFi数据传输,在WiFi数据传输中又分为HTTP和EDP接入协议,选择EDP文件夹打开,值得注意的是例子中的.ino文件不能直接打开,需要将开发环境打开后,在环境中打开例子程序,这样程序例子中带的edp.c文件就一起打开了。在修改程序时才不会出错,笔者深有体会。 打开过后出现如下界面: 在点击编译,编译通过说明例子程序打开正常。 六、软件调试 第一步:修改接入平台ID和KEY 完成上面的硬件制作和平台接入过后,我们正式进入软件调试部分。当打开官方提供的arduino例程后,我们需要做如下修改: KEY改成自己的接入平台的KEY,ID改成自己设备的ID,可在平台一下界面中查自己的KEY和ID数据。 第二步:修改接入网路WiFi 本次数据上传平台的传输方式采用了WiFi接入,我们需要在程序中作出如下修改, while(!doCmdOk("AT+CWJAP=\"WiFi名称\",\"WiFi密码\"", "OK"));//修改成自己的WiFi名和接入密码。 第四步:添加传感器 在添加传感器我们采用了独立函数,每个传感器都采用单独的函数处理传感器数据,然后再把数据返回。在读取室外温湿度DHT11数据的时候,采用了DHT11库,在数据读取体现出了简单快捷, 读取温度数据和湿度数据。 鱼缸水中温度采用了18B20来提取温度数据,采用提供的18B20库,使传感器数据读取简单化。 水温温度数据读取 光照数据读取 第5步,数据上传OneNET平台。 在所有传感器数据读取完毕后,需要将数据上传到数据上传OneNET平台,实现代码如下所示: 第六步:平台下发指令控制 在OneNET平台上,我们编辑了对的按钮,每一个对应的按钮都有相应的命令值,控制下位机对应的设备。如下图所示: 当下位机和平台建立连接后,下位机不断的接收平台的实时状态,当平台点击开关按钮后,下位机收到对应命令处理如下:file:///C:/Users/MRF897~1.WAN/AppData/Local/Temp/msohtmlclip1/01/clip_image075.jpgfile:///C:/Users/MRF897~1.WAN/AppData/Local/Temp/msohtmlclip1/01/clip_image073.jpg 第七步:上传代码,建立连接
最后编译代码下载到单片机中,在通过串口助手查看连接状态,在最后的调试阶段会出现很多的问题,例如平台连接不成功,WiFi连接出问题,下发指令接收不到等,都属于正常现象,所以读者要就具备一个持之以恒的心,不要轻易放弃,成功就在眼前。值得注意的是,在成功建立连接后,平台下发数据大概有4S左右的延时,所以不要不停点击控制按钮,以免数据在传输中出现连接中断问题。本作品源码开源在了arduino中文社区,http://www.arduino.cn/thread-48829-1-1.html,和物联网OneNET平台社区,https://open.iot.10086.cn/bbs/thread-6701-1-2.html如有问题可供搭建参考。 感谢我们进入了物联网大时代,创客们无私的开源精神,物联网平台的技术支持,让我可以自己动手制作,自己实现创意,在物联网时代大环境下,科技、智能设备接近了我们每一个人的生活,让我们借助每一个物联网平台激发自己的想象,实现自己的创意,开拓自己的作品,解决生活中的现实问题,如今物联网不在是一个简简单单的概念,他存在每一个创客的心中,给我们生活带来越来越多的惊喜,在此我感谢所有的无私奉献的创客们。
团队名称:幽灵 团队口号:实力加自信就是一个坚韧不可摧的团队。 团队成员:王顺 万大圣 朱志科 鄢攀 团队简介: 我们都知道团队应该是Team,而不是Group,也就是说团队不仅仅是一群人的简单的组合,而一定是不同成员有分工、有协同,是一个有机的整体,这个就叫做协同合作、相互支持。团队成员根据工作需要,根据个人特长,合理分工,有效协同,一起把事情做好。团队成员之间协同合作、互相支持,就是要使1+1>2,并且不断改进提高,使效能(效率+效果)达到最大化,1+1能不能=3,能不能=4,甚至更大,就看我们在团队的工作中如何更有效的协作和互相支持,这需要不断的训练。 我们的团队成员,王顺、万大圣等,他们都来自物联网工程,其所涉及的专业知识面很广泛。诸如:模拟电子技术、数字电子技术、通信原理、物联网概论、C语言、单片机应用与编程、PCB电路板绘制、多媒体技术、微信开发、CAD绘图等,通过我们的辛勤劳动,做事认真负责,思虑周详,良好的团队凝聚力和向心力。“相对分工,绝对合作”,取长补短,共同完成项目作品。
视频文件链接
http://v.youku.com/v_show/id_XMzExODc0NzE2NA==.html?spm=a2h3j.8428770.3416059.1
发布链接
https://open.iot.10086.cn/appview/p/2bcc6a2d8a5603d890e71e8d2f4d8ec3
https://open.iot.10086.cn/app/browse2?pid=89535&id=18994&is_model=0
源码
1223.rar
(26.92 KB, 下载次数: 152)
附加图片部分
|