完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最终要实现的功能:
1、STM32采集温湿度通过串口1发送至AIR800,然后通过AIR800将温湿度上传至阿里云 2、阿里云物联网云平台下发命令通过AIR800控制STM32的LED亮灭(打开或关闭功能,或者定时 自动打开和自动关闭) 3、通过nrf24l01实现点对点通信,阿里云下发数据至air800,STM32(A)串口2接收数据之后进行判断,如果需要控制另一个STM32的LED灯,则会将数据发送至另外一个STM32(B),STM32(B)通过数据判断执行相应的功能 此模块主要功能:在串口实验基础上添加OLED显示温湿度 一、实现程序移植 1、我是在正点原子实验程序上进行移植和修改的 首先在HARDWARE文件夹新建DHT11和OLED两个文件件,里面存放的是对应的C文件和H文件,去例程中找来如果引脚不合适在程序中进行修改即可, 如果修改DHT11引脚切记不要只修改引脚,还需要修改其他的,我修改时一脸懵逼,看了一个博客介绍的方法之后才修改正确, https://blog.csdn.net/book_drabit/article/details/84847318 2、将添加的DHT11和OLED的C文件添加到工作组中 3、这是大多数人容易忘记的一步,配置路径 如果不配置路径,必然会报错的,把两个文件夹的路径添加进来即可,如果没有新建文件夹分别存放,而是都放在了同一个文件夹中,添加路径时添加存放C文件和H文件的路径即可 4、可以看到,在工程位置已经把两个文件添加进来了 5、在主函数文件中调用两个头文件,虽然是报错的,但是实际上没错,是编译器的问题 6、初始化 切记千万不要忘了对OLED和DHT1初始化,否则不管怎么写都是没用的,有很多人也是这里除了问题,检查来检查去居然是忘了初始化 7、在主函数中添加DHT11和OLED显示部分代码 DHT11代码部分我用的 是老师上课发的一部分程序,数据处理部分直接拿过来用了,没有再去自己写,正点原子中例程的方法也是一样的,也是处理好的,修改一下即可直接使用 //这是添加的DHT11部分代码(在oled进行显示温湿度) if( Read_DHT11(&DHT11_Data)==SUCCESS) { printf("temp %d hum %d",DHT11_Data.temp_int,DHT11_Data.humi_int); delay_ms(1000); delay_ms(1000); hh1='0';hh2='0';HL1='0';HL2='0';th1='0';th2='0';TL1='0';TL2='0'; hh1+=DHT11_Data.humi_int/10; hh2+=DHT11_Data.humi_int%10; HL1+=DHT11_Data.humi_deci/10; HL2+=DHT11_Data.humi_deci%10; th1+=DHT11_Data.temp_int/10; th2+=DHT11_Data.temp_int%10; TL1+=DHT11_Data.temp_deci/10; TL2+=DHT11_Data.temp_deci%10; } OLED_ShowString(8,4,"TEMP:"); OLED_ShowChar(48,4,th1); OLED_ShowChar(56,4,th2); OLED_ShowChar(64,4,'.'); OLED_ShowString(8,2,"HUM:"); OLED_ShowChar(48,2,hh1); OLED_ShowChar(56,2,hh2); OLED_ShowChar(64,2,'.'); OLED_ShowChar(72,2,HL1); OLED_ShowChar(80,2,HL2); OLED_ShowChar(88,2,'%'); if(TL1>'0') { OLED_ShowChar(72,6,TL1); OLED_ShowChar(80,6,TL2); } else { OLED_ShowChar(72,4,TL2); OLED_ShowChar(80,4,'0'); } OLED_ShowCHinese(88,4,4); 8、下面是编译结果,是没有错误的,现在可以直接烧写程序了 9、温湿度可以在OLED上进行显示了,大功告成,如果只是简单地移植程序还是比较简单的 下一步是新增一个串口2和添加RTC部分并且在oled上显示时间日期 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1777 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1080 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1678 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
595浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
554浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 09:26 , Processed in 0.710711 second(s), Total 51, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号