摘要:任务要求使用提供的未完成的工程进行开发。设备上电后,板上的亮,灭。
使用一个 LoRa 模块、一个光照传感器模块完成一个光环境的监控。
任务要求:
–> 使用提供的未完成的工程进行开发。
–> 设备上电后,板上的 LED1 亮,LED2 灭。
–> 液晶屏上实时显示当前光照值,效果如下:
–> 当光照低于某一 设定值时(可用手遮住),板上的 LED2 灯亮起,高于
这一值(手拿开)时 LED2 灭
使用Visio画出流程图:
对液晶初始化OLED_Init(),串口1初始化USART1_Init(115200),清空液晶屏的内容OLED_Clear(),显示初始化信息OLED_InitView(),ADC初始化ADCS_Init(),串口答应信息printf(),打开LED1,关闭LED2,然后不断获取关照强度,并对LED2进行控制
int main( void ){ Init(); //开发板设备初始化 OLED_Init(); //液晶初始化 USART1_Init(115200); //串口1初始化 OLED_Clear(); OLED_InitView(); //OLED屏幕显示初始化信息 ADCS_Init(); //ADC初始化 printf("LoRa Light/r/n"); //串口输出信息 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_RESET); //打开LED1 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET); //关闭LED2 while( 1 ) { LoRa_GetSensorDataProcess(); //获取光照值 Light_up(); //设置阈值为80Lux,如果光照强度小于80Lux,打开LED2,否则关闭LED2 handlerPre10Ms(); }}
OLED显示“光照值:”,具体oled显示中文汉字的方法,在之前的文章有写过,有不懂可以查阅之前的博文
void OLED_InitView(){ OLED_Clear(); OLED_ShowCHinese(0*16+10,3,29);//光 OLED_ShowCHinese(1*16+10,3,30);//照 OLED_ShowCHinese(2*16+10,3,52);//值 OLED_ShowChar(3*16+10,3,":");//: }
获取ADC0的值,并将其转化为光照值显示
void LoRa_GetSensorDataProcess(void) { float voltage; AdcScanChannel(); //转换ADC双信道寄存器数据为电压值 voltage = AdcReadCh0(); //获得ADC0获得电压值 LightLux = (uint16_t)(5/2.0)*(voltage*100); //转化为光照强度 printf("光照值:%d",LightLux); //把光照强度打印到串口 char StrBuf[64]={0}; memset(StrBuf, "/0", 64); sprintf(StrBuf, " %d Lx",LightLux); OLED_ShowString(4*16,3,(uint8_t *)StrBuf); //oled显示光照值}
光照值小于80Lux时,打开LED2,否则关闭LED2
void Light_up(void){ if(LightLux <= 80) { HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_RESET); //光照值小于80Lux时,开启LED2 } else { HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET); //光照值大于80Lux时,关闭LED2 }}
(1)使用某个GPIO或其它外设前,得初始化!
(2)注意光照传感器的AD值靠ADC0获取;
(3)获取到的ADC值还需要进行转化为传感器电压值,再转化为光照值;
(1) 初始化ADC通道0 --> 转换ADC双信道寄存器数据为电压值 --> 获得ADC0获得电压值;
(2) (电压值)voltage = (ADC0Value/4096.0) * 3300 , 单位为mV;
(3)(光照强度值)LightLux = (5/2.0) * (voltage /10.0) ,单位为Lux;
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/119229.html
摘要:本文分享几种典型具有实际应用过的智慧农业物联网解决方案,供大家参考。智慧农业物联网解决方案由三部分组成智慧农业物联网平台智慧农业物联网网关无线节点。 智慧农业是现代农业发展的必然趋势,也是科学技术发展的必然结果。本文分享几种典型具有实际应用过的智慧农业物联网解决方案,供大家参考。 结合多年与...
摘要:为了防止数据冲突采用轮询的方式,轮询发送数据。使用作为核心的开发板,需要的资源定时器中断,外部中断,串口接受中断。定时器负责轮询发送关键字给模块,并由发送给各终端节点的模块。 ...
摘要:此文章用于解决开发板的模块中文字库加载问题,也可用于其它关于中文字库无法加载的问题。如下图,已经完成了中文字库烧入,无需再挂载。 正点原子stm32mini板lor...
摘要:模块简介用户手册下载采用全新一代的扩频技术,基于芯片方案设计的无线串口模块。具有多种传输方式,工作在频段默认,电平输出,兼容与的口电压。 1.模块简介 用户手...
摘要:设计简介本设计是基于单片机的蓝牙控制窗帘电路系统,主要实现以下功能可通过显示温湿度光照强度窗帘状态和模式可通过按键调整光照强度最小值可通过蓝牙连接手机进行远程控制可通过获取温湿度可通过光敏电阻获取光照强度。 设计简介: 本设计是基于单片机的蓝牙控制窗帘电路系统,主要实现以下功能: 可通过LC...
阅读 2009·2021-11-24 09:39
阅读 1144·2021-09-10 11:25
阅读 1770·2021-09-08 10:42
阅读 3735·2021-09-06 15:00
阅读 2500·2019-08-30 15:54
阅读 3118·2019-08-29 17:08
阅读 3273·2019-08-29 11:26
阅读 2842·2019-08-28 18:27