找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2094|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

STM32單片機(jī)智能安防系統(tǒng)程序 溫濕度+光照

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
STM32F103C8T6+溫濕度+光照+壓力檢測(cè)傳感器,esp8266上傳數(shù)據(jù)到手機(jī)APP顯示實(shí)時(shí)數(shù)據(jù),舵機(jī)用來模擬門和窗戶的開閉。文件含有原理圖PCB。
1.    修改esp8266.c下的wifi
2.    修改onenet.c下的PROID、ACCESS_KEY_key和DEVICE_NAME
其中DEVICE_NAME為自定義參數(shù)


單片機(jī)源程序如下:
  1. //單片機(jī)頭文件
  2. #include "stm32f10x.h"

  3. //網(wǎng)絡(luò)協(xié)議層
  4. #include "onenet.h"

  5. //網(wǎng)絡(luò)設(shè)備
  6. #include "esp8266.h"

  7. //硬件驅(qū)動(dòng)
  8. #include "delay.h"
  9. #include "usart.h"
  10. #include "beep.h"
  11. #include "DHT11.h"
  12. #include "bh1750.h"
  13. #include "adc_1.h"
  14. #include "adc_2.h"
  15. #include "oled_iic.h"
  16. #include "timer.h"

  17. //C庫(kù)
  18. #include <string.h>

  19. #define ESP8266_ONENET_INFO                "AT+CIPSTART=\"TCP\",\"mqtts.heclouds.com\",1883\r\n"

  20. u8 temp, humi; //定義溫度濕度
  21. u16 MQ2Value;  //定義煙霧濃度
  22. float vol;  //定義壓力電壓
  23. /*
  24. ************************************************************
  25. *        函數(shù)名稱:        Hardware_Init
  26. *
  27. *        函數(shù)功能:        硬件初始化
  28. ************************************************************
  29. */
  30. void Hardware_Init(void)
  31. {
  32.         
  33.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);        //中斷控制器分組設(shè)置

  34.         Delay_Init();                                                                        //systick初始化
  35.         
  36.         Usart1_Init(115200);                                                        //串口1,打印信息用
  37.         Usart2_Init(115200);                                                        //串口2,驅(qū)動(dòng)ESP8266用
  38.         
  39.         Beep_Init();                                                                        //蜂鳴器初始化
  40.         Init_BH1750();                //光照初始化
  41.         Adc_Init();                   //MQ-4初始化
  42.         ADCx_Init();                                                                        //壓力傳感器初始化
  43.         PWM_Init(9999,143);                                                //PWM初始化
  44.         
  45.         OLED_Init();                                                                        //顯示屏初始化
  46.   OLED_Clear();
  47.         
  48.         SG90Init();                   //舵機(jī)復(fù)位
  49.         
  50. }
  51. /*
  52. ************************************************************
  53. *        函數(shù)名稱:        NET_Init
  54. *
  55. *        函數(shù)功能:        上位機(jī)連接初始化
  56. ************************************************************
  57. */
  58. void NET_Init()
  59. {
  60.                 ESP8266_Init();                                        //初始化ESP8266
  61.         
  62.         UsartPrintf(USART_DEBUG, "Connect MQTTs Server...\r\n");
  63.         while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT"))
  64.                 DelayXms(500);
  65.         UsartPrintf(USART_DEBUG, "Connect MQTTs Server Sucessful\r\n");
  66.         
  67.         while(OneNet_DevLink())                        //接入OneNET
  68.                 DelayXms(500);
  69.         
  70.         OneNET_Subscribe();
  71. }
  72. /*
  73. ************************************************************
  74. *        函數(shù)名稱:        main
  75. *
  76. *        函數(shù)功能:        
  77. ************************************************************
  78. */
  79. int main(void)
  80. {
  81.         
  82.         unsigned short timeCount = 0;        //發(fā)送間隔變量
  83.         
  84.         unsigned char *dataPtr = NULL;
  85.         
  86.         Hardware_Init();                                //初始化外圍硬件
  87.         UsartPrintf(USART_DEBUG, " Hardware Init OK\r\n");
  88.         
  89.         OLED_LOAD_Init();                //加載頁面
  90.         NET_Init();
  91.         OLED_Clear();
  92.         
  93.         while(1)
  94.         {
  95.                 DHT11_ReadData(&temp, &humi); //讀取溫濕度
  96.                 read_BH1750();                                                                //讀取照度
  97.                 MQ2Value = GetMQ2Value();                        //讀取氣體濃度
  98.                 vol = GetRushValue();
  99.                
  100.                 if(++timeCount >= 40)                                                                        //發(fā)送間隔20s
  101.                 {
  102.                         OneNet_SendData();                                                                        //發(fā)送數(shù)據(jù)
  103.                         
  104.                         timeCount = 0;
  105.                         ESP8266_Clear();
  106.                 }
  107.                
  108.                 UsartPrintf(USART_DEBUG, "humi:%d   temp:%d   light:%0.2f   mq4:%d  vol:%0.2f\r\n", humi, temp, bh1750_info.temp1, MQ2Value, vol);
  109.                
  110.                 OLED_ON_Init();                                //顯示內(nèi)容
  111.                 Beep_Beep_Set();                        //危險(xiǎn)報(bào)警提示
  112.                
  113.                 dataPtr = ESP8266_GetIPD(0);
  114.                 if(dataPtr != NULL)
  115.                         OneNet_RevPro(dataPtr);

  116.                 DelayXms(1);
  117.                
  118.         }

  119. }
復(fù)制代碼
僅供參考,存在錯(cuò)誤和不足之處,請(qǐng)大家回帖多多指教,不勝感激.切勿照搬,文件下載:

代碼: 程序.zip (476.92 KB, 下載次數(shù): 18)
APP.7z (12.4 MB, 下載次數(shù): 13)


PCB_Project.zip

651.28 KB, 下載次數(shù): 12, 下載積分: 黑幣 -5

PCB原理圖

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:262 發(fā)表于 2024-4-2 15:26 | 只看該作者
PCB_Project 里面只有2個(gè)庫(kù)文件?并沒有PCB   app到底是用哪一個(gè)呢?里有好像有幾個(gè)
回復(fù)

使用道具 舉報(bào)

板凳
ID:861056 發(fā)表于 2024-4-3 14:56 | 只看該作者
heicad 發(fā)表于 2024-4-2 15:26
PCB_Project 里面只有2個(gè)庫(kù)文件?并沒有PCB   app到底是用哪一個(gè)呢?里有好像有幾個(gè)

上傳錯(cuò)了 重新上傳
回復(fù)

使用道具 舉報(bào)

地板
ID:92810 發(fā)表于 2025-1-22 11:22 | 只看該作者
謝謝樓主分享了,請(qǐng)問樓主重新上傳了沒
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表