本文適用于STM32F103C8T6等MCU,其他MCU可以移植,完整資源見文末鏈接
一、簡介
隨著移動(dòng)物聯(lián)網(wǎng)的發(fā)展,各場(chǎng)景下對(duì)于物聯(lián)控制、數(shù)據(jù)上傳、遠(yuǎn)程控制的訴求也越來越多,基于此樂鑫科技推出了便宜好用性價(jià)比極高的wifi物聯(lián)模塊——ESP8266,話不多少我們先來看看這個(gè)神奇的模塊長什么樣子!
下圖是ESP8266-01模塊,與之對(duì)應(yīng)的還有ESP8266-01S,兩者基本一致,只是后者內(nèi)部集成了上拉電阻,ESP8266-01使用的時(shí)候需要手動(dòng)接上拉電阻(CH_PD管腳接10k上拉電阻)
除了上述簡單的wifi模塊外,還有如下圖所示的WIFI模組,具有更多的IO和控制資源
ESP8266是智能家居等物聯(lián)網(wǎng)場(chǎng)景下常用的數(shù)傳模塊,具有強(qiáng)大的功能,通過串口轉(zhuǎn)WIFI的方式可實(shí)現(xiàn)遠(yuǎn)距離無線數(shù)據(jù)傳輸、遠(yuǎn)程控制、在線查詢等基本物聯(lián)網(wǎng)訴求!
ESP8266模塊有兩種模式:
模式一:連網(wǎng)傳輸數(shù)據(jù),就是連接你家中的路由器,即Station模式,本文主要基于該模式進(jìn)行介紹
模式二:這個(gè)模塊本身作為一個(gè)熱點(diǎn)來讓你的手機(jī)連接它,即AP模式
如果要徹底搞懂這個(gè)模塊還需要了解AT指令集和mqtt協(xié)議,這些相對(duì)比較復(fù)雜,不在此展開,本文直接上干活,爭(zhēng)取用最短的時(shí)間教會(huì)大家做出項(xiàng)目,并可以按照自己的需求修改
本系列文章就基于ESP8266-01S+STM32F103進(jìn)行簡單的數(shù)傳/控制介紹,從而了解ESP8266的基本功能。內(nèi)容比較多,我盡量每一步詳細(xì)說明,請(qǐng)耐心看完。
二、電氣特性
產(chǎn)品參數(shù)如下:
注意:模塊電壓為3.0-3.6V,不可直接用5V供電,電流大于500mA,需要單獨(dú)供電
模塊管腳定義:
三、透?jìng)髟O(shè)置
透?jìng)髦饕獮榱嗽O(shè)置開機(jī)自動(dòng)透?jìng)?,斷線自動(dòng)重連,可實(shí)現(xiàn)數(shù)據(jù)連續(xù)上傳,透?jìng)髟O(shè)置包括配置(1)WiFi名稱(2)WiFi密碼,這個(gè)設(shè)置對(duì)于后續(xù)數(shù)據(jù)自動(dòng)上傳至關(guān)重要,若WiFi信息更改需要重新透?jìng)髟O(shè)置。
常用的透?jìng)髟O(shè)置包括 接下來就重點(diǎn)介紹利用串口助手進(jìn)行數(shù)據(jù)透?jìng)髟O(shè)置,準(zhǔn)備工作如下: 手動(dòng)透?jìng)鹘泳€說明 接線圖 查詢固件版本 完成以上命令重啟,自動(dòng)進(jìn)入透?jìng)髂J?,并連接貝殼物聯(lián)服務(wù)器 如果固件是V1.0+版本,在串口助手中輸入以下命令進(jìn)行透?jìng)髟O(shè)置(本文使用的固件刷新方法) 前面介紹了ESP8266模塊并完成透?jìng)髟O(shè)置,接下來就可以連接STM32單片機(jī)進(jìn)行數(shù)據(jù)上傳顯示了,這里以STM32F103C8T6單片機(jī)為例說明,其他MCU也是類似的。STM32采集DHT11溫濕度數(shù)據(jù),然后再通過串口傳輸給ESP8266,通過wifi傳輸給服務(wù)器端顯示。 ESP8266-01S和STM32F103C8T6接線圖 DHT11和STM32F103C8T6接線圖 系統(tǒng)框圖 進(jìn)入網(wǎng)站首頁,點(diǎn)擊右上角“注冊(cè)”、“登錄”擁有自己的賬號(hào) 注冊(cè)成功后主頁面顯示如下,注意這里面的 “ID”和“APIKEY” 這兩個(gè)參數(shù)是和你添加智能設(shè)備后就有的,不會(huì)改變,后面代碼中會(huì)用到 如果需要添加新的智能設(shè)備的話,可以在“智能設(shè)備”——“添加設(shè)備”中添加 由于是要將傳感器采集到的溫濕度數(shù)據(jù)上傳到貝殼物聯(lián)服務(wù)器中,所以這里面需要用到數(shù)據(jù)接口,如下所示,可以點(diǎn)擊“添加接口”進(jìn)行新增 添加配置完接口后顯示如下,可以任意配置接口,但是需要注意的每個(gè)接口都有唯一一個(gè)"ID",這個(gè)ID很重要,后續(xù)代碼中會(huì)體現(xiàn)出來 上述全部配置完成后,把我們的程序下載到STM32中,即可在數(shù)據(jù)頁面顯示對(duì)應(yīng)的溫濕度數(shù)值,數(shù)據(jù)顯示界面入口如下: STM32代碼下載:(完整代碼資源及串口助手見文末鏈接) 其中“DEVICEID”和“APIKEY”就是你網(wǎng)站注冊(cè)后的數(shù)據(jù) 服務(wù)器網(wǎng)站對(duì)應(yīng)參數(shù)截圖 配置對(duì)應(yīng)數(shù)據(jù)顯示接口 服務(wù)器網(wǎng)站對(duì)應(yīng)參數(shù)截圖 以DHT11溫濕度數(shù)據(jù)上傳為例,間隔幾十秒顯示一次數(shù)據(jù),間隔時(shí)間可修改 STM32--ESP8266物聯(lián)網(wǎng)WIFI模塊(貝殼物聯(lián))--溫濕度數(shù)據(jù)上傳服務(wù)器顯示文章來源:http://www.zghlxwxcb.cn/news/detail-476738.html 代碼打開路徑:bigiotSTM32-master\bigiot\Project\STM32F10x_LED\MDK-ARM\Project 到了這里,關(guān)于STM32--ESP8266物聯(lián)網(wǎng)WIFI模塊(貝殼物聯(lián))--溫濕度數(shù)據(jù)上傳服務(wù)器顯示的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!
(1)手動(dòng)透?jìng)鳎航柚谥?AT指令配置——本文介紹透?jìng)鞣绞?/strong>
(2)自動(dòng)透?jìng)鳎哼@里主要借助Arduino單片機(jī)實(shí)現(xiàn)配置,如果這個(gè)單片機(jī)不熟悉的話建議選擇方式一手動(dòng)透?jìng)?/p>
(1)串口助手軟件(文末附資源鏈接)
(2)USB轉(zhuǎn)串口模塊,某寶上搜索有很多**USB模塊供電不夠,需要單獨(dú)外部供電**
(3)服務(wù)器網(wǎng)站(本文選用“貝殼物聯(lián)”,網(wǎng)址:https://www.bigiot.net/)
ESP8266-01S
USB轉(zhuǎn)串口模塊
VCC
3V3(注意:透?jìng)髟O(shè)置時(shí)模塊功耗高,需外部供電)
GND
GND
RXD
TXD
TXD
RXD
CH_PD
如果使用ESP8266-01需要接10K上拉,-01s無需接線
檢測(cè)ESP8266模塊是否正常
在串口助手中發(fā)送"AT"指令,如果返回“OK”則表示正常啟動(dòng),否則需要檢查下接線是否正確,電源及RXD/TXD是否接反,以及模塊單體是否損壞
使用"AT+GMR"命令查詢當(dāng)前固件版本:
通過命令透?jìng)髟O(shè)置
如果固件是V0.9.5.2版本,在串口助手中依次輸入以下命令進(jìn)行透?jìng)髟O(shè)置//設(shè)置WiFi應(yīng)用模式為Station
AT+CWMODE=1
//連接到WiFi路由器,請(qǐng)將SSID替換為路由器名稱,Password替換為路由器WiFi密碼(也可以是手機(jī)熱點(diǎn))
AT+CWJAP="SSID","Password"
//連接貝殼物聯(lián)服務(wù)器
AT+CIPSTART="TCP","www.bigiot.net",8181
//設(shè)置為透?jìng)髂J?/span>
AT+CIPMODE=1
//進(jìn)入透?jìng)髂J?/span>
AT+CIPSEND
其中,SSID是路由器名稱,Password是路由器WiFi密碼,其他不需要修改+++
AT
ATE0
AT+RESTORE
AT+CWMODE=3
//連接到WiFi路由器,請(qǐng)將SSID替換為路由器名稱,Password替換為路由器WiFi密碼
AT+CWJAP="SSID","Password"
AT+CIPMUX=0
AT+CIPMODE=1
//這塊是貝殼物聯(lián)網(wǎng)站地址,不用修改
AT+SAVETRANSLINK=1,"121.42.180.30",8181,"TCP"
自此,ESP8266透?jìng)髟O(shè)置完成,后面連接單片機(jī)后就可以正常傳輸數(shù)據(jù)了四、溫濕度數(shù)據(jù)上傳顯示
ESP8266-01S
STM32F103C8T6
VCC
3V3(電流大于500mA,需獨(dú)立供電)
GND
GND
RXD
PA9
TXD
PA10
CH_PD
ESP8266-01需要接10K上拉,-01s不需要
DHT11
STM32F103C8T6
VCC
3V3
GND
GND
DATA
PA8
基于DHT11模塊的溫濕度數(shù)據(jù)傳輸框圖如下所示,STM32接收到溫濕度數(shù)據(jù)后再將數(shù)據(jù)通過串口傳輸給ESP8266模塊,然后再傳輸給貝殼物聯(lián)
貝殼物聯(lián)服務(wù)器端設(shè)置
STM32和ESP8266配置好還只是數(shù)傳的開始,只是硬件模塊搭建好了,若想實(shí)現(xiàn)數(shù)據(jù)上傳服務(wù)器端,還需要對(duì)服務(wù)器端進(jìn)行設(shè)置,本文以貝殼物聯(lián)為例進(jìn)行說明,網(wǎng)站鏈接如下:
https://www.bigiot.net/
代碼打開路徑:bigiotSTM32-master\bigiot\Project\STM32F10x_LED\MDK-ARM\Project/*以下兩個(gè)變量必須修改為自己的設(shè)備ID及APIKEY,在貝殼物聯(lián)用戶中心添加設(shè)備即可獲得*/
char *DEVICEID = "30017";
char *APIKEY = "90e6c4964";
if(ReceiveState == 1)
{
ReceiveState = 0;
i = 0;
processMessage(aRxBuffer);
//其中30017就是設(shè)備ID,26630是獨(dú)立的數(shù)據(jù)顯示接口地址,不同顯示接口有對(duì)應(yīng)不同的地址
update1("30017","26630",temp);
RxCounter = 0;
}
五、結(jié)果展示
視頻展示如下(高清視頻請(qǐng)前往嗶哩嗶哩觀看)完整代碼鏈接:
百度網(wǎng)盤下載
鏈接: https://pan.baidu.com/s/1cVvkJJhgMXOqvALUiWFsQw
提取碼: xfd9文章來源地址http://www.zghlxwxcb.cn/news/detail-476738.html