步驟1:簡(jiǎn)介
每當(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),您可以在此處找到它。
為了保持此演示簡(jiǎ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)簡(jiǎn)單,可以輕松擴(kuò)展以讀取來自不同傳感器的值并可能將其寫入在數(shù)據(jù)庫中。你可以用它構(gòu)建的結(jié)果僅限于你的想象力。為了幫助您入門,下面是示例中使用的完整源代碼的鏈接。
https://github.com/bkolicoski/arduino-laravel-comm 。..
責(zé)任編輯:wv
-
Arduino
+關(guān)注
關(guān)注
190文章
6498瀏覽量
192126 -
laravel
+關(guān)注
關(guān)注
0文章
26瀏覽量
2481
發(fā)布評(píng)論請(qǐng)先 登錄
如何將Flash刷寫程序放到SRAM中運(yùn)行?
如何使用 CYW20829 將獲得的傳感器數(shù)據(jù)發(fā)送到廣播中?
如何將VCP功能添加到UVC應(yīng)用程序代碼中?
如何將小于1024字節(jié)的緩沖區(qū)從FPGA發(fā)送到PC?
CYUSB3017是否可以在系統(tǒng)運(yùn)行時(shí)向SX3發(fā)送命令,然后SX3將這些命令轉(zhuǎn)換為I2C命令并將其發(fā)送到FPGA?
FreeRTOS讀取ADS1299數(shù)據(jù)有誤
stm32f103用freertos對(duì)一個(gè)采樣率為1kHz的傳感器,進(jìn)行采樣,數(shù)據(jù)出差
將ADS8556采集到的數(shù)據(jù)通過McBSP發(fā)送到C28346,BUSY/INT和RESET這兩個(gè)引腳應(yīng)該接什么?
TSW1400EVM可以將數(shù)據(jù)暫存到ram里然后再發(fā)送到上位機(jī)嗎?
如何處理CPU亂序調(diào)度中的內(nèi)存數(shù)據(jù)依賴

評(píng)論