|
STM32F103C8T6+溫濕度+光照+壓力檢測傳感器,esp8266上傳數據到手機APP顯示實時數據,舵機用來模擬門和窗戶的開閉。文件含有原理圖PCB。
1. 修改esp8266.c下的wifi
2. 修改onenet.c下的PROID、ACCESS_KEY_key和DEVICE_NAME
其中DEVICE_NAME為自定義參數
51hei.png (68.35 KB, 下載次數: 27)
下載附件
2024-3-27 15:25 上傳
單片機源程序如下:
- //單片機頭文件
- #include "stm32f10x.h"
- //網絡協議層
- #include "onenet.h"
- //網絡設備
- #include "esp8266.h"
- //硬件驅動
- #include "delay.h"
- #include "usart.h"
- #include "beep.h"
- #include "DHT11.h"
- #include "bh1750.h"
- #include "adc_1.h"
- #include "adc_2.h"
- #include "oled_iic.h"
- #include "timer.h"
- //C庫
- #include <string.h>
- #define ESP8266_ONENET_INFO "AT+CIPSTART=\"TCP\",\"mqtts.heclouds.com\",1883\r\n"
- u8 temp, humi; //定義溫度濕度
- u16 MQ2Value; //定義煙霧濃度
- float vol; //定義壓力電壓
- /*
- ************************************************************
- * 函數名稱: Hardware_Init
- *
- * 函數功能: 硬件初始化
- ************************************************************
- */
- void Hardware_Init(void)
- {
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷控制器分組設置
- Delay_Init(); //systick初始化
-
- Usart1_Init(115200); //串口1,打印信息用
- Usart2_Init(115200); //串口2,驅動ESP8266用
-
- Beep_Init(); //蜂鳴器初始化
- Init_BH1750(); //光照初始化
- Adc_Init(); //MQ-4初始化
- ADCx_Init(); //壓力傳感器初始化
- PWM_Init(9999,143); //PWM初始化
-
- OLED_Init(); //顯示屏初始化
- OLED_Clear();
-
- SG90Init(); //舵機復位
-
- }
- /*
- ************************************************************
- * 函數名稱: NET_Init
- *
- * 函數功能: 上位機連接初始化
- ************************************************************
- */
- void NET_Init()
- {
- ESP8266_Init(); //初始化ESP8266
-
- UsartPrintf(USART_DEBUG, "Connect MQTTs Server...\r\n");
- while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT"))
- DelayXms(500);
- UsartPrintf(USART_DEBUG, "Connect MQTTs Server Sucessful\r\n");
-
- while(OneNet_DevLink()) //接入OneNET
- DelayXms(500);
-
- OneNET_Subscribe();
- }
- /*
- ************************************************************
- * 函數名稱: main
- *
- * 函數功能:
- ************************************************************
- */
- int main(void)
- {
-
- unsigned short timeCount = 0; //發送間隔變量
-
- unsigned char *dataPtr = NULL;
-
- Hardware_Init(); //初始化外圍硬件
- UsartPrintf(USART_DEBUG, " Hardware Init OK\r\n");
-
- OLED_LOAD_Init(); //加載頁面
- NET_Init();
- OLED_Clear();
-
- while(1)
- {
- DHT11_ReadData(&temp, &humi); //讀取溫濕度
- read_BH1750(); //讀取照度
- MQ2Value = GetMQ2Value(); //讀取氣體濃度
- vol = GetRushValue();
-
- if(++timeCount >= 40) //發送間隔20s
- {
- OneNet_SendData(); //發送數據
-
- timeCount = 0;
- ESP8266_Clear();
- }
-
- UsartPrintf(USART_DEBUG, "humi:%d temp:%d light:%0.2f mq4:%d vol:%0.2f\r\n", humi, temp, bh1750_info.temp1, MQ2Value, vol);
-
- OLED_ON_Init(); //顯示內容
- Beep_Beep_Set(); //危險報警提示
-
- dataPtr = ESP8266_GetIPD(0);
- if(dataPtr != NULL)
- OneNet_RevPro(dataPtr);
- DelayXms(1);
-
- }
- }
復制代碼 僅供參考,存在錯誤和不足之處,請大家回帖多多指教,不勝感激.切勿照搬,文件下載:
代碼:
程序.zip
(476.92 KB, 下載次數: 18)
2024-3-22 09:52 上傳
點擊文件名下載附件
程序 下載積分: 黑幣 -5
APP.7z
(12.4 MB, 下載次數: 13)
2024-3-22 09:52 上傳
點擊文件名下載附件
上位機 下載積分: 黑幣 -5
|
-
-
PCB_Project.zip
2024-4-3 14:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
651.28 KB, 下載次數: 12, 下載積分: 黑幣 -5
PCB原理圖
評分
-
查看全部評分
|