久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于STM32單片機的智能家居監控系統程序
[打印本頁]
作者:
1234898
時間:
2024-7-29 12:44
標題:
基于STM32單片機的智能家居監控系統程序
#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) //當按鍵1按下,進入閾值設置界面
{
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; //進行溫度閾值修改
Humidity_Flag = 0;
Lux_Flag = 0;
}
else if(KeyValue == 2) //當按鍵2按下
{
}
else if(KeyValue == 3) //當按鍵3按下
{
}
else if(KeyValue == 4) //當按鍵4按下
{
}
//----------------------------------- Smart Home主界面 END -----------------------------------
//----------------------------------- 閾值設置界面 BEGIN -----------------------------------
while(ParaSet_Flag == 1)
{
KeyValue = Key_Scan();
if(KeyValue == 1) //當按鍵1按下,退出閾值設置界面
{
ParaSet_Flag = 0;
OLED_Clear();
OLED_ShowString(0,0,"Smart Home",16);
}
else if(KeyValue == 2) //當按鍵2按下,上下移動選擇需要設置的閾值
{
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;//進行濕度閾值修改
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; //進行光照閾值修改
}
else
{
JumpCnt = 0;
OLED_ShowString(86,0,"*",16);
OLED_ShowString(86,2," ",16);
OLED_ShowString(86,4," ",16);
Temperature_Flag = 1;//進行溫度閾值修改
Humidity_Flag = 0;
Lux_Flag = 0;
}
}
else if(KeyValue == 3) //當按鍵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) //當按鍵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);
}
}
}
//----------------------------------- 閾值設置界面 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);
}
}
}
復制代碼
原理圖: 無
仿真: 無
代碼:
STM32_Iot_OK.7z
(188.33 KB, 下載次數: 22)
2024-7-29 15:39 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
1234898
時間:
2024-7-29 12:44
(1)基本功能 實現溫濕度、光照的數據采集并上傳至云平臺 可以通過按鍵和APP對相關設備進行自動或手動控制; 數據在OLED屏幕以及APP顯示
作者:
1234898
時間:
2024-7-29 12:45
涉及知識儲備:
1. C語言語法
2. STM32F1標準庫的使用,GPIO、USART、TIMER、I2C
3. ESP8266-01S (重點)
4. MQTT協議(重點)
5. 云平臺(重點)
作者:
1234898
時間:
2024-7-29 12:45
元器件清單
1、面包板
2、STM32F103C8T6最小系統
3、杜邦線
4、ESP8266-01S
5、按鍵
6、OLED屏
7、USB-TTL(CH340)模塊
軟件:
1、Keil
2、串口調試助手
作者:
1234898
時間:
2024-7-29 12:45
目標:
1、移植OLED驅動代碼(I2C為例)
2、實現一個按鍵循環切換3個頁面
目標:
1、創建4個文件,KEY.c KEY.h LED.c LED.h
2、實現按鍵通過點亮STM32F103C8T6的PC13 LED
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久性色
|
日韩欧美国产成人
|
可以看的毛片
|
久久精品国产成人av
|
一区二区三区成人
|
欧美一级片在线观看
|
91精品成人
|
欧美成人免费在线视频
|
久久精品伊人
|
色综合久久久久
|
日韩一区在线播放
|
日韩精品欧美
|
国产成人一区
|
国产无遮挡又黄又爽又色
|
午夜影院在线观看视频
|
a天堂在线视频
|
天天视频国产
|
亚洲一区二区三区在线
|
欧美日韩一二三
|
国产一区在线播放
|
四虎在线观看
|
日韩欧美一级
|
一级片网址
|
aa一级片
|
国产精品aaa
|
国产一区二区观看
|
国产成人精品一区二
|
热久久免费视频
|
免费亚洲婷婷
|
亚洲女人毛茸茸
|
香蕉视频免费看
|
日韩黄色一级视频
|
日本在线免费视频
|
欧美一级特黄视频
|
成人毛片100免费观看
|
www.日本高清
|
精品国产99久久久久久宅男i
|
91av视频在线
|
日韩1级片
|
男女啪啪免费网站
|
伊人久久精品
|