步驟1:簡介
每當(dāng)我們有一個(gè)需要一些數(shù)據(jù)顯示的項(xiàng)目時(shí)并記錄下來,通常需要在網(wǎng)絡(luò)上提供數(shù)據(jù)。這樣我們就可以遠(yuǎn)程監(jiān)控對(duì)象的狀態(tài),甚至可以從世界上任何地方控制我們的設(shè)備。
在此項(xiàng)目中,我們將使用帶有ESP8266 12e模塊的NodeMCU v1.0板。此外,我們需要使用可以托管Laravel應(yīng)用程序的計(jì)算機(jī)。如果你想了解如何設(shè)置這樣的環(huán)境,請(qǐng)檢查我的視頻。
第2步:準(zhǔn)備Laravel應(yīng)用程序
我們的第一步是通過Composer安裝Laravel。我不會(huì)詳細(xì)介紹如何執(zhí)行此操作,因?yàn)槲臋n詳細(xì)解釋了這一點(diǎn),您可以在此處找到它。
為了保持此演示簡單,在Laravel中我們將記錄從Arduino到文本文件,以便我們稍后查看。為此,我們首先要在“ api.php ”文件中創(chuàng)建一個(gè)新的POST路由。在回調(diào)中,我們將注入請(qǐng)求詳細(xì)信息,以便稍后檢索發(fā)送的參數(shù)。
要寫入文件,我使用Laravel的Storage Facade及其方便的附加方法。調(diào)用此方法時(shí),會(huì)接收文件名和字符串?dāng)?shù)據(jù),并將此數(shù)據(jù)添加到指定文件中。如果該文件不存在,則在第一次調(diào)用時(shí)創(chuàng)建該文件。
我們?cè)诿恳恍兄袑懭氲臄?shù)據(jù)由當(dāng)前日期和時(shí)間組成,后跟溫度和濕度的請(qǐng)求值。如果你有多個(gè)這樣的值,你可以為所有這些值重復(fù)相同的檢索過程。
步驟3:準(zhǔn)備Arduino發(fā)送者
現(xiàn)在讓我們看一下Arduino代碼和數(shù)據(jù)發(fā)送。
為了使NodeMCU板能夠連接到我們的WiFi并發(fā)送請(qǐng)求,我們首先需要在頂部包含幾個(gè)庫。接下來,我們需要指定我們連接到的網(wǎng)絡(luò)的SSID及其密碼。如果您使用帶有以太網(wǎng)屏蔽的Uno,那么您的過程將會(huì)有所不同。
此外,我們?cè)谶@里保存我們剛剛創(chuàng)建的Laravel服務(wù)器的根URL。在我的情況下,這是我本地計(jì)算機(jī)的IP地址,但您可以添加任何可訪問代碼的主機(jī)URL。
在設(shè)置功能中,我們啟動(dòng)串行通信,以便我們可以監(jiān)控正在進(jìn)行的操作。此外,我們需要設(shè)置NodeMCU板,以便它可以正確連接到WiFi。完成后,我們可以啟動(dòng)連接并等待,直到我們從路由器收到IP地址。
在此示例中,我實(shí)際上沒有將任何傳感器連接到板上。相反,我只是使用隨機(jī)函數(shù)生成一些隨機(jī)數(shù)據(jù),而我正在發(fā)送它。
此數(shù)據(jù)需要以查詢字符串的形式準(zhǔn)備,在HTTP請(qǐng)求啟動(dòng)后,我們需要使用HTTP客戶端上的POST方法發(fā)送它。我們之前添加的標(biāo)題是讓服務(wù)器知道請(qǐng)求中需要收集的數(shù)據(jù)。
因此,我們首先獲取HTTP狀態(tài)代碼,然后獲取響應(yīng)有效負(fù)載。如果一切順利,我們應(yīng)該獲得200作為代碼,并且由于我們沒有從Laravel應(yīng)用程序返回任何內(nèi)容,因此有效負(fù)載將為空。
如果由于某種原因狀態(tài)代碼不是200,那么有效負(fù)載通常會(huì)包含發(fā)生的錯(cuò)誤消息。
最后,我們需要確保關(guān)閉請(qǐng)求并等待一段時(shí)間,在我們的示例中為5秒再次執(zhí)行相同的過程。
結(jié)果是我們?cè)诿看蔚鷷r(shí)都會(huì)將這些值保存在文本文件中,以便我們以后可以使用它來顯示它或?qū)⑵溆成涞綀D表上。
第4步:進(jìn)一步的步驟
如您所見,該過程相當(dāng)簡單,可以輕松擴(kuò)展以讀取來自不同傳感器的值并可能將其寫入在數(shù)據(jù)庫中。你可以用它構(gòu)建的結(jié)果僅限于你的想象力。為了幫助您入門,下面是示例中使用的完整源代碼的鏈接。
https://github.com/bkolicoski/arduino-laravel-comm 。..
責(zé)任編輯:wv
-
Arduino
+關(guān)注
關(guān)注
188文章
6485瀏覽量
189698 -
laravel
+關(guān)注
關(guān)注
0文章
26瀏覽量
2418
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
將ADS8556采集到的數(shù)據(jù)通過McBSP發(fā)送到C28346,BUSY/INT和RESET這兩個(gè)引腳應(yīng)該接什么?
TSW1400EVM可以將數(shù)據(jù)暫存到ram里然后再發(fā)送到上位機(jī)嗎?
MAX9877將數(shù)據(jù)發(fā)送到NVM中,發(fā)送數(shù)據(jù)時(shí),必須要填滿128個(gè)字節(jié)嗎?
ESP-12 ESP8266如何通過I2C將SSID和RSSI信息發(fā)送到RPi / Arduino?
如何通過SD卡將TXT文件發(fā)送到網(wǎng)頁ESP8266?
如何將多個(gè)ESP連接到一個(gè)ESP并向服務(wù)器發(fā)送數(shù)據(jù)?
將UDP數(shù)據(jù)包發(fā)送到廣播IP地址時(shí)遇到的疑問求解
將ESP與UNO連接,無法將數(shù)據(jù)發(fā)送到遠(yuǎn)程服務(wù)器是哪里的問題?
ESP12E使用AT cmd向服務(wù)器傳輸數(shù)據(jù)的最大速度是多少?有什么限制嗎?
如何將AP憑據(jù)從移動(dòng)設(shè)備發(fā)送到ESP模塊?
如何在i2c中將hello world發(fā)送到LCD屏幕?
可以使用JSON將prov-config參數(shù)從網(wǎng)頁發(fā)送到esp8266嗎?
如何將連接到FPGA的攝像頭數(shù)據(jù)發(fā)送到主機(jī)PC?
第20433條西班牙皇家法令,V-16制造商如何將V-16 信號(hào)數(shù)據(jù)發(fā)送到國家接入點(diǎn)DGT

評(píng)論