国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

LoRa模塊獲取光照值

rozbo / 3732人閱讀

摘要:任務(wù)要求使用提供的未完成的工程進行開發(fā)。設(shè)備上電后,板上的亮,滅。

基于hal庫下LoRa模塊獲取光照值

一、問題要求:

使用一個 LoRa 模塊、一個光照傳感器模塊完成一個光環(huán)境的監(jiān)控。
任務(wù)要求:
–> 使用提供的未完成的工程進行開發(fā)。
–> 設(shè)備上電后,板上的 LED1 亮,LED2 滅。

–> 液晶屏上實時顯示當(dāng)前光照值,效果如下:

–> 當(dāng)光照低于某一 設(shè)定值時(可用手遮住),板上的 LED2 燈亮起,高于
這一值(手拿開)時 LED2 滅

二、邏輯分析:

使用Visio畫出流程圖:

三、主要代碼實現(xiàn):

1.主函數(shù)main

對液晶初始化OLED_Init(),串口1初始化USART1_Init(115200),清空液晶屏的內(nèi)容OLED_Clear(),顯示初始化信息OLED_InitView(),ADC初始化ADCS_Init(),串口答應(yīng)信息printf(),打開LED1,關(guān)閉LED2,然后不斷獲取關(guān)照強度,并對LED2進行控制

int main( void ){    Init();			//開發(fā)板設(shè)備初始化		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);				//關(guān)閉LED2    while( 1 )    {        LoRa_GetSensorDataProcess();		//獲取光照值				Light_up();				   //設(shè)置閾值為80Lux,如果光照強度小于80Lux,打開LED2,否則關(guān)閉LED2				handlerPre10Ms();    }}

2.OLED顯示初始化信息函數(shù):OLED_InitView()

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,":");//:	}

3.獲取光照值函數(shù)LoRa_Get_SensorDataProcess();

獲取ADC0的值,并將其轉(zhuǎn)化為光照值顯示

void LoRa_GetSensorDataProcess(void)  {  		float voltage;    		AdcScanChannel();					//轉(zhuǎn)換ADC雙信道寄存器數(shù)據(jù)為電壓值    voltage = AdcReadCh0();					//獲得ADC0獲得電壓值				     LightLux = (uint16_t)(5/2.0)*(voltage*100); 		//轉(zhuǎn)化為光照強度 						 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顯示光照值}

4.控制LED2亮滅函數(shù)Light_up();

光照值小于80Lux時,打開LED2,否則關(guān)閉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時,關(guān)閉LED2	}}

四、注意事項與實現(xiàn)難點:

1.注意事項

(1)使用某個GPIO或其它外設(shè)前,得初始化!
(2)注意光照傳感器的AD值靠ADC0獲取;
(3)獲取到的ADC值還需要進行轉(zhuǎn)化為傳感器電壓值,再轉(zhuǎn)化為光照值;

2.實現(xiàn)難點

(1) 初始化ADC通道0 --> 轉(zhuǎn)換ADC雙信道寄存器數(shù)據(jù)為電壓值 --> 獲得ADC0獲得電壓值;
(2) (電壓值)voltage = (ADC0Value/4096.0) * 3300 , 單位為mV;
(3)(光照強度值)LightLux = (5/2.0) * (voltage /10.0) ,單位為Lux

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/119229.html

相關(guān)文章

  • 幾種典型的智慧農(nóng)業(yè)物聯(lián)網(wǎng)解決方案

    摘要:本文分享幾種典型具有實際應(yīng)用過的智慧農(nóng)業(yè)物聯(lián)網(wǎng)解決方案,供大家參考。智慧農(nóng)業(yè)物聯(lián)網(wǎng)解決方案由三部分組成智慧農(nóng)業(yè)物聯(lián)網(wǎng)平臺智慧農(nóng)業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)無線節(jié)點。 智慧農(nóng)業(yè)是現(xiàn)代農(nóng)業(yè)發(fā)展的必然趨勢,也是科學(xué)技術(shù)發(fā)展的必然結(jié)果。本文分享幾種典型具有實際應(yīng)用過的智慧農(nóng)業(yè)物聯(lián)網(wǎng)解決方案,供大家參考。 結(jié)合多年與...

    animabear 評論0 收藏0
  • 畢設(shè)-基于LoRa的智能農(nóng)業(yè)大棚(一)

    摘要:為了防止數(shù)據(jù)沖突采用輪詢的方式,輪詢發(fā)送數(shù)據(jù)。使用作為核心的開發(fā)板,需要的資源定時器中斷,外部中斷,串口接受中斷。定時器負(fù)責(zé)輪詢發(fā)送關(guān)鍵字給模塊,并由發(fā)送給各終端節(jié)點的模塊。 ...

    OldPanda 評論0 收藏0
  • stm32mini開發(fā)板lora模塊例程中中文字庫更新失敗的解決方案

    摘要:此文章用于解決開發(fā)板的模塊中文字庫加載問題,也可用于其它關(guān)于中文字庫無法加載的問題。如下圖,已經(jīng)完成了中文字庫燒入,無需再掛載。 正點原子stm32mini板lor...

    longmon 評論0 收藏0
  • 基于E220-400T30D模塊實現(xiàn)簡單的Lora無線通信

    摘要:模塊簡介用戶手冊下載采用全新一代的擴頻技術(shù),基于芯片方案設(shè)計的無線串口模塊。具有多種傳輸方式,工作在頻段默認(rèn),電平輸出,兼容與的口電壓。 1.模塊簡介 用戶手...

    不知名網(wǎng)友 評論0 收藏0
  • 基于單片機的藍(lán)牙控制窗簾電路系統(tǒng)

    摘要:設(shè)計簡介本設(shè)計是基于單片機的藍(lán)牙控制窗簾電路系統(tǒng),主要實現(xiàn)以下功能可通過顯示溫濕度光照強度窗簾狀態(tài)和模式可通過按鍵調(diào)整光照強度最小值可通過藍(lán)牙連接手機進行遠(yuǎn)程控制可通過獲取溫濕度可通過光敏電阻獲取光照強度。 設(shè)計簡介: 本設(shè)計是基于單片機的藍(lán)牙控制窗簾電路系統(tǒng),主要實現(xiàn)以下功能: 可通過LC...

    lowett 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<