物聯(lián)網(wǎng)(一)---快速上手[STM32+OneNET+ESP8266]
物聯(lián)網(wǎng)(二)---原理分析[STM32+OneNET+ESP8266]
物聯(lián)網(wǎng)(三)---WEB下發(fā)命令控制單片機[STM32+OneNET+ESP8266]
物聯(lián)網(wǎng)(四)---搭建自己的TCP服務(wù)器[ESP8266]
物聯(lián)網(wǎng)(五)---搭建自己的云平臺[ESP8266+Django]
本文:
1.將對物聯(lián)網(wǎng)(IOT:Internet Of Things
)作出簡單的介紹。
2.如何快速建立起硬件與網(wǎng)絡(luò)的連接卵凑,即實現(xiàn)自己的物聯(lián)網(wǎng)設(shè)備庆聘。
一勺卢、物聯(lián)網(wǎng)簡介
物聯(lián)網(wǎng)設(shè)備種類繁多象对,最為常見的就是手機,手機如何聯(lián)網(wǎng)的勒魔?現(xiàn)在又多了共享單車,想必這是最為簡單的物聯(lián)網(wǎng)產(chǎn)品了冠绢。下面以圖片的形式來介紹共享單車如何聯(lián)網(wǎng)的。
我覺得這幅圖應(yīng)該能描繪出一個大概的輪廓了弟胀。
個人對物聯(lián)網(wǎng)的想法:
物聯(lián)網(wǎng)終將以各種形式走進千家萬戶,時間早晚罷了孵户,如今5G網(wǎng)絡(luò)的出現(xiàn)可能會加速這一進程,但終究不是必需品夏哭,還缺乏一個好產(chǎn)品來徹底打開這一塊市場检柬。
二何址、快速實現(xiàn)一個自己的物聯(lián)網(wǎng)設(shè)備
材料:
1.STM32單片機(Arduino、51等其他單片機也OK进胯,甚至不要也沒關(guān)系)× 1;
2.ESP8266模塊(因為這里內(nèi)置了單片機)× 1龄减;
3.其他開發(fā)單片機的必要設(shè)備;
4.OneNET物聯(lián)網(wǎng)云平臺(其他平臺也OK希停,像機智云、tp-link宠能、樂為物聯(lián)、貝殼物聯(lián)等都行)违崇;
5.本文中使用到的程序源碼程序源碼阿弃;
[注]:需具備一點點硬件知識和一點點軟件知識。
2.1 配置服務(wù)端
Step 1:添加產(chǎn)品渣淳。
Step 2:填寫產(chǎn)品信息
Step 3:添加設(shè)備
【注】:一個產(chǎn)品可以添加很多設(shè)備。
下面兩個信息比較重要鄙漏,需要記下來,程序中要用到(突然忘了程序中忘了刪了)
Step 4:添加Web APP
點擊進去做一個簡單的APP怔蚌,拖框框就好了旁赊。
Step 5: 編輯Web APP,到時候就在此交互
這里自己多去摸索一下,比較簡單终畅,需要注意的就是下面的數(shù)據(jù)流的選擇。
創(chuàng)建好之后也可以美化一下术徊。
記得點保存按鈕。赠涮。子寓。
記得點保存按鈕斜友。。垃它。
記得點保存按鈕。国拇。。
到此服務(wù)端就創(chuàng)建完成了酱吝,其中不能出錯的信息是:
1.APIkey;
2.DeviceID;
3.連接方式(本文中是HTTP)也殖;
2.2 硬件電路連接
ESP8266是通過串口的方式與單片機通信的务热,ESP8266可以去樂鑫官網(wǎng)下載PDF文件詳細了解
這部分比較簡單己儒,就是常規(guī)的串口通信捆毫,和接CH340沒什么不同。
硬件電路實物如下:
沒有開發(fā)板的話可以使用下面的組合:
由于我使用的SHT20溫濕度傳感器冻璃,使用的人可能不多,這個沒關(guān)系省艳,到時候使用for循環(huán)產(chǎn)生一些數(shù)據(jù)上傳就好了嫁审。
我的程序中使用的是USART2與ESP8266相連接,USART1作為DEBUG用律适,輸出調(diào)試參數(shù)辐烂,這個根據(jù)需要修改吧捂贿。
2.3 程序修改
下面這兩個參數(shù)須修改成自己的APIKEY和DeviceID,不能出錯,否則連接不上平臺厂僧,
然后再修改下你ESP8266所要連接的WIFI名稱和密碼,注意切換了文件颜屠。
修改好上面的參數(shù)后,再把程序里上傳的溫濕度修改成使用for循環(huán)產(chǎn)生數(shù)據(jù)甫窟,像下面這樣:
while(1)
{
/* 獲取溫濕度 */
/*
SHT2x_MeasureHM(SHT20_Measurement_T_HM, &temp);
mDelay(500);
SHT2x_MeasureHM(SHT20_Measurement_RH_HM, &humi);
*/
if(for_count < 10){
temp = for_count;
humi = for_count-2;
for_count++;
}
else{
for_count = 2;
}
/* 轉(zhuǎn)化為字符串形式 */
sprintf(tempStr, "%d", temp);
sprintf(humiStr, "%d", humi);
//printf("%s %s\r\n", tempStr, humiStr);
USART2_Clear();
len = HTTP_PostPkt(HTTP_Buf, API_KEY, DEV_ID, "temp", tempStr); //HTTP組包
USART2_Write(USART2, (unsigned char *)(HTTP_Buf), len); //報文發(fā)送
printf("send HTTP msg:\r\n%s\r\n", HTTP_Buf);
mDelay(1000);
printf("rcv response:\r\n%s\r\n", usart2_rcv_buf);
USART2_Clear();
len = HTTP_PostPkt(HTTP_Buf, API_KEY, DEV_ID, "humi", humiStr); //HTTP組包
USART2_Write(USART2, (unsigned char *)(HTTP_Buf), len); //報文發(fā)送
printf("send HTTP msg:\r\n%s\r\n", HTTP_Buf);
mDelay(1000);
printf("rcv response:\r\n%s\r\n", usart2_rcv_buf);
mDelay(3000);
}
將編寫好的程序下載至單片機中,這里需要注意的是:
1.確定好你的單片機型號粗井;
2.確定你的下載方式尔破;
3.確定你單片機RAM的大薪匠摹;
4.下載程序后記得復位單片機径玖;
以上步驟確認無誤的話ESP8266將會把for循環(huán)產(chǎn)生的數(shù)據(jù)上傳到OneNET官網(wǎng)痴脾,然后去Web APP中選擇曲線對應(yīng)得數(shù)據(jù)流梳星。
選擇好之后就可以在Web APP中看到對應(yīng)的數(shù)據(jù)了滚朵,如下圖:
【注】:如果你顯示的數(shù)據(jù)只有3個數(shù)據(jù)點前域,則需要去樣式->X軸中修改數(shù)據(jù)點的個數(shù)。
完成后就可以看到數(shù)據(jù)了匿垄,像下面這樣:
這樣就完成了單片機將數(shù)據(jù)上傳到網(wǎng)上的步驟移宅,當然這個過程是單向的椿疗,只能上傳數(shù)據(jù),不能在云平臺上下發(fā)數(shù)據(jù)届榄,因為使用HTTP協(xié)議只能由客戶端向服務(wù)器端發(fā)起請求,服務(wù)器是不能主動向客戶端發(fā)送數(shù)據(jù)的铝条。如果需要從云平臺上下發(fā)命令來控制單片機的話還需對程序進行一些修改靖苇,比如:換一種協(xié)議班缰,能夠使服務(wù)器向客戶端發(fā)送數(shù)據(jù),具體如何實現(xiàn)埠忘,可以查看本文集下的其他同類進階文章。
END.