本帖最后由 ichenqiang 于 2015-1-20 21:04 编辑
目的: 寝室处在一楼的阴面,更伤心的是窗外还有棵大树,导致寝室长期日晒不足,感觉很潮,但是没有数据能够说明,因而准备DIY一个简易环境监测器。
设计思路:考虑实际,准备实现温度,湿度,气压,光照度四个数据的采集和显示。温湿度,使用比较多的器件就是DHT11,但是考虑到DHT11那蛋疼的精度,决定使用DHT22。气压因为只是看看,不需要太精确的数据,因而选用了BMP180。ps:通过观察气压的变化情况是可以大概估计天气变化的。光照度采用BH1750,价格和谐,性能够用。 对于显示,由于气压,光照度都是I2C通信,因此选择想玩了很久的OLED,两根总线搞定3个器件,减少接线。开发环境,虽说手里有stm32f3discovery,但是没有利用起来,导致对stm32的开发还是一窍不通,既然是为MBED设计的板子就采用MBED了,类似arduino的开发方式,简单易上手。
进度1:由于没使用过mbed,拿到板子首先就是熟悉一下mbed编程,打开网站,进编译器,随便找个例程,看看mbed的class说明就好了。然后正式开始功能的第一步实现:OLED显示的驱动。使用mbed开发可以使用别人写好的库文件,但是不是所有的库都能通用,因为设计的功能不同,可能会对硬件有一定要求,最后寻找了一个简单够用的库进行修改,实现了显示bmp图片,显示8*8英文字符,16*16中文字符的功能。tips:mbed上面的资源几乎都是国外的,英文版的或者日文版,因为在显示驱动上面,都是没有中文的,因而显示中文是需要自己写的,功能实际上很简单,随便找个其他版本的oled驱动文件,改下X,Y定位数据和函数定义就行。
历时一晚上,oled成功点亮,并且大概设计了下显示界面。具体效果看图。ps:渣手机,拍出来的效果很差还有显示问题,实际显示效果是很好的,没有问题的。
如果有兴趣的或者有需要的可以试试,文件分享:
Nucleo_OLED.zip
(3.61 KB)
,文件是mbed上面可以直接使用的,直接导入就行。如果想使用mdk或者iar开发,还是请你导入mbed然后再导出相应的文件。
|