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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32智能家居控制系統程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:428407 發表于 2020-1-8 12:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一、 自動模式
1.溫濕度、氣壓、煙霧濃度、一氧化碳濃度、光照強度檢測;
2.當光照強度大于所設定的閾值時,會自動打開客廳燈和窗簾(步進電機);
3.當溫濕度、氣壓、煙霧濃度、一氧化碳濃度任意的數據大于所設定的閾值時,會啟動聲光報警(蜂鳴器)

二、手動模式
1.上位機(機智云)的APP 可以控制窗簾和客廳燈的開關,可以調節各個傳感器的閾值;
2.傳感器所檢測到的數據會實時傳送到上位機(機智云)的APP顯示

制作出來的實物圖如下:


單片機源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "timer.h"
  6. #include "ADC.h"
  7. #include "usart3.h"
  8. #include "key.h"
  9. #include "rtc.h"
  10. #include "oled.h"
  11. #include "stmflash.h"
  12. #include "math.h"
  13. #include "dht11.h"
  14. #include "bmp280.h"
  15. #include "exti.h"
  16. #include "gizwits_product.h"

  17. u8 buff[30];//參數顯示緩存數組
  18. u8 count;
  19. dataPoint_t currentDataPoint;//云端數據點
  20. u8 wifi_sta;//wifi連接狀態標志
  21. u8 mode=0;//模式控制自動和手動
  22. u8 NTP_sta=0;//網諾時間獲取狀態
  23. u8 display_contrl=0;
  24. u8 curtain_flag=0;
  25. u8 last_curtain_flag=0;

  26. extern u8 DHT11_Temp,DHT11_Hum;                //溫濕度
  27. u16 Pre;                                                        //氣壓檢測值
  28. u16 gz_value;                                                //光照檢測值                       
  29. u16 m2_value;                                                //煙霧檢測值
  30. u16 m7_value;                                                //一氧化碳檢測值
  31. u16 m135_value;                                                //空氣質量檢測值

  32. u16 A_DHT11_Temp=25;                                //溫度閾值
  33. u16 A_DHT11_Hum=50;                                        //濕度閾值
  34. u16 A_pre=1500;                                                //氣壓閾值
  35. u16 A_gz_value=2000;                                //光照強度閾值
  36. u16 A_m2_value=1500;                                //煙霧閾值
  37. u16 A_m7_value=2000;                                //一氧化碳閾值
  38. u16 A_m135_value=4000;                                //空氣質量閾值
  39. /************************************************
  40. ALIENTEK精英STM32開發板實驗1
  41. 跑馬燈實驗
  42. 技術支持:www.openedv.com
  43. 淘寶店鋪:http://eboard.taobao.com
  44. 關注微信公眾平臺微信號:"正點原子",免費獲取STM32資料。
  45. 廣州市星翼電子科技有限公司  
  46. 作者:正點原子 @ALIENTEK
  47. ************************************************/
  48. //協議初始化
  49. void Gizwits_Init(void)
  50. {       
  51.         TIM3_Int_Init(9,7199);//1MS系統定時
  52.     usart3_init(9600);//WIFI初始化
  53.         memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));//設備狀態結構體初始化
  54.         gizwitsInit();//緩沖區初始化
  55. }

  56. //數據采集
  57. void userHandle(void)
  58. {
  59.         currentDataPoint.valueLED=!LED0;
  60.         currentDataPoint.valueCurtain=curtain_flag;
  61.         currentDataPoint.valueTemp=DHT11_Temp;
  62.         currentDataPoint.valueHum=DHT11_Hum;
  63.         currentDataPoint.valuePre=Pre;
  64.         currentDataPoint.valueGZ_Val=gz_value;
  65.         currentDataPoint.valueMQ2_Val=m2_value;
  66.         currentDataPoint.valueMQ7_Val=m7_value;
  67.         currentDataPoint.valueMQ135_Val=m135_value;
  68.        
  69. }

  70. void Get_Data(u16 count);//獲取傳感器數據
  71. void WIFI_Contection(u8 key);//WiFi連接控制
  72. void Canshu_Change(u8 key);//系統參數調節
  73. void Mode_Change(u8 key);//模式切換
  74. void BUJING_Cotrol(u8 mode,u16 time,u16 count);
  75. int main(void)
  76. {       
  77.         u8 t=0;
  78.         int key_value;                //按鍵值
  79.         delay_init();            //延時函數初始化
  80.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
  81.         uart_init(115200);                         //串口初始化為115200
  82.         Adc1_Channe_Init();                        //ADC通道初始化
  83.         KEY_Init();                                        //按鍵引腳初始化
  84.         //EXTIX_Init();
  85.         bmp280Init();
  86.         while(DHT11_Init());       
  87.         LED_Init();                                          //初始化與LED連接的硬件接口
  88.         OLED_Init();                                //OLED初始化
  89.         OLED_Clear();                                //OLED清屏
  90.         Gizwits_Init();               
  91.        
  92.         STMFLASH_Read(FLASH_SAVE_ADDR+10,&A_DHT11_Temp,2);        //開機讀取溫度閾值
  93.         STMFLASH_Read(FLASH_SAVE_ADDR+12,&A_DHT11_Hum,2);        //開機讀取濕度閾值
  94.         STMFLASH_Read(FLASH_SAVE_ADDR+14,&A_pre,2);                        //開機讀取氣壓閾值
  95.         STMFLASH_Read(FLASH_SAVE_ADDR+18,&A_gz_value,2);        //開機讀取光照強度閾值
  96.         STMFLASH_Read(FLASH_SAVE_ADDR+20,&A_m2_value,2);        //開機讀取煙霧閾值
  97.         STMFLASH_Read(FLASH_SAVE_ADDR+22,&A_m7_value,2);        //開機讀取一氧化碳閾值
  98.         STMFLASH_Read(FLASH_SAVE_ADDR+24,&A_m135_value,2);        //開機讀取空氣質量閾值

  99.         while(1)
  100.         {
  101.                 Get_Data(0);
  102.                 if(gz_value<=A_gz_value&&mode==0)
  103.                 {
  104.                         LED0=0;
  105.                         curtain_flag=0;
  106.                 }else if(gz_value>A_gz_value&&mode==0){
  107.                         LED0=1;
  108.                         curtain_flag=1;
  109.                 }
  110.                 if(last_curtain_flag!=curtain_flag&&mode==0)
  111.                 {
  112.                         BUJING_Cotrol(curtain_flag,3,180);
  113.                         //                BUJING_Cotrol(curtain_flag,4,180);
  114.                         last_curtain_flag = curtain_flag;
  115.                 }
  116.                 if(last_curtain_flag!=currentDataPoint.valueCurtain&&mode==1)
  117.                 {
  118.                         BUJING_Cotrol(currentDataPoint.valueCurtain,3,270);
  119.                         curtain_flag = currentDataPoint.valueCurtain;
  120.                         last_curtain_flag = currentDataPoint.valueCurtain;
  121.                 }       
  122.                 if(mode==1)
  123.                 {
  124.                         LED0=!currentDataPoint.valueLED;
  125.                 }
  126.         //        if(Pre>=A_pre||m135_value<=A_m135_value||m2_value>=A_m2_value||m7_value>=A_m7_value)
  127.                 if(Pre>=A_pre||m135_value>=A_m135_value||m2_value>=A_m2_value||m7_value>=A_m7_value)
  128.                 {
  129.                         BEEP=        !BEEP;
  130.         //                BEEP=        1;
  131.                 }else BEEP = 0;

  132.                 key_value = KEY_Scan(0);
  133.                 if(key_value==3)
  134.                 {
  135.                         display_contrl++;
  136.                 }
  137.                 if(display_contrl%2==0&&t>=10)
  138.                 {
  139.                         OLED_ShowCHinese(0,0,0);
  140.                         OLED_ShowCHinese(16,0,2);
  141.                         sprintf((char*)buff,":%2dC",DHT11_Temp);
  142.                         OLED_ShowString(32,0,buff,16);        //顯示溫度   
  143.                         OLED_ShowCHinese(82,0,2);
  144.                         sprintf((char*)buff,":%2d%%",DHT11_Hum);
  145.                         OLED_ShowString(96,0,buff,16);//顯示濕度       
  146.                        
  147.                         OLED_ShowCHinese(0,2,3);
  148.                         OLED_ShowCHinese(16,2,4);
  149.                         sprintf((char*)buff,":%2dpa     ",Pre);
  150.                         OLED_ShowString(32,2,buff,16);//顯示氣壓
  151.                        
  152.                         OLED_ShowCHinese(0,4,5);
  153.                         OLED_ShowCHinese(16,4,6);
  154.                         OLED_ShowCHinese(32,4,7);
  155.                         OLED_ShowCHinese(48,4,8);
  156.                         sprintf((char*)buff,":%4dppm",gz_value);
  157.                         OLED_ShowString(64,4,buff,16);//顯示光照強度
  158.                        
  159.                         OLED_ShowCHinese(0,6,9);
  160.                         OLED_ShowCHinese(16,6,10);
  161.                         OLED_ShowCHinese(32,6,11);
  162.                         OLED_ShowCHinese(48,6,12);
  163.                         sprintf((char*)buff,":%4dppm",m135_value);
  164.                         OLED_ShowString(64,6,buff,16);//顯示空氣質量
  165.                 }else if(display_contrl%2==1&&t>=10)
  166.                 {
  167.                         OLED_ShowCHinese(0,0,13);
  168.                         OLED_ShowCHinese(16,0,14);
  169.                         OLED_ShowCHinese(32,0,15);
  170.                         OLED_ShowCHinese(48,0,16);
  171.                         sprintf((char*)buff,":%4dppm",m2_value);
  172.                         OLED_ShowString(64,0,buff,16);//顯示M2數據
  173.                        
  174.                         OLED_ShowCHinese(0,2,17);
  175.                         OLED_ShowCHinese(16,2,18);
  176.                         OLED_ShowCHinese(32,2,19);
  177.                         OLED_ShowCHinese(48,2,20);
  178.                         sprintf((char*)buff,":%4dppm",m7_value);
  179.                         OLED_ShowString(64,2,buff,16);//顯示M7數據
  180.                        
  181.                         OLED_ShowCHinese(0,4,5);
  182.                         OLED_ShowCHinese(16,4,6);
  183.                         OLED_ShowCHinese(32,4,7);
  184.                         OLED_ShowCHinese(48,4,8);
  185.                         sprintf((char*)buff,":%4dppm",gz_value);
  186.                         OLED_ShowString(64,4,buff,16);//顯示光照強度
  187.                        
  188.                         OLED_ShowCHinese(0,6,9);
  189.                         OLED_ShowCHinese(16,6,10);
  190.                         OLED_ShowCHinese(32,6,11);
  191.                         OLED_ShowCHinese(48,6,12);
  192.                         sprintf((char*)buff,":%4dppm",m135_value);
  193.                         OLED_ShowString(64,6,buff,16);//顯示M135數據
  194.                 }

  195.                 userHandle();                                        //用戶數據采集
  196.                 gizwitsHandle((dataPoint_t *)¤tDataPoint);//機智云協議處理

  197.                 WIFI_Contection(key_value);//WiFi連接控制
  198.                 Canshu_Change(key_value);
  199.                
  200.                 t++;
  201.                 delay_ms(100);
  202.         }
  203. }

  204. void WIFI_Contection(u8 key)//WiFi連接控制
  205. {
  206.         if(key==4)
  207.         {
  208.                 printf("WIFI進入AirLink連接模式\r\n");
  209.                 gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入
  210.         }                       
  211.         if(key==1)
  212.         {  
  213.                
  214.                 printf("WIFI復位,請重新配置連接\r\n");
  215.                 gizwitsSetMode(WIFI_RESET_MODE);//WIFI復位
  216.         }
  217.        
  218. }

  219. void Canshu_Change(u8 key)
  220. {
  221.         u8 obj=7;
  222.         if(key==2)
  223.         {
  224.                 BEEP=0;
  225.                 OLED_Clear();
  226.                 while(1)
  227.                 {
  228.                         key = KEY_Scan(0);
  229.                         if(key==2)
  230.                         {
  231.                                 obj++;
  232.                                 if(obj>=8)
  233.                                 {
  234.                                         obj=0;
  235.                                 }
  236.                         }
  237.                         sprintf((char *)buff,"Working md:%4d",mode);
  238.                         OLED_ShowString(8,0,buff,12);
  239.                         sprintf((char *)buff,"A_Temp    :%4d",A_DHT11_Temp);
  240.                         OLED_ShowString(8,1,buff,12);
  241.                         sprintf((char *)buff,"A_Hum     :%4d",A_DHT11_Hum);
  242.                         OLED_ShowString(8,2,buff,12);
  243.                         sprintf((char *)buff,"A_pre     :%4d",A_pre);
  244.                         OLED_ShowString(8,3,buff,12);
  245.                         sprintf((char *)buff,"A_gz_val  :%4d",A_gz_value);
  246.                         OLED_ShowString(8,4,buff,12);
  247.                         sprintf((char *)buff,"A_m2_val  :%4d",A_m2_value);
  248.                         OLED_ShowString(8,5,buff,12);
  249.                         sprintf((char *)buff,"A_m7_val  :%4d",A_m7_value);
  250.                         OLED_ShowString(8,6,buff,12);
  251.                         sprintf((char *)buff,"A_m135_val:%4d",A_m135_value);
  252.                         OLED_ShowString(8,7,buff,12);
  253.                         if(obj==0)
  254.                         {
  255.                                 OLED_ShowString(0,0," ",12);
  256.                                 OLED_ShowString(0,1,">",12);
  257.                                 OLED_ShowString(0,2," ",12);
  258.                                 OLED_ShowString(0,3," ",12);
  259.                                 OLED_ShowString(0,4," ",12);
  260.                                 OLED_ShowString(0,5," ",12);
  261.                                 OLED_ShowString(0,6," ",12);
  262.                                 OLED_ShowString(0,7," ",12);
  263.                         }
  264.                         if(obj==1)
  265.                         {
  266.                                 OLED_ShowString(0,0," ",12);
  267.                                 OLED_ShowString(0,1," ",12);
  268.                                 OLED_ShowString(0,2,">",12);
  269.                                 OLED_ShowString(0,3," ",12);
  270.                                 OLED_ShowString(0,4," ",12);
  271.                                 OLED_ShowString(0,5," ",12);
  272.                                 OLED_ShowString(0,6," ",12);
  273.                                 OLED_ShowString(0,7," ",12);
  274.                         }
  275.                         if(obj==2)
  276.                         {
  277.                                 OLED_ShowString(0,0," ",12);
  278.                                 OLED_ShowString(0,1," ",12);
  279.                                 OLED_ShowString(0,2," ",12);
  280.                                 OLED_ShowString(0,3,">",12);
  281.                                 OLED_ShowString(0,4," ",12);
  282.                                 OLED_ShowString(0,5," ",12);
  283.                                 OLED_ShowString(0,6," ",12);
  284.                                 OLED_ShowString(0,7," ",12);
  285.                         }
  286.                         if(obj==3)
  287.                         {
  288.                                 OLED_ShowString(0,0," ",12);
  289.                                 OLED_ShowString(0,1," ",12);
  290.                                 OLED_ShowString(0,2," ",12);
  291.                                 OLED_ShowString(0,3," ",12);
  292.                                 OLED_ShowString(0,4,">",12);
  293.                                 OLED_ShowString(0,5," ",12);
  294.                                 OLED_ShowString(0,6," ",12);
  295.                                 OLED_ShowString(0,7," ",12);
  296.                         }
  297.                         if(obj==4)
  298.                         {
  299.                                 OLED_ShowString(0,0," ",12);
  300.                                 OLED_ShowString(0,1," ",12);
  301.                                 OLED_ShowString(0,2," ",12);
  302.                                 OLED_ShowString(0,3," ",12);
  303.                                 OLED_ShowString(0,4," ",12);
  304.                                 OLED_ShowString(0,5,">",12);
  305.                                 OLED_ShowString(0,6," ",12);
  306.                                 OLED_ShowString(0,7," ",12);
  307.                         }
  308.                         if(obj==5)
  309.                         {
  310.                                 OLED_ShowString(0,0," ",12);
  311.                                 OLED_ShowString(0,1," ",12);
  312.                                 OLED_ShowString(0,2," ",12);
  313.                                 OLED_ShowString(0,3," ",12);
  314.                                 OLED_ShowString(0,4," ",12);
  315.                                 OLED_ShowString(0,5," ",12);
  316.                                 OLED_ShowString(0,6,">",12);
  317.                                 OLED_ShowString(0,7," ",12);
  318.                         }
  319.                         if(obj==6)
  320.                         {
  321.                                 OLED_ShowString(0,0," ",12);
  322.                                 OLED_ShowString(0,1," ",12);
  323.                                 OLED_ShowString(0,2," ",12);
  324.                                 OLED_ShowString(0,3," ",12);
  325.                                 OLED_ShowString(0,4," ",12);
  326.                                 OLED_ShowString(0,5," ",12);
  327.                                 OLED_ShowString(0,6," ",12);
  328.                                 OLED_ShowString(0,7,">",12);
  329.                         }
  330.                         if(obj==7)
  331.                         {
  332.                                 OLED_ShowString(0,0,">",12);
  333.                                 OLED_ShowString(0,1," ",12);
  334.                                 OLED_ShowString(0,2," ",12);
  335.                                 OLED_ShowString(0,3," ",12);
  336.                                 OLED_ShowString(0,4," ",12);
  337.                                 OLED_ShowString(0,5," ",12);
  338.                                 OLED_ShowString(0,6," ",12);
  339.                                 OLED_ShowString(0,7," ",12);
  340.                         }
  341.                         if(obj==0)
  342.                         {
  343.                                 if(key==4)
  344.                                 {
  345.                                         A_DHT11_Temp+=1;
  346.                                 }
  347.                                 if(key==1)
  348.                                 {
  349.                                         A_DHT11_Temp-=1;
  350.                                 }
  351.                         }
  352.                         if(obj==1)
  353.                         {
  354.                                 if(key==4)
  355.                                 {
  356.                                         A_DHT11_Hum+=1;
  357.                                 }
  358.                                 if(key==1)
  359.                                 {
  360.                                         A_DHT11_Hum-=1;
  361.                                 }
  362.                         }
  363.                         if(obj==2)
  364.                         {
  365.                                 if(key==4)
  366.                                 {
  367.                                         A_pre+=20;
  368.                                 }
  369.                                 if(key==1)
  370.                                 {
  371.                                         A_pre-=20;
  372.                                 }
  373.                         }
  374.                         if(obj==3)
  375.                         {
  376.                                 if(key==4)
  377.                                 {
  378.                                         A_gz_value+=50;
  379.                                 }
  380.                                 if(key==1)
  381.                                 {
  382.                                         A_gz_value-=50;
  383.                                 }
  384.                         }
  385.                         if(obj==4)
  386.                         {
  387.                                 if(key==4)
  388.                                 {
  389.                                         A_m2_value+=50;
  390.                                 }
  391.                                 if(key==1)
  392.                                 {
  393.                                         A_m2_value-=50;
  394.                                 }
  395.                         }
  396.                         if(obj==5)
  397.                         {
  398.                                 if(key==4)
  399.                                 {
  400.                                         A_m7_value+=50;
  401.                                 }
  402.                                 if(key==1)
  403.                                 {
  404.                                         A_m7_value-=50;
  405.                                 }
  406.                         }
  407.                         if(obj==6)
  408.                         {
  409.                                 if(key==4)
  410.                                 {
  411.                                         A_m135_value+=50;
  412.                                 }
  413.                                 if(key==1)
  414.                                 {
  415.                                         A_m135_value-=50;
  416.                                 }
  417.                         }
  418.                         if(obj==7)
  419.                         {
  420.                                 if(key==4)
  421.                                 {
  422.                                         mode+=1;
  423.                                 }
  424.                                 if(key==1)
  425.                                 {
  426.                                         mode-=1;
  427.                                 }
  428.                         }
  429.                         if(key==3)
  430.                         {
  431.                                 STMFLASH_Write(FLASH_SAVE_ADDR+10,&A_DHT11_Temp,2);        //開機讀取溫度閾值
  432.                                 STMFLASH_Write(FLASH_SAVE_ADDR+12,&A_DHT11_Hum,2);        //開機讀取濕度閾值
  433.                                 STMFLASH_Write(FLASH_SAVE_ADDR+14,&A_pre,2);                        //開機讀取氣壓閾值
  434.                                 STMFLASH_Write(FLASH_SAVE_ADDR+18,&A_gz_value,2);        //開機讀取光照強度閾值
  435.                                 STMFLASH_Write(FLASH_SAVE_ADDR+20,&A_m2_value,2);        //開機讀取煙霧閾值
  436.                                 STMFLASH_Write(FLASH_SAVE_ADDR+22,&A_m7_value,2);        //開機讀取一氧化碳閾值
  437.                                 STMFLASH_Write(FLASH_SAVE_ADDR+24,&A_m135_value,2);        //開機讀取空氣質量閾值
  438.                                 OLED_Clear();
  439.                                 break;
  440.                         }
  441.                
  442.                 }
  443.         }
  444. }

  445. void Get_Data(u16 count)//獲取傳感器數據
  446. {
  447.         static float bmp280_press,bmp280;                                //氣壓
  448.        
  449.         DHT11_Read_Data(&DHT11_Temp,&DHT11_Hum);
  450. ……………………

  451. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
2.程序源碼.7z (292.51 KB, 下載次數: 520)
智能家居.pdf (260.93 KB, 下載次數: 485)


評分

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

查看全部評分

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

使用道具 舉報

來自 2#
ID:428407 發表于 2020-5-13 08:29 | 只看該作者
統一回復,先把所有傳感器連接好后,燒錄程序,OLED才能有顯示;對于聯網功能,使用的是機智云網站,先把WIFI模塊ESP8266燒錄機智云固件,再入網即可,度娘機智云官網   官網有固件和使用教程
回復

使用道具 舉報

板凳
ID:693699 發表于 2020-2-15 22:07 | 只看該作者
樓主 這個單片機類型為啥
回復

使用道具 舉報

地板
ID:699194 發表于 2020-3-11 20:19 | 只看該作者
alilialilili 發表于 2020-2-15 22:07
樓主 這個單片機類型為啥

STM32f10x






.
回復

使用道具 舉報

5#
ID:706683 發表于 2020-3-12 08:54 來自手機 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

6#
ID:591735 發表于 2020-3-12 14:55 | 只看該作者
請問wifi模塊使用的esp8266嗎
回復

使用道具 舉報

7#
ID:699194 發表于 2020-3-12 18:30 | 只看該作者
程序顯示不了效果






.
回復

使用道具 舉報

8#
ID:116773 發表于 2020-3-12 21:12 | 只看該作者
能分享線路結構圖嗎?
回復

使用道具 舉報

9#
ID:699194 發表于 2020-3-12 22:31 | 只看該作者
學習了,謝謝謝謝




。我會好好努力學習的
回復

使用道具 舉報

10#
ID:295874 發表于 2020-3-15 22:06 | 只看該作者
此原理圖中出現3路電源標識:VCC、VCC3.3V、5V,其中VCC是幾伏?
回復

使用道具 舉報

11#
ID:318162 發表于 2020-3-19 22:21 | 只看該作者
摟住你好  你的一氧化碳是怎么檢測的 然后公式是啥?
回復

使用道具 舉報

12#
ID:318162 發表于 2020-3-19 22:28 | 只看該作者
你好 你的一氧化碳怎么檢測
回復

使用道具 舉報

13#
ID:699194 發表于 2020-3-25 11:58 | 只看該作者
這是這個程序的原理圖,

免費分享

stm32_智能家居(原理圖).pdf

260.93 KB, 下載次數: 98, 下載積分: 黑幣 -5

回復

使用道具 舉報

14#
ID:428407 發表于 2020-5-13 08:02 | 只看該作者
zhenguansinian 發表于 2020-3-12 14:55
請問wifi模塊使用的esp8266嗎

對的,ESP8266
回復

使用道具 舉報

15#
ID:428407 發表于 2020-5-13 08:03 | 只看該作者
回復

使用道具 舉報

16#
ID:428407 發表于 2020-5-13 08:03 | 只看該作者
liyongan_1985 發表于 2020-3-15 22:06
此原理圖中出現3路電源標識:VCC、VCC3.3V、5V,其中VCC是幾伏?

VCC是5V,V303V是303V供電
回復

使用道具 舉報

17#
ID:428407 發表于 2020-5-13 08:04 | 只看該作者
Dear賈哥哥 發表于 2020-3-19 22:21
摟住你好  你的一氧化碳是怎么檢測的 然后公式是啥?

ADC轉換
回復

使用道具 舉報

18#
ID:428407 發表于 2020-5-13 08:05 | 只看該作者

怎么會顯示不了呢,有問題可以加我QQ  2808368554   聯系我
回復

使用道具 舉報

19#
ID:116773 發表于 2020-5-13 09:20 | 只看該作者
我也在做類似的實驗,使用的是STM32G431RB,感覺GPIO引腳不夠用。
回復

使用道具 舉報

20#
ID:428407 發表于 2020-5-21 10:22 | 只看該作者
hujj 發表于 2020-5-13 09:20
我也在做類似的實驗,使用的是STM32G431RB,感覺GPIO引腳不夠用。

嗯嗯,是的,功能多了,引腳感覺不夠用了,對于這種引腳少的,內部資源也不是很多
回復

使用道具 舉報

21#
ID:591170 發表于 2020-6-2 12:14 | 只看該作者
..\..\HARDWARE\USART3\usart3.c(69): error:  #20: identifier "USART3_IRQn" is undefined
..\..\USMART\usmart.c(254): error:  #20: identifier "TIM4_IRQn" is undefined
樓主,為何程序編譯之后會出現這樣錯誤
回復

使用道具 舉報

22#
ID:497661 發表于 2021-1-19 09:22 | 只看該作者
啊哈哈哈哈,編程5分鐘組裝2小時
回復

使用道具 舉報

23#
ID:894943 發表于 2021-5-7 11:41 | 只看該作者
給樓主大贊,有助于新手練習!
回復

使用道具 舉報

24#
ID:81196 發表于 2021-5-11 16:47 | 只看該作者
很好的一個歷程
回復

使用道具 舉報

25#
ID:242753 發表于 2021-5-12 07:21 | 只看該作者
空氣質量用什么測的?
回復

使用道具 舉報

26#
ID:286053 發表于 2021-5-15 22:08 | 只看該作者
牛啊牛啊,跟我想的一樣,先學習了
回復

使用道具 舉報

27#
ID:1066368 發表于 2023-3-13 16:18 | 只看該作者
oled屏用六腳的可以嗎
回復

使用道具 舉報

28#
ID:291668 發表于 2023-3-14 09:28 | 只看該作者
好!實用小東西
回復

使用道具 舉報

29#
ID:291668 發表于 2023-4-20 14:45 | 只看該作者
有圖有真相,實力證明!
回復

使用道具 舉報

30#
ID:641483 發表于 2023-5-12 14:32 | 只看該作者
樓主牛  我就是為了想自己能做個簡單的半自動系統學單片機,還在研究51
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人av观看 | 国产一区久久 | 免费天天干 | 天天拍天天射 | 国产精品永久 | 亚洲精品中文字幕 | 日韩欧美三级在线 | 亚洲欧洲成人在线 | 成人在线免费 | 国产一区不卡 | 亚洲中午字幕 | 日韩在线电影 | 国产精品a一区二区三区网址 | 欧美日韩精品久久久免费观看 | 久久99精品国产99久久6男男 | 欧美一区二区三区视频在线播放 | 日本 欧美 三级 高清 视频 | 91精品久久 | 日韩久久久久久 | 久久性av | 日韩免费在线观看视频 | 岛国在线免费观看 | 成人一区精品 | 97精品超碰一区二区三区 | 久久久久亚洲视频 | 色精品视频 | 99精品免费久久久久久久久日本 | 日韩成人免费av | 精品少妇v888av | 一区中文字幕 | 日本网站在线看 | 精品国产一区二区三区久久久久久 | 伊人网在线播放 | 亚洲综合在线一区 | 久久激情视频 | 国产精品久久国产精品99 gif | 国产一级视频在线观看 | 99热欧美 | 精品久久网 | 亚洲欧美网 | 99资源站|