自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于N32G45智能家居平臺(tái)

系統(tǒng) OpenHarmony
本次項(xiàng)目采用騰訊物聯(lián)網(wǎng)平臺(tái)+微信小程序騰訊連連實(shí)現(xiàn)遠(yuǎn)程控制。本地采集溫度數(shù)據(jù)和濕度數(shù)據(jù),設(shè)置溫濕度報(bào)警閾值,超過(guò)設(shè)定值即可通過(guò)蜂鳴器報(bào)警。微信小程序可遠(yuǎn)程控制開(kāi)發(fā)板的硬件設(shè)備。

??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

1、項(xiàng)目功能

本次項(xiàng)目采用騰訊物聯(lián)網(wǎng)平臺(tái)+微信小程序騰訊連連實(shí)現(xiàn)遠(yuǎn)程控制。本地采集溫度數(shù)據(jù)和濕度數(shù)據(jù),設(shè)置溫濕度報(bào)警閾值,超過(guò)設(shè)定值即可通過(guò)蜂鳴器報(bào)警。微信小程序可遠(yuǎn)程控制開(kāi)發(fā)板的硬件設(shè)備。OLED屏幕實(shí)時(shí)顯示采集到的數(shù)據(jù)顯示,采用兩頁(yè)顯示方式,第一頁(yè)顯示實(shí)時(shí)時(shí)間,第二頁(yè)顯示環(huán)境溫濕度數(shù)據(jù),可通過(guò)按鍵切換。板子上電即可自動(dòng)完成WIFI連接,在WIFI密碼修改的情況下課實(shí)現(xiàn)手機(jī)一鍵配網(wǎng),從而實(shí)現(xiàn)騰訊云平臺(tái)接入。連接成功后屏幕界面默認(rèn)顯示當(dāng)前實(shí)時(shí)時(shí)間。時(shí)間校準(zhǔn)可現(xiàn)在網(wǎng)絡(luò)校時(shí)或串口校時(shí)。

(1)硬件模塊

  1. 溫濕度模塊DHT11完成環(huán)境溫濕度采集。
  2. ESP8266 WIFI模塊完成騰訊云平臺(tái)接口。
  3. 0.96寸OLED屏幕顯示實(shí)時(shí)數(shù)據(jù)信息。
  4. 按鍵實(shí)現(xiàn)界面切換(溫濕度界面和時(shí)間顯示界面切換)。
  5. LED燈配合微信小程序?qū)崿F(xiàn)遠(yuǎn)程控制。
  6. 蜂鳴器報(bào)警提示。

(2)效果展示

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

2、物聯(lián)聯(lián)網(wǎng)平臺(tái)

物聯(lián)網(wǎng)平臺(tái)也被稱為應(yīng)用支撐平臺(tái)或者智能管理平臺(tái)。它是一個(gè)中間層,主要位于物聯(lián)網(wǎng)設(shè)備層和物聯(lián)網(wǎng)網(wǎng)關(guān)(和數(shù)據(jù))層之間。采用的通訊協(xié)議為MQTT。

MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議),是一種基于發(fā)布/訂閱(Publish/Subscribe)模式的輕量級(jí)通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT最大的優(yōu)點(diǎn)在于可以以極少的代碼和有限的帶寬,為遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服務(wù)。做為一種低開(kāi)銷、低帶寬占用的即時(shí)通訊協(xié)議,MQTT在物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等方面有廣泛的應(yīng)用。MQTT屬于應(yīng)用層協(xié)議。最新版本為MQTT v5.0標(biāo)準(zhǔn)。本次連接騰訊云物聯(lián)網(wǎng)平臺(tái)主要以MQTT標(biāo)準(zhǔn)協(xié)議3.1版本為主。

MQTT(消息隊(duì)列遙測(cè)傳輸)是ISO 標(biāo)準(zhǔn)(ISO/IEC PRF 20922)下基于發(fā)布/訂閱范式的消息協(xié)議。它工作在 TCP/IP協(xié)議族上,是為硬件性能低下的遠(yuǎn)程設(shè)備以及網(wǎng)絡(luò)狀況糟糕的情況下而設(shè)計(jì)的發(fā)布/訂閱型消息協(xié)議,為此,它需要一個(gè)消息中間件。

(1)騰訊云平臺(tái)配置

注冊(cè)騰訊云賬號(hào),登陸云平臺(tái)

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

搜索物聯(lián)網(wǎng)平臺(tái),登錄物聯(lián)網(wǎng)平臺(tái)。

創(chuàng)建項(xiàng)目

進(jìn)入物聯(lián)網(wǎng)控制臺(tái)。

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

創(chuàng)建項(xiàng)目:

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

創(chuàng)建產(chǎn)品:

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

創(chuàng)建產(chǎn)品功能

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

連接物理網(wǎng)平臺(tái)的三個(gè)參數(shù):設(shè)備名字、產(chǎn)品ID、設(shè)備秘鑰。

//設(shè)備名,產(chǎn)品ID,設(shè)備秘鑰修改為自己所創(chuàng)建產(chǎn)品參數(shù)
#define DeviceName "Smart_123"//設(shè)備名
#define ProductID "LA57WL612"//產(chǎn)品ID
#define DeviceSceret "9JHiCQ5668uZlVDuQ2ZnQ=="//設(shè)備秘鑰

創(chuàng)建工程,連接騰訊物聯(lián)網(wǎng)平臺(tái)

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

用戶名和密鑰生成:

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

//服務(wù)器IP:{PRODUCT_ID}.iotcloud.tencentdevices.com   ---PRODUCT_ID對(duì)應(yīng)產(chǎn)品ID
#define SERVER_IP "LA57WL612.iotcloud.tencentdevices.com"//服務(wù)器IP
#define SERVER_PORT 1883 //端口號(hào)
//客戶端ID:{產(chǎn)品ID}{設(shè)備名}
#define ClientID "LA57WL612Smart_123"
//用戶名和秘鑰可使用秘鑰生成工具完成
#define Username "LA57WL612Smart_123;12010126;R05S3;1621619622"
#define Password "9ebe0d0069ac4dd1e9e98664abc9f726c13b5a150190afdfa7b3c12240ff1e73;hmacsha256"//密文
//訂閱主題:$thing/down/property/{ProductID}/{DeviceName} ---{ProductID}產(chǎn)品ID,{DeviceName}設(shè)備名
#define SET_TOPIC "$thing/down/property/LA57WL612/Smart_123"//訂閱

主題訂閱

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

//訂閱主題:$thing/down/property/{ProductID}/{DeviceName} ---{ProductID}產(chǎn)品ID,{DeviceName}設(shè)備名
#define SET_TOPIC "$thing/down/property/LA57WL612/Smart_123"//訂閱
//發(fā)布主題:$thing/up/property/{ProductID}/{DeviceName}
#define POST_TOPIC "$thing/up/property/LA57WL612/Smart_123"//發(fā)布

(2)配置ESP8266WIFI

ESP8266是一款高性能的WIFI串口模塊,內(nèi)部集成MCU能實(shí)現(xiàn)單片機(jī)之間串口通信,是目前使用最廣泛的一種WIFI模塊之一。可以簡(jiǎn)單理解為一個(gè)WIFI轉(zhuǎn)串口的設(shè)備,不用知道太多WIFI相關(guān)知識(shí),只需要知道串口怎么使用就可以。

ESP8266 支持 softAP 模式,station 模式,softAP + station 共存模式三種。利用 ESP8266 可以實(shí)現(xiàn)十分靈活的組網(wǎng)方式和網(wǎng)絡(luò)拓?fù)?。(SoftAP:即無(wú)線接入點(diǎn),是一個(gè)無(wú)線網(wǎng)絡(luò)的中心節(jié)點(diǎn)。通常使用的無(wú)線路由器就是一個(gè)無(wú)線接入點(diǎn)。Station:即無(wú)線終端,是一個(gè)無(wú)線網(wǎng)絡(luò)的終端端。)。

本次采用模式為T(mén)CP+STA方式:

#define WIFI_NAME "wbyq"//WIFI名
#define WIFI_PASSWORD "asdfghjkl23"//wifi密碼
char mqtt_message[200];//上報(bào)數(shù)據(jù)緩存區(qū)
int main()
{
int i=0;
u8 stat=0;
u32 time=0;
u16 cnt=0;
float temp;
Beep_Init();//蜂鳴器初始化
Led_Init();//LED初始化
Key_Init();//按鍵初始化
Usartx_Init(USART1,115200,72);
Usartx_Init(USART3,115200,36);
TIMx_Init(TIM2,72,20000);//通過(guò)定時(shí)器2輔助串口接收數(shù)據(jù),20ms
TIMx_Init(TIM4,72,20000);//通過(guò)定時(shí)器2輔助串口接收數(shù)據(jù),20ms
DS18B20_Init();
// RTC_Init();//RTC初始化
printf("初始化完成\r\n");
while(1)
{
stat=Esp8266_STA_TCPclinet_Init((u8 *)WIFI_NAME,(u8 *)WIFI_PASSWORD,(u8 *)SERVER_IP,SERVER_PORT);
if(stat==0)break;
Delay_Ms(500);
printf("stat=%d\r\n",stat);
}
printf("服務(wù)器連接成功\r\n");
while(1)
{
MQTT_Init();
stat=MQTT_Connect(ClientID,Username,Password);
if(stat==0)break;
Delay_Ms(500);
printf("正在連接....\r\n");
}
printf("連接成功\r\n");
stat=MQTT_SubscribeTopic(SET_TOPIC,0,1);
if(stat)printf("訂閱失敗\r\n");
else printf("訂閱成功\r\n");
while(1)
{
if(usart3_flag)
{
for(i=0;i<usart3_cnt;i++)
{
printf("%c",usart3_rx_buff[i]);
}
usart3_cnt=0;
usart3_flag=0;
}
Delay_Ms(1);
time++;
cnt++;
if(time>=5000)
{
time=0;
MQTT_SentHeart();//發(fā)送心跳包
}
if(cnt>=1000)
{
cnt=0;
temp=DS18B20_GetTemp()*0.0625;
sprintf(mqtt_message,"{\"method\":\"report\",\"clientToken\":\"123\",\"params\":{\"LED1\":1,\"temp\":%.2f,\"L\":356}}",temp);//溫度
MQTT_PublishData(POST_TOPIC,mqtt_message,0);
}
}
}

(3)設(shè)備上報(bào)數(shù)據(jù)格式

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

{
"method":"report",//上報(bào)設(shè)備屬性
"clientToken":"123",//消息配對(duì)標(biāo)識(shí)
"timestamp":1212121221, //可不填,默認(rèn)為系統(tǒng)時(shí)間
"params":{
"power_switch":1, //設(shè)備屬性power_switch
"color":1, //設(shè)備屬性color
"brightness":32 //設(shè)備屬性brightness
}
}

至此,云服務(wù)器創(chuàng)建成功,WIFI模式配置完成,云端接入成功。

3、無(wú)源蜂鳴器控制

無(wú)源蜂鳴器利用電磁感應(yīng)現(xiàn)象,為音圈接入交變電流后形成的電磁鐵與永磁鐵相吸或相斥而推動(dòng)振膜發(fā)聲,接入直流電只能持續(xù)推動(dòng)振膜而無(wú)法產(chǎn)生聲音,只能在接通或斷開(kāi)時(shí)產(chǎn)生聲音。通過(guò)2K~5k的方波信號(hào)實(shí)現(xiàn)驅(qū)動(dòng)。

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

本次采用定時(shí)器3通道1實(shí)現(xiàn)無(wú)源蜂蜜器驅(qū)動(dòng)。

/***********************************
**
**函數(shù)功能:定時(shí)器器PWM輸出
**TIM3通道引腳:
** 沒(méi)有重映射 部分重映射 完全重映射
** TIM3_CH1 PA6 PB4 PC6
** TIM3_CH2 PA7 PB5 PC7
**形參:
** chx --要開(kāi)啟的通道(1 --通道1,2--通道2, 3 --表示開(kāi)啟通道1和通道2)
** psc --預(yù)分頻系數(shù)
** ar --重裝載值(即周期時(shí)間)
** ccr --占空比
** 注意:本示例采用部分重映射功能
**作者:IT_阿水
************************************/
void TIM3_PWM_Out(u8 chx,u16 psc,u16 ar,u16 ccr)
{
/*1.開(kāi)時(shí)鐘*/
RCC->APB2PCLKEN|=1<<4;//PB
RCC->APB2PCLKEN|=1<<0;//AFIO
AFIO->RMP_CFG&=~(0x3<<10);
AFIO->RMP_CFG|=0X3<<10;//完全重映像

/*2.配置GPIO*/
GPIOC->PL_CFG&=0xF0FFFFFF;
GPIOC->PL_CFG |=0x0B000000;//通用復(fù)用推挽輸出模式
/*3.定時(shí)器配置*/
RCC->APB1PCLKEN|=1<<1;//TIM3
RCC->APB1PRST|=1<<1;//開(kāi)啟復(fù)位時(shí)鐘
RCC->APB1PRST&=~(1<<1);//取消復(fù)位
TIM3->CTRL1|=1<<7;
TIM3->PSC=psc-1;//預(yù)分頻
TIM3->AR=ar;//重裝載值

/*輸出PWM配置*/
if(chx&0x1)
{
TIM3->CCMOD1&=~(0x3<<0);//輸出
TIM3->CCMOD1|=1<<2;//快速使能
TIM3->CCMOD1|=1<<3;//預(yù)加載
TIM3->CCMOD1|=0x6<<4;//PWM0
TIM3->CCDAT1=ccr;//占空比,有效電平時(shí)間
TIM3->CCEN|=1<<0;//開(kāi)啟CH1
}
if(chx&1<<1)//CH2
{
TIM3->CCMOD1&=~(0x3<<8);//輸出
TIM3->CCMOD1|=1<<10;//快速使能
TIM3->CCMOD1|=1<<11;//預(yù)加載
TIM3->CCMOD1|=0x6<<12;//PWM0
TIM3->CCDAT2=ccr;//占空比,有效電平時(shí)間
TIM3->CCEN|=1<<4;//開(kāi)啟CH2
}
TIM3->CTRL1|=1<<0;//開(kāi)啟定時(shí)器
}

4、DTH11溫濕度傳感器

DHT11 數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有枀高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電容式感濕元件和一個(gè) NTC 測(cè)溫元件,并與一個(gè)高性能 8 位單片機(jī)相連接。

 #創(chuàng)作者激勵(lì)#基于N32G45智能家居平臺(tái)-開(kāi)源基礎(chǔ)軟件社區(qū)

//從DHT11讀取一次數(shù)據(jù)
//temp:溫度值-20~60℃
//humi:濕度值5~95%RH
//返回值:0,正常;1,讀取失敗
u8 DHT11_Read_Data(u8 *temp,u8 *humi)
{
u8 buf[5]={0};
u8 i;
DHT11_Rst();//起始信號(hào)
if(DHT11_Check()==0)//應(yīng)答信號(hào)
{
for(i=0;i<5;i++)//讀取40位數(shù)據(jù)
{
buf[i]=DHT11_Read_Byte();
}
if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
{
*humi++=buf[0];
*humi=buf[1];
*temp++=buf[2];
*temp=buf[3];
}
}else return 1;
return 0;
}

5、RTC電子鐘

RTC,英文全稱:Real-time clock,中文名稱:實(shí)時(shí)時(shí)鐘,是指可以像時(shí)鐘一様輸出實(shí)際時(shí)間的電子設(shè)備,一般會(huì)是集成電路,因此也稱為時(shí)鐘芯片。實(shí)時(shí)時(shí)鐘芯片是日常生活中應(yīng)用最為廣泛的消費(fèi)類電子產(chǎn)品之一。它為人們提供精確的實(shí)時(shí)時(shí)間,或者為電子系統(tǒng)提供精確的時(shí)間基準(zhǔn),目前實(shí)時(shí)時(shí)鐘芯片大多采用精度較高的晶體振蕩器作為時(shí)鐘源。

本次采用的是芯片自帶電子鐘,配置好后直接即可讀取時(shí)間信息,非常方便。

/*讀取RTC時(shí)間和日期*/
void RTC_GetDate(RTC_TIME *RTC_Time)
{
u32 date=RTC->DATE;
u32 tsh=RTC->TSH;
RTC_Time->year=((date>>20)&0xf)*10+ ((date>>16)&0xf);
RTC_Time->mon=((date>>12)&0x1)*10+ ((date>>8)&0xf);
RTC_Time->day=((date>>4)&0x3)*10+(date&0xf);
RTC_Time->week=((date>>13)&0x7);
//時(shí)間,注意,+-優(yōu)先級(jí) 高于 &的優(yōu)先級(jí)
RTC_Time->hour=((tsh>>20)&0x3)*10+((tsh>>16)&0xf);
RTC_Time->min=((tsh>>12)&0x7)*10+((tsh>>8)&0xf);
RTC_Time->sec=((tsh>>4)&0x7)*10+(tsh&0xf);
// printf("%d/%d/%d -- %d:%d:%d \r\n",RTC_Time->year,RTC_Time->mon,RTC_Time->day, \
RTC_Time->hour,RTC_Time->min,RTC_Time->sec);
}

文章相關(guān)附件可以點(diǎn)擊下面的原文鏈接前往下載:

 https://ost.51cto.com/resource/2567。

??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

責(zé)任編輯:jianghua 來(lái)源: 51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2019-12-24 19:31:27

智能家居物聯(lián)網(wǎng)技術(shù)

2023-03-13 10:26:10

5G智能家居

2012-07-23 10:37:17

2020-10-23 15:54:07

5G智能家居技術(shù)

2023-10-12 11:27:42

智能家居人工智能

2015-09-28 09:37:49

2022-07-01 10:28:24

智能家居網(wǎng)絡(luò)安全漏洞

2023-08-21 09:46:33

5G技術(shù)智能家居

2021-01-15 15:36:32

人工智能智能家居機(jī)器人

2022-05-25 10:03:38

機(jī)器人智能家居

2022-03-21 15:42:36

智能家居物聯(lián)網(wǎng)MQTT

2015-09-10 11:48:00

聯(lián)盟秘書(shū)處

2014-06-10 09:34:08

2023-06-25 11:40:38

2021-12-13 22:50:16

物聯(lián)網(wǎng)智能家居數(shù)據(jù)

2021-02-07 11:36:44

智能家居物聯(lián)網(wǎng)IOT

2020-08-11 10:44:46

智能家居物聯(lián)網(wǎng)IOT

2023-05-16 09:53:18

ChatGPT人工智能

2019-04-24 12:22:05

2023-10-19 14:44:42

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)