物聯(lián)網(wǎng)(一)---快速上手[STM32+OneNET+ESP8266]

物聯(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)的。


共享單車如何實現(xià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)品。

添加產(chǎn)品

Step 2:填寫產(chǎn)品信息

填寫產(chǎn)品信息

Step 3:添加設(shè)備

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

點擊添加設(shè)備

【注】:一個產(chǎn)品可以添加很多設(shè)備。


填寫設(shè)備信息

下面兩個信息比較重要,需要記下來,程序中要用到(突然忘了程序中忘了刪了)

設(shè)備添加完成
還需要用到APIKEY

Step 4:添加Web APP

添加Web APP

填寫Web APP信息

然后就會出現(xiàn)在這了

點擊進去做一個簡單的APP,拖框框就好了。


目前是空白APP

Step 5: 編輯Web APP,到時候就在此交互

點擊折線圖控件添加第一個控件

這里自己多去摸索一下,比較簡單,需要注意的就是下面的數(shù)據(jù)流的選擇。


這里因為設(shè)備還沒下載程序,故沒有數(shù)據(jù)流顯示在此,設(shè)備成功聯(lián)網(wǎng)后會在此顯示出來

創(chuàng)建好之后也可以美化一下。

記得點保存按鈕。。。

記得點保存按鈕。。。

記得點保存按鈕。。。

到此服務(wù)端就創(chuàng)建完成了,其中不能出錯的信息是:
1.APIkey;
2.DeviceID;
3.連接方式(本文中是HTTP);

2.2 硬件電路連接

ESP8266是通過串口的方式與單片機通信的,ESP8266可以去樂鑫官網(wǎng)下載PDF文件詳細了解

ESP8266連接方式---別人的圖

這部分比較簡單,就是常規(guī)的串口通信,和接CH340沒什么不同。

硬件電路實物如下:


可以直接使用別的模塊或者自己設(shè)計電路

沒有開發(fā)板的話可以使用下面的組合:


STM32最小系統(tǒng)

ESP8266

由于我使用的SHT20溫濕度傳感器,使用的人可能不多,這個沒關(guān)系,到時候使用for循環(huán)產(chǎn)生一些數(shù)據(jù)上傳就好了。

我的程序中使用的是USART2與ESP8266相連接,USART1作為DEBUG用,輸出調(diào)試參數(shù),這個根據(jù)需要修改吧。

2.3 程序修改

下面這兩個參數(shù)須修改成自己的APIKEY和DeviceID,不能出錯,否則連接不上平臺,


image.png

然后再修改下你ESP8266所要連接的WIFI名稱和密碼,注意切換了文件。


image.png

修改好上面的參數(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的大?。?br> 4.下載程序后記得復位單片機;

以上步驟確認無誤的話ESP8266將會把for循環(huán)產(chǎn)生的數(shù)據(jù)上傳到OneNET官網(wǎng),然后去Web APP中選擇曲線對應(yīng)得數(shù)據(jù)流。
選擇好之后就可以在Web APP中看到對應(yīng)的數(shù)據(jù)了,如下圖:


image.png

【注】:如果你顯示的數(shù)據(jù)只有3個數(shù)據(jù)點,則需要去樣式->X軸中修改數(shù)據(jù)點的個數(shù)。

完成后就可以看到數(shù)據(jù)了,像下面這樣:


image.png

這樣就完成了單片機將數(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.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容