分享

Arduino DUE+MSP430自制室外空气探测+热水器控制+网络电能表

 开启美好每一天 2015-11-13
起初做这个项目的念头在2013年3月,当时觉得北京的空气实在是太差了,需要做一个设备放在窗外做实时提醒用,所以就用饭盒+MSP430打造了一个室外空气探测器,后来又发现物联网网站不错,可以把数据上传到物联网上,于是饭盒加上了蓝牙,用PC来上传数据。5月份的时候感觉PC整天开着太费电了,于是想用Arduino来完成上传的功能,于是把无线链接换成了NRF24L01。6月突发奇想,想给家里省点电,于是在家中的电热水器上加上了MSP430做的另一个节点,7月参加了乐联网的网络电表计划,于是整套系统里面有了第三个节点。

下面是盒子的功能介绍:

裸板是一片MSP430的转接板+洞洞板,板上有一片MSP430+SPI Flash用作数据存储
有一片RTC时钟用于记录时间,还有一颗电池,和JTAG调试口。


颗粒物监测器初期使用的是DSM501和DDP42NS,后来感觉这两颗不够稳定,数据也不太精确,然后换成了日货……
Sharp的gp2y1010au。夏普这颗电路控制比较复杂,但精度确实不错,而且很省电。
下图是早起用的DSM501的版本
1363612385.9286.jpg

因为空气探测器是放在室外的,为了整体防泼水,所以用了乐扣乐扣的饭盒,工作半年以来抗大雨无数,完全没问题。
1363851415.8501.jpg
但是密闭和检测空气颗粒物是矛盾的,所以在盒子的隐蔽处有进风口和出风口,有一颗微小的风扇来提供空气流
这颗风扇真的很小,而且只有5V 22mA的耗电。
1363612369.073.jpg

这是传感器组,温湿度传感器是DHT22,环境光传感器是BH1750FVI,大气压力和温度传感器是BMP085
GPS是SIRF3貌似。电池是一颗3700mah的锂电,板上自带1A的3段充电电路
1363851422.0102.jpg

最早做项目的时候曾经想过用PC和Android手机来提交数据,所以还写了PC和安卓的客户端app
1366364420.0399.png
1366364429.5894.png

下面是热水器模组的介绍:
模组是安装在热水器里面的,海尔电热水器的侧面板很好拆,于是就直接装在泡沫里面了。
此控制器装有一个NRF24无线通信模块,另外有一只DS18B20温度传感器粘在金属内胆上面读取温度(数据有一定迟滞)
单片机有一根GPIO接在热水器的开关按键上面,所有的过热保护措置还由热水器自身实现,模块只控制开关
9c372813jw1e63r474sthj21kw23u4qp.jpg
9c372813jw1e5a67ak6b7j218g0xc792.jpg

下面是电能表模块的介绍:
模块是乐联网团购的,能测量功率因数,电压,电流,总功率,总耗电等……
外部通信板还是MSP430+NRF24,并且还有一颗DS18B20用来读取电表箱外侧的温度
9c372813jw1e6t822ncg7j20xc18gtf2.jpg
9c372813jw1e6t823eq1fj20xc18gjua.jpg
9c372813jw1e6rzc26g2cj20xc18ggr1.jpg

下面是Arduino主控的介绍:
买过多块Arduino,最初是Leonardo,但是写着写着发现存储空间不够了,后来换了MEGA2560,
代码空间够了,但发现运行不稳定,大概4-5个小时就会自动重启,又入了DUE,发现每隔20多小时还是自动重启……
无奈了于是作罢。
主控带有:1、红外感应器,用于检测家中人的活动状况,然后自动控制热水器水温
2、DHT22,检测家中温湿度
3、光照度感应器,检测家中光照
4、带有一只EEPROM,用来存储一些掉电可能会丢的数据(因为总是20多个小时就莫名重启了)
9c372813jw1e5wy6u6adyj20xc18gwio.jpg
9c372813jw1e5wplhxug4j20qo0zktd7.jpg
9c372813jw1e6q4cqij3jj20xc18gtfs.jpg
9c372813jw1e6t821hllbj20xc18gtg1.jpg
9c372813jw1e6t8207ijgj20xc18gq9l.jpg

由于arduino可以跑多段代码,同时上传数据到yeelink和乐联网,所以两边网站上都可以查询数据

乐联网的网关地址:
http://www./u/g/1106

yeelink的网关地址:
http://www./devices/4096
http://www./devices/2109
http://www./devices/3482


附档还有所有程序的源码,因为是个人兴趣项目,本人也不是专业软件工程师(其实是硬件工程师啦)
所以基本都没怎么写注释…… 各位凑合着看啦
所有的pin定义都在各工程的pinmap.h里面
所有的全局变量和全局函数都在variabledefine.h里面
工程请用IAR Embedded Workshop for MSP430打开

Arduino的工程说明:
HomeController.ino是变量声明和初始化函数
HTTPServer.ino是HTTP Server的主要工程,提供了web界面来查看各传感器参数
LeWei50.ino是乐联网的提交模块
Misc.ino是一些杂七杂八的东东
NetProtocol.ino是NRF24L01各节点中间的通信协议解析,我比较偷懒,没弄什么自动组网之类的,各节点编号都是写死的
NRF24L01.ino是NRF24的功能函数
NTPClient.ino是NTP时间校准,负责从NTP Server取回当前时间
Sensors.ino是所有Arduino板上的传感器函数
SubmitData.ino是yeelink的提交函数,以及去各节点的定时读取函数
YeeLight.ino里面是yeelight的控制函数,根据人的活动以及热水器水温来控制yeelight当个小夜灯

1363392271.9115.jpg (419.27 KB, 下载次数: 5)

1363392271.9115.jpg


1363612360.8027.jpg (275.88 KB, 下载次数: 4)

1363612360.8027.jpg


1363612375.2532.jpg (286.05 KB, 下载次数: 4)

1363612375.2532.jpg

ArduinoCode_HomeController.rar

19.42 KB, 下载次数: 131

Arduino主控代码

AirChecker.rar

246.48 KB, 下载次数: 99

MSP430空气探测器工程

HeaterController.rar

157.12 KB, 下载次数: 67

MSP430热水器控制工程

PowerMeter.rar

175.96 KB, 下载次数: 83

MSP430网络电能表控制工程

mq135.pdf

202.61 KB, 下载次数: 66

空气质量传感器datasheet

BH1750FVI.pdf

386.29 KB, 下载次数: 54

光线传感器datasheet

BMX-02&03_spec 蓝牙模块.pdf

344.17 KB, 下载次数: 59

蓝牙模块DS

BMP085.pdf

822.98 KB, 下载次数: 49

气压传感器DS

CE8301.pdf

421.79 KB, 下载次数: 48

饭盒的5V升压器DS

nRF24L01P.PDF

1.08 MB, 下载次数: 65

NRF24无线通信模块的DS

DHT22.pdf

677.79 KB, 下载次数: 68

温湿度传感器DHT22资料

DALAS DS1302.pdf

561.99 KB, 下载次数: 41

DS18B20温度传感器DS

gp2y1010au_e.pdf

154.92 KB, 下载次数: 74

夏普颗粒物传感器DS

PPD42NS.pdf

376.94 KB, 下载次数: 57

PPD42NS颗粒物传感器DS

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多