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

資訊專欄INFORMATION COLUMN

LoRa模塊獲取光照值

rozbo / 3760人閱讀

摘要:任務要求使用提供的未完成的工程進行開發。設備上電后,板上的亮,滅。

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

一、問題要求:

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

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

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

二、邏輯分析:

使用Visio畫出流程圖:

三、主要代碼實現:

1.主函數main

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

</>復制代碼

  1. int main( void ){ Init();
  2. //開發板設備初始化
  3. OLED_Init();
  4. //液晶初始化
  5. USART1_Init(115200);
  6. //串口1初始化
  7. OLED_Clear();
  8. OLED_InitView();
  9. //OLED屏幕顯示初始化信息
  10. ADCS_Init();
  11. //ADC初始化
  12. printf("LoRa Light/r/n");
  13. //串口輸出信息
  14. HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_RESET);
  15. //打開LED1
  16. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET);
  17. //關閉LED2 while( 1 ) { LoRa_GetSensorDataProcess();
  18. //獲取光照值
  19. Light_up();
  20. //設置閾值為80Lux,如果光照強度小于80Lux,打開LED2,否則關閉LED2
  21. handlerPre10Ms(); }}

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

OLED顯示“光照值:”,具體oled顯示中文漢字的方法,在之前的文章有寫過,有不懂可以查閱之前的博文

</>復制代碼

  1. void OLED_InitView(){
  2. OLED_Clear();
  3. OLED_ShowCHinese(0*16+10,3,29);//光
  4. OLED_ShowCHinese(1*16+10,3,30);//照
  5. OLED_ShowCHinese(2*16+10,3,52);//值
  6. OLED_ShowChar(3*16+10,3,":");//:
  7. }

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

獲取ADC0的值,并將其轉化為光照值顯示

</>復制代碼

  1. void LoRa_GetSensorDataProcess(void) {
  2. float voltage;
  3. AdcScanChannel();
  4. //轉換ADC雙信道寄存器數據為電壓值 voltage = AdcReadCh0();
  5. //獲得ADC0獲得電壓值
  6. LightLux = (uint16_t)(5/2.0)*(voltage*100);
  7. //轉化為光照強度
  8. printf("光照值:%d",LightLux);
  9. //把光照強度打印到串口 char StrBuf[64]={0}; memset(StrBuf, "/0", 64); sprintf(StrBuf, " %d Lx",LightLux); OLED_ShowString(4*16,3,(uint8_t *)StrBuf);
  10. //oled顯示光照值}

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

光照值小于80Lux時,打開LED2,否則關閉LED2

</>復制代碼

  1. void Light_up(void){
  2. if(LightLux <= 80)
  3. {
  4. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_RESET);
  5. //光照值小于80Lux時,開啟LED2
  6. }
  7. else
  8. {
  9. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET);
  10. //光照值大于80Lux時,關閉LED2
  11. }}

四、注意事項與實現難點:

1.注意事項

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

2.實現難點

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/119229.html

相關文章

  • 幾種典型的智慧農業物聯網解決方案

    摘要:本文分享幾種典型具有實際應用過的智慧農業物聯網解決方案,供大家參考。智慧農業物聯網解決方案由三部分組成智慧農業物聯網平臺智慧農業物聯網網關無線節點。 智慧農業是現代農業發展的必然趨勢,也是科學技術發展的必然結果。本文分享幾種典型具有實際應用過的智慧農業物聯網解決方案,供大家參考。 結合多年與...

    animabear 評論0 收藏0
  • 畢設-基于LoRa的智能農業大棚(一)

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

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

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

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

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

    不知名網友 評論0 收藏0
  • 基于單片機的藍牙控制窗簾電路系統

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

    lowett 評論0 收藏0

發表評論

0條評論

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