亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標(biāo)題:
基于STM32單片機(jī)的智能家居監(jiān)控系統(tǒng)程序
[打印本頁]
作者:
1234898
時間:
2024-7-29 12:44
標(biāo)題:
基于STM32單片機(jī)的智能家居監(jiān)控系統(tǒng)程序
#include "stm32f10x.h" // Device header
#include "Delay.h"
#include "KEY.h"
#include "LED.h"
#include "oled.h"
#include "dht11.h"
#include "esp8266.h"
#include "Timer2.h"
#include "AD.h"
uint8_t KeyValue;
uint8_t ParaSet_Flag;
uint8_t temperature;
uint8_t Humidity;
uint16_t LightLux;
uint8_t ERR;
uint8_t TempSet = 25,HumidSet = 25,LuxSet = 25;
uint8_t JumpCnt;
uint8_t Temperature_Flag;
uint8_t Humidity_Flag;
uint8_t Lux_Flag;
uint16_t Raw_LightLux; //原始光敏
int main(void)
{
Key_Init();
PC13_LED_Init();
// Usart2_Init(115200);
// DHT11_Init();
AD_Init();
Timer2_Init();
OLED_Init();
OLED_Clear();
OLED_ShowString(24,0,"Smart Home",16);
OLED_ShowString(0,2,"Temp: C",16);
OLED_ShowString(0,4,"Humid: %",16);
OLED_ShowString(0,6,"Lux: %",16);
OLED_ShowNum(40,2,temperature,2,16);
OLED_ShowNum(48,4,Humidity,2,16);
OLED_ShowNum(32,6,LightLux,2,16);
// do
// {
// ERR = WiFi_Connect_IoTServer();
//
// }while(ERR); //連接阿里云直到成功
while(1)
{
//----------------------------------- Smart Home主界面 BEGIN -----------------------------------
KeyValue = Key_Scan();
if(KeyValue == 1) //當(dāng)按鍵1按下,進(jìn)入閾值設(shè)置界面
{
ParaSet_Flag = 1;
OLED_Clear();
OLED_ShowString(0,0,"Temp:",16);
OLED_ShowString(86,0,"*",16);
OLED_ShowString(0,2,"Humid:",16);
OLED_ShowString(0,4,"Lux:",16);
OLED_ShowNum(40,0,TempSet,2,16);
OLED_ShowNum(48,2,HumidSet,2,16);
OLED_ShowNum(32,4,LuxSet,2,16);
Temperature_Flag = 1; //進(jìn)行溫度閾值修改
Humidity_Flag = 0;
Lux_Flag = 0;
}
else if(KeyValue == 2) //當(dāng)按鍵2按下
{
}
else if(KeyValue == 3) //當(dāng)按鍵3按下
{
}
else if(KeyValue == 4) //當(dāng)按鍵4按下
{
}
//----------------------------------- Smart Home主界面 END -----------------------------------
//----------------------------------- 閾值設(shè)置界面 BEGIN -----------------------------------
while(ParaSet_Flag == 1)
{
KeyValue = Key_Scan();
if(KeyValue == 1) //當(dāng)按鍵1按下,退出閾值設(shè)置界面
{
ParaSet_Flag = 0;
OLED_Clear();
OLED_ShowString(0,0,"Smart Home",16);
}
else if(KeyValue == 2) //當(dāng)按鍵2按下,上下移動選擇需要設(shè)置的閾值
{
JumpCnt++;
if(JumpCnt == 1)
{
OLED_ShowString(86,0," ",16);
OLED_ShowString(86,2,"*",16);
OLED_ShowString(86,4," ",16);
Temperature_Flag = 0;
Humidity_Flag = 1;//進(jìn)行濕度閾值修改
Lux_Flag = 0;
}
else if(JumpCnt == 2)
{
OLED_ShowString(86,0," ",16);
OLED_ShowString(86,2," ",16);
OLED_ShowString(86,4,"*",16);
Temperature_Flag = 0;
Humidity_Flag = 0;
Lux_Flag = 1; //進(jìn)行光照閾值修改
}
else
{
JumpCnt = 0;
OLED_ShowString(86,0,"*",16);
OLED_ShowString(86,2," ",16);
OLED_ShowString(86,4," ",16);
Temperature_Flag = 1;//進(jìn)行溫度閾值修改
Humidity_Flag = 0;
Lux_Flag = 0;
}
}
else if(KeyValue == 3) //當(dāng)按鍵3按下,閾值+
{
if(Temperature_Flag == 1)
{
TempSet++;
if(TempSet >= 99)
{
TempSet = 99;
}
OLED_ShowNum(40,0,TempSet,2,16);
}
else if(Humidity_Flag == 1)
{
HumidSet++;
if(HumidSet >= 99)
{
HumidSet = 99;
}
OLED_ShowNum(48,2,HumidSet,2,16);
}
else if(Lux_Flag == 1)
{
LuxSet++;
if(LuxSet >= 99)
{
LuxSet = 99;
}
OLED_ShowNum(32,4,LuxSet,2,16);
}
}
else if(KeyValue == 4) //當(dāng)按鍵4按下,閾值-
{
if(Temperature_Flag == 1)
{
if(TempSet <= 0) TempSet = 0;
else TempSet--;
OLED_ShowNum(40,0,TempSet,2,16);
}
else if(Humidity_Flag == 1)
{
if(HumidSet <= 0) HumidSet = 0;
else HumidSet--;
OLED_ShowNum(48,2,HumidSet,2,16);
}
else if(Lux_Flag == 1)
{
if(LuxSet <= 0) LuxSet = 0;
else LuxSet--;
OLED_ShowNum(32,4,LuxSet,2,16);
}
}
}
//----------------------------------- 閾值設(shè)置界面 END -----------------------------------
//----------------------------------- 自動控制界面 BEGIN ---------------------------------
//----------------------------------- 自動控制界面 END -----------------------------------
if(Timer2_5s_Flag == 1)
{
Timer2_5s_Flag = 0;
DHT11_Read_Data(&temperature, &Humidity); //讀取溫濕度值
Raw_LightLux=AD_GetValue(ADC_Channel_0); //光照值獲取
LightLux = (((float)(4095-Raw_LightLux) / 4095) * 100);
OLED_ShowString(0,2,"Temp: C",16);
OLED_ShowString(0,4,"Humid: %",16);
OLED_ShowString(0,6,"Lux: %",16);
OLED_ShowNum(40,2,temperature,2,16);
OLED_ShowNum(48,4,Humidity,2,16);
OLED_ShowNum(32,6,LightLux,2,16);
}
}
}
復(fù)制代碼
原理圖: 無
仿真: 無
代碼:
STM32_Iot_OK.7z
(188.33 KB, 下載次數(shù): 22)
2024-7-29 15:39 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
1234898
時間:
2024-7-29 12:44
(1)基本功能 實現(xiàn)溫濕度、光照的數(shù)據(jù)采集并上傳至云平臺 可以通過按鍵和APP對相關(guān)設(shè)備進(jìn)行自動或手動控制; 數(shù)據(jù)在OLED屏幕以及APP顯示
作者:
1234898
時間:
2024-7-29 12:45
涉及知識儲備:
1. C語言語法
2. STM32F1標(biāo)準(zhǔn)庫的使用,GPIO、USART、TIMER、I2C
3. ESP8266-01S (重點)
4. MQTT協(xié)議(重點)
5. 云平臺(重點)
作者:
1234898
時間:
2024-7-29 12:45
元器件清單
1、面包板
2、STM32F103C8T6最小系統(tǒng)
3、杜邦線
4、ESP8266-01S
5、按鍵
6、OLED屏
7、USB-TTL(CH340)模塊
軟件:
1、Keil
2、串口調(diào)試助手
作者:
1234898
時間:
2024-7-29 12:45
目標(biāo):
1、移植OLED驅(qū)動代碼(I2C為例)
2、實現(xiàn)一個按鍵循環(huán)切換3個頁面
目標(biāo):
1、創(chuàng)建4個文件,KEY.c KEY.h LED.c LED.h
2、實現(xiàn)按鍵通過點亮STM32F103C8T6的PC13 LED
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1