步驟1:我用的東西
對(duì)于我的試用,我想使用ESP8266讀取數(shù)字溫度計(jì)并將結(jié)果傳輸?shù)骄W(wǎng)站以進(jìn)行可視化。
這是我用的東西:
1個(gè)ESP8266-E12
1個(gè)與Arduino兼容的DS18B20數(shù)字溫度傳感器
1個(gè)3.7v鋰離子電池(
第2步:連接一切
好吧,我不會(huì)講究所有的棘手問(wèn)題,因?yàn)槟抢镉懈玫恼f(shuō)明,但是所附的圖是一個(gè)很好的起點(diǎn)
主要要點(diǎn)是:
1。我用一個(gè)迷你面包板將ESP和溫度計(jì)連接到電池上。
2。我使用了USB到TTL轉(zhuǎn)換器(也從速賣(mài)通購(gòu)買(mǎi))。將您的代碼上傳到ESP板使生活變得輕松愉快。
3。 Arduino IDE用來(lái)編寫(xiě)和上傳程序
第3步:Arduino代碼
所以這就是ESP8266的美。我們可以完全避免使用arduino板,而只使用ESP本身。
我的程序很簡(jiǎn)單:
1。讀取溫度傳感器
2。將數(shù)據(jù)發(fā)送到網(wǎng)頁(yè)
3。將ESP板置于睡眠模式。
第3步是最關(guān)鍵的,因?yàn)槲覀兿M撾姵匾揽侩姵剡\(yùn)行,并因此使用盡可能少的功率。為此,我們調(diào)用ESP的deepSleep()命令,并為該函數(shù)傳遞持續(xù)時(shí)間以喚醒它。結(jié)果,程序只運(yùn)行一次,并且只能運(yùn)行到deepSleep()命令。當(dāng)板卡喚醒時(shí),它將執(zhí)行重置并再次啟動(dòng)程序。
以下是主要代碼段:
溫度= sensor.getTempCByIndex(0);
t = Temperature.toFloat()* 100;
//我將其乘以100,以便可以將完整的整數(shù)傳遞給網(wǎng)頁(yè)
///在網(wǎng)頁(yè)上,我再除以100得到完整的十進(jìn)制值。
溫度=字符串(t);
//為什么選擇“ byIndex”?//同一總線(xiàn)上可以有多個(gè)IC。
//0表示線(xiàn)路上的第一個(gè)IC
sendToWeb(Temperature);////我的網(wǎng)頁(yè)是一個(gè)簡(jiǎn)單的PHP頁(yè)面,需要一個(gè)參數(shù)
///我只是簡(jiǎn)單地執(zhí)行HTTP GET來(lái)傳遞數(shù)據(jù)。
ESP.deepSleep(SLEEPTIMEINSECONDS * 1000000) ;
延遲(1000);//永遠(yuǎn)不要到達(dá)這里
第4步:網(wǎng)頁(yè)
該網(wǎng)站由兩個(gè)方面組成:
1。一個(gè)接受溫度信息的PHP頁(yè)面,并將數(shù)據(jù)與溫度讀數(shù)的相應(yīng)日期和時(shí)間一起寫(xiě)入txt文件。當(dāng)心您的Web服務(wù)器所在的時(shí)區(qū)。我發(fā)現(xiàn)我的網(wǎng)站位于美國(guó)的某個(gè)地方(我在歐洲),并保存了美國(guó)當(dāng)?shù)氐娜掌跁r(shí)間。通過(guò)在PHP代碼中設(shè)置時(shí)區(qū),可以輕松解決此問(wèn)題。
2。顯示溫度圖表的HTML + javscript頁(yè)面。
這有點(diǎn)棘手,因?yàn)槲覜](méi)有開(kāi)發(fā)網(wǎng)站圖表的經(jīng)驗(yàn)。但這就是Internet和開(kāi)放源碼之美的體現(xiàn)。我很快通過(guò)www.amcharts.com/javascript-charts找到了一個(gè)超酷的javascript圖表庫(kù)。圖書(shū)館員真是太好了!我使用了免費(fèi)版本,還能夠找到有關(guān)如何加載txt文件的示例。稍作調(diào)整,我就在屏幕上顯示了我的溫度數(shù)據(jù),并能夠放大和縮小。
-
溫度傳感器
+關(guān)注
關(guān)注
48文章
2975瀏覽量
156391 -
LED顯示屏
+關(guān)注
關(guān)注
36文章
1826瀏覽量
99215 -
ESP8266
+關(guān)注
關(guān)注
50文章
962瀏覽量
45337
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論