话说人生需要一次说走就走的旅行,对于一个技术宅当然有一种想做就做的冲动。。。
一个意外的制作,纯属意外,想到哪做到哪。
前奏。。。
之前学arduino时买了一大堆模块,不知道玩些什么。
以前买了一款串口彩屏,无聊拿起玩,发现这彩屏设计的非常人性化,特别好用(不是打广告,谁用谁知道)。
做点什么呢,发现之前在本论坛发过一个基于51单片机的ds1302时钟
http://bbs.mydigit.cn/read.php?tid=752467,ds1302误差比较大,早就放一边吃灰去了。刚好手里有几个ds3231时钟模块,这个芯片走时非常准确,记得当时有意测试了一个周,误差一秒不差(和电脑的时间对比)。
来吧,那就来个骚骚的彩屏时钟(依然觉得闹钟的功能实在多余,在这就不添加闹钟的功能了),先构思一下。
1.年月日周时分秒显示。
把这些信息用彩屏显示出来。哇,就是骚骚的感觉,比单色液晶屏强太多了!!!但是发现问题了,把这些时间信息显示出来后,感觉彩屏还有很多地方空着,不爽!!!再加点什么呢?温度显示?(ds3231自带温度检测,但是64秒更新一次,分辨率0.25度)。这样屏幕上的内容就丰富一点了,但是我感觉64秒的更新周期太慢。于是:
2.增加温湿度传感器。
手里刚好有dht11,sht10温湿度传感器,后者精度比较高,但成本也比较高,选用dht11吧,检测个温湿度信息也够用了。把这些时间温湿度信息显示出来后,感觉彩屏还有很多地方空着,不爽!!!再加点什么呢?室外温湿度信息采集,YES,就是它!于是:
3.增加室外温湿度采集。
好好思考一下,既然是室外温湿度采集,那么这个通信和供电都是问题。1.扯电线?忽然觉得蛋疼,要是扯电线的话,这个室外温湿度采集的功能宁可舍去。2.无线?必须的,手里有两种无线透传模块,一种是普通透传,一种是透传带唤醒功能(APC240)。唤醒?这个功能又让我想到点什么,室外单片机始终处于休眠的功能,当主机需要获取室外温湿度信息的时候,唤醒然后发送检测到的温湿度信息,这样比较省电。不错,这个可以有!问题又来了,供电怎么解决呢?现在是冬天,首先要考虑电池的工作环境温度(我们这最冷的时候有零下20-30度)。尼玛,赶紧查下单片机、sht10能不能受得了,还好都么问题。嗯,可以用蓄电池供电。 于是:
枯燥的码代码开始了,大部分功能调试完毕后,由于时间的关系断断续续写了大半个月。
在写代码的过程中,又添加了以下功能:(具体的灵感,就不一一列出了)
1.多级菜单显示。包含(时间设定,采集频率设置,关于)
2.可调节采集室外温湿度频率0-99分钟
3.室外采集温湿度的电路添加太阳能充电功能
4.主机获取温湿度信息时,同时获取电池电压以及太阳能电池电压,方便了解室外设备的工作状态
然后测试一下稳定性,简单的把各个模块用杜邦线连接起来。由于手里没有现成的蓄电池,就随便找了节18650直接接到室外温湿度采集的电路中,扔到窗户外面测试一下(每5分钟获取一次,无线模块发射功率开到最大,10mw)。这都已经下午7点了,简单的测量一下18650的电压是3.81v,第二天早上10点起来发现室外温度是-15度。心里纳闷了,这锂电池还能工作?测了下电压,嚯,电压3.79v。这意外有点突然了,转念一想直接18650供电完事,手里的太阳能电池是5.5v的充电也方便。但是还不放心,一直把这18650供电电路仍在窗户外面测试了一周,发现是么问题的。
由于pro mini(单片机自带AD),是以供电电源作为基准的,锂电池在充电和不充电时电压始终是变化的,不能直接给电路供电,供电电源的不稳定会影响AD采集电池电压以及太阳能电池电压。所以,上了片HT7533,低压差稳压芯片,给整机提供3.3v的电源。
好了,前奏就先到这吧。 光说不练假把式,光练不说傻把式。。。。
测试过程。。。
开机界面,怎么忽然看到这画面觉得自己好可怜纳。。。。
正常显示,是不是骚骚的感觉。。。。
这菜单看起来还可以吧!还有小图标
时间设定,带图标的,
由主机主动获取,0-99分钟采集频率设置,直接写入单片机eeprom,掉电保存。
关于。。。。
主机测试中。。。
室外采集电路搭建完毕。。。
冻一下。。。
焊接室外采集电路
室外采集电路全家福
万用表测试电池电压与单片机检测的电压进行比较,相差0.004v,这点小误差。朕,准了。。。
万用表测试太阳能电压与单片机检测的电压进行比较,还行吧,看不出来误差。。。
楼下继续: