久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2839|回復: 1
打印 上一主題 下一主題
收起左側

初步實現STM32單片機+MQTT上傳DHT11溫度到onenet源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:190564 發表于 2021-10-30 22:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
初步實現MQTT上傳DHT11溫度到onenet。根據正點原子的ESP8266例子,改成mqtt協議通信上傳溫濕度到onenet

單片機源程序如下:
  1. #include "stm32f4xx.h"
  2. #include "sys.h"
  3. #include "delay.h"  
  4. #include "usart.h"   
  5. #include "led.h"
  6. #include "lcd.h"
  7. #include "key.h"  
  8. #include "usmart.h"  
  9. #include "sram.h"   
  10. #include "malloc.h"
  11. #include "w25qxx.h"   
  12. #include "sdio_sdcard.h"
  13. #include "ff.h"  
  14. #include "exfuns.h"   
  15. #include "fontupd.h"
  16. #include "text.h"        
  17. #include "usmart.h"        
  18. #include "touch.h"               
  19. #include "usart3.h"
  20. #include "common.h"
  21. #include "dht11.h"

  22. int temp_limit_up = 35, temp_limit_down = 10, humi_limit_up = 90, humi_limit_down = 20;   //溫濕度閾值

  23. //測試界面主UI
  24. void esp_8266_mtest_ui(u16 x,u16 y)
  25. {
  26.         LCD_Clear(WHITE);
  27.         POINT_COLOR=RED;
  28.         Show_Str_Mid(0,y,"ESP8266 WIFI應用",16,240);
  29.         Show_Str(x,y+25,200,16,"請選擇網絡模式:",16,0);                                             
  30.         Show_Str(x,y+45,200,16,"KEY0:WIFI STA+AP",16,0);                                             
  31.         Show_Str(x,y+65,200,16,"KEY1:WIFI STA",16,0);                                             
  32.         Show_Str(x,y+85,200,16,"KEY2:WIFI AP",16,0);
  33.         Show_Str(x,y+105,200,16,"WK_UP:WIFI STAMQTT",16,0);
  34.          
  35. }





  36. //esp-ESP8266模塊測試主函數
  37. void esp_8266_test(void)
  38. {
  39.         u8 key;
  40.         POINT_COLOR=RED;  //LCD字體設置紅色
  41.         while(esp_8266_send_cmd("AT","OK",20))//檢查WIFI模塊是否在線
  42.         {
  43.                 esp_8266_quit_trans();//退出透傳
  44.                 esp_8266_send_cmd("AT+CIPMODE=0","OK",200);  //關閉透傳模式        
  45.                 Show_Str(40,55,200,16,"未檢測到模塊!!!",16,0);
  46.                 delay_ms(800);
  47.                 LCD_Fill(40,55,200,55+16,WHITE);  //對矩形區域填充白色
  48.                 Show_Str(40,55,200,16,"嘗試連接模塊...",16,0);
  49.         }
  50.                 while(esp_8266_send_cmd("ATE0","OK",20));//關閉回顯
  51.                 esp_8266_mtest_ui(32,30);  //顯示UI界面
  52.         while(1)
  53.         {
  54.                 delay_ms(10);
  55.                 key=KEY_Scan(0);
  56.                 if(key)
  57.                 {
  58.                         LCD_Clear(WHITE);
  59.                         POINT_COLOR=RED;
  60.                         switch(key)
  61.                         {
  62.                                 case 1://KEY0
  63.                                         Show_Str_Mid(0,30,"ESP WIFI-AP+STA 測試",16,240);
  64.                                         Show_Str_Mid(0,50,"正在配置ESP8266模塊,請稍等...",12,240);
  65.                                   esp_8266_apsta_test();//WIFI APSTA測試
  66.                                         break;
  67.                                 case 2://KEY1
  68.                                         Show_Str_Mid(0,30,"ESP WIFI-STA 測試",16,240);
  69.                                         Show_Str_Mid(0,50,"正在配置ESP8266模塊,請稍等...",12,240);
  70.                                   esp_8266_wifista_test();//WIFI STA測試
  71.                                         break;
  72.                                 case 3://KEY2
  73.                                         Show_Str_Mid(0,30,"ESP WIFI-AP 測試",16,240);
  74.                                         Show_Str_Mid(0,50,"正在配置ESP8266模塊,請稍等...",12,240);
  75.                                   esp_8266_wifiap_test();//WIFI AP測試
  76.                                         break;
  77.                           case 4://KEY_UP
  78.                                         Show_Str_Mid(0,30,"ESP WIFI-STA-MQTT 測試",16,240);
  79.                                         Show_Str_Mid(0,50,"正在配置ESP8266模塊,請稍等...",12,240);
  80.                                   esp_8266_wifistamqtt_test();//WIFI STA MQTT測試
  81.                                         break;        
  82.                         }
  83.                 }         
  84.         }
  85. }




  86. int main(void)
  87. {        
  88.         u8 key,fontok=0;
  89.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
  90.         delay_init(168);  //初始化延時函數
  91.         uart_init(115200);                //初始化串口波特率為115200
  92.         usart3_init(115200);  //初始化串口3波特率為115200
  93.         LED_Init();                                        //初始化LED  
  94.          LCD_Init();                                        //LCD初始化  
  95.          KEY_Init();                                        //按鍵初始化  
  96.         W25QXX_Init();                                //初始化W25Q128
  97.         tp_dev.init();                                //初始化觸摸屏
  98.         usmart_dev.init(168);                //初始化USMART
  99.         my_mem_init(SRAMIN);                //初始化內部內存池
  100.         my_mem_init(SRAMCCM);                //初始化CCM內存池
  101.         exfuns_init();                                //為fatfs相關變量申請內存  
  102.   f_mount(fs[0],"0:",1);                 //掛載SD卡
  103.          f_mount(fs[1],"1:",1);                 //掛載FLASH.
  104.         key=KEY_Scan(0);  
  105.         if(key==KEY0_PRES)                //強制校準
  106.         {
  107.                 LCD_Clear(WHITE);        //清屏
  108.                 TP_Adjust();                  //屏幕校準
  109.                 TP_Save_Adjdata();         
  110.                 LCD_Clear(WHITE);        //清屏
  111.         }
  112.         fontok=font_init();                //檢查字庫是否OK
  113.         if(fontok||key==KEY1_PRES)//需要更新字庫                                 
  114.         {
  115.                 LCD_Clear(WHITE);                           //清屏
  116.                  POINT_COLOR=RED;                        //設置字體為紅色                                
  117.                 LCD_ShowString(60,50,200,16,16,"ALIENTEK STM32");
  118.                 while(SD_Init())                        //檢測SD卡
  119.                 {
  120.                         LCD_ShowString(60,70,200,16,16,"SD Card Failed!");
  121.                         delay_ms(200);
  122.                         LCD_Fill(60,70,200+60,70+16,WHITE);
  123.                         delay_ms(200);                    
  124.                 }                                                                                                                     
  125.                 LCD_ShowString(60,70,200,16,16,"SD Card OK");
  126.                 LCD_ShowString(60,90,200,16,16,"Font Updating...");
  127.                 key=update_font(20,110,16,"0:");//從SD卡更新
  128.                 while(key)//更新失敗               
  129.                 {                                          
  130.                         LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
  131.                         delay_ms(200);
  132.                         LCD_Fill(20,110,200+20,110+16,WHITE);
  133.                         delay_ms(200);                       
  134.                 }                  
  135.                 LCD_ShowString(60,110,200,16,16,"Font Update Success!");
  136.                 delay_ms(1500);        
  137.                 LCD_Clear(WHITE);//清屏               
  138.         }  
  139.         
  140.         if(DHT11_Init())           //dht11器件不存在
  141.         {
  142.                 Show_Str_Mid(0,30,"DHT11 Init ERROR",16,240);
  143.                
  144.         }
  145.         
  146.         /*
  147.                 while(1)
  148.         {
  149.                
  150.                 key=KEY_Scan(0);
  151.                 if(key)
  152.                 {
  153.         
  154.                         switch(key)
  155.                         {
  156.                                 case 1://KEY0
  157.                                         printf("a");
  158.                                         break;
  159.                                 case 2://KEY1
  160.                                         printf("b");
  161.                                         break;
  162.                                 case 3://KEY2
  163.                                         printf("c");
  164.                                         break;
  165.                           case 4://KEY_UP
  166.                                         printf("d");
  167.                                         break;        
  168.                         }
  169.                 }         
  170.         }
  171.         */
  172.         esp_8266_test();                //進入ATK_ESP8266測試
  173. }
復制代碼

所有資料51hei附件下載:
MQTT應用代碼.7z (829.88 KB, 下載次數: 60)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:346927 發表于 2021-11-2 11:44 | 只看該作者
很好的資料,已下載,謝謝分享!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 特一级毛片 | 久久久夜夜夜 | 99免费| 国产精品久久777777 | 夜夜骚 | 日本免费一区二区三区 | 久久伊人亚洲 | 精品亚洲一区二区三区 | 91精品久久久久久久久久 | 亚洲精品www| 成人av网站在线观看 | 日本黄色激情视频 | 综合久久亚洲 | 亚洲一区二区精品视频 | 91精品国产高清久久久久久久久 | 中文字幕视频在线观看 | 日韩精品中文字幕一区二区三区 | 综合色在线 | 孕妇一级毛片 | 日日草夜夜草 | 国产精品不卡 | 欧美国产视频 | 久久精品久久综合 | 欧美狠狠操 | 美女福利网站 | 国产精品久久久久久模特 | 欧美久久精品一级黑人c片 91免费在线视频 | 久久免费精彩视频 | 欧美福利一区 | 黄色成人亚洲 | 男插女下体视频 | 亚洲视频中文字幕 | 亚洲欧美自拍偷拍视频 | 日本亚洲精品 | 女人av| 在线观看中文字幕 | 日韩精品av| 日韩午夜影院 | 亚洲欧美日韩精品久久亚洲区 | 国产激情自拍视频 | 久久精品国产精品青草 |