完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
空气检测质点
整体架构 数据采集 温湿度模块(型号:DHT11) 实物图 原理图 传输协议(串行接口,单线双向) DATA引脚和微处理器之间采用单总线数据格式,每次通讯时间为4ms左右,完整的数据传输为40bit,高位先出。具体如下: [tr]数据含义[/tr]
dht11.h 头文件 void dht11_gpio_input(void); 输入初始化 void dht11_gpio_output(void); 输出初始化 u16 dht11_scan(void); 扫描 u16 dht11_read_bit(void); 位读取 u16 dht11_read_byte(void); 字节读取 u16 dht11_read_data(u8 buffer[4]); 读取温度和湿度 main.c 在主函数中 if (dht11_read_data(buffer) == 0) 如果获取到40位数据后 { hum = buffer[0] + buffer[1] / 10.0; 得到湿度值 temp = buffer[2] + buffer[3] / 10.0; 得到温度值 } printf("温湿度模块t 温度 = %.2ft 湿度: %.2f rn", temp, hum); 气压模块(型号BMP180) 实物图 原理图 传输协议(I2C) BMP180工作流程图如下: I2C时序图如下: 代码实现 BMP180.h 头 BMP180.h 头文件 void BMP_Init(void); 初始化 uint8_t BMP_ReadOneByte(uint8_t ReadAddr); 读一个8位的数据 void BMP_WriteOneByte(uint8_t WriteAddr,uint8_t DataToWrite); 读一个字节数据 short BMP_ReadTwoByte(uint8_t ReadAddr); 读一个16位的数据 void BMP_ReadCalibrationData(void); 获取计算参数 long BMP_Read_UT(void); 读取温度值 long BMP_Read_UP(void); 读取气压值 void BMP_UncompemstatedToTrue(void); 修正刚才获取的数据,并且计算海拔 main.c 在主函数中 BMP_Init(); 初始化 BMP_ReadCalibrationData(); 读取值 ID = BMP_ReadOneByte(0xd0); 读数据 BMP_UncompemstatedToTrue(); 修正数据 printf("气压模块t 温度 = %d.%dCt 压强 = %ldPat 高度 = %.5fmrn",bmp180.Temp/10,bmp180.Temp%10,bmp180.p,bmp180.altitude); PM2.5模块(型号:GP2Y1014AU) 实物图 原理图 传输协议(ADC,检测电压) 代码实现 adc.h float GetGP2Y(void); 获得ADC的值 void Adc_Init(void); 初始化ADC u16 Get_Adc(u8 ch); 获得ADC的值 u16 Get_GP2Y_Average(u8 times); 获得电压较稳定值 main.c 在主函数中 Adc_Init(); adc初始化Get_GP2Y_Average(20) printf("PM2.5模块t 浓度 = %drn",Get_GP2Y_Average(20)); 甲醛模块(型号:MS1100) 实物图 原理图 传输协议(ADC,电压检测) 代码实现 adc_dma.h 头文件 void ADC_DMA_Init(void); 初始化定义 float ADC_DMA_GET_MQ135(void); 定义电压值 main.c 在主函数中 ADC_DMA_Init(); 初始化 printf("¼×È©Ä£¿ét ¼×È© = %4.2frn", ADC_DMA_GET_MQ135()); 数据收集 stm32f103c8t6 实物图 原理图 工程结构 数据发送 LORA模块(型号:ATK-LORA-01) 实物图 原理图 传输协议(串口连接,AT指令) [tr]AT指令返回值[/tr]
lora.h u8 Lora_Init(void); 初始化 while ( 1 ) { LED_C15_ON(); 配置mod0引脚 delay_ms( 300 ); if (Lora_Init()) { uart2_init(115200); printf( "Lora Configuration Successful!rn" ); LED_C15_OFF(); break; } else { printf( "Lora Configuration fail!rn" ); } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 04:27 , Processed in 0.746051 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号