完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
基于STM32F103C8T6最小开发板设计的户外环境监测系统(运用了DHT11模块,GY-30数字光照模块,低电平触发蜂鸣器,OLED显示)
这个户外监测系统自己还在完善,在这个上传给onenet中移物联网上传出现一点小问题,不过上传数据还是不是很稳定,所以目前个人发表的是自己实现在周遭环境监测系统的1.0版本。后续还会发表自己的升级版,敬请期待吧! 首[在这里插入图片描述是我们这个系统运行的载体是STM32F103C8T6 然后就是大家比较熟知的传感器模块: (1):温湿度传感器 这个传感器运行是需要经过两次的上拉电平,才能实现将AD转换成数据转发传输,想要更加深入理解这个传感器的原理可以这个大佬学习-(我也是看这个的) static void DHT11_Rst(void) { GPIO_SETOUT(); //配置成输出模式 GPIO_ResetBits(DHT11_IO,DHT11_PIN); //拉低数据线 delay_ms(20); //拉低至少18ms GPIO_SetBits(DHT11_IO,DHT11_PIN); //拉高数据线 delay_us(30); //主机拉高20~40us GPIO_ResetBits(DHT11_IO,DHT11_PIN); } 这是启动让DHT11可是进行数据传输。(后面我把代码打个包) 这里是接线安排 [tr]OUT管脚接最小系统板的PB11管脚[/tr] 这个代码实现的逻辑是由下图 | [tr]GPIO配置配置使能,管脚配置为PB56[/tr]
管脚插线方法: [tr]GND、ADDGND[/tr]
我用的OLED代码是正点原子的,通过这个实验例程移植到我这边的代码上。当然为了更好的实现我自己也改了一些内容: void OLED_Show(u8 temp,u8 humi,u8 Light) { OLED_ShowString(35,2, ":",16);//显示温度中文 OLED_ShowCHinese(0,4,10); OLED_ShowCHinese(17,4,11); OLED_ShowString(35,4, ":",16);//显示湿度中文 OLED_ShowCHinese(0,6,12); OLED_ShowCHinese(17,6,13); OLED_ShowString(35,6, ":",16);//显示光照中文 OLED_ShowNum(45,2,temp,3,16);//显示温度 OLED_ShowNum(45,4,humi,3,16);//显示湿度的码值 OLED_ShowNum(45,6,Light,3,16);//显示湿度的码值 delay_ms(10); } 这是我自己修改的地方,为了代码的客观性,将冗余的代码用函数的形式实现。 接线设置: [tr]SDAPA7[/tr]
遇到的问题总结 一个是运行总线IIC上面的知识,自己运用的不是很熟练,同时在将这些代码初始时,整体的客观性不强,现在改过来啦。 |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9057 浏览 16 评论
4086 浏览 18 评论
1175浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 11:03 , Processed in 1.181895 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号