步驟1:簡介
每當我們有一個需要一些數據顯示的項目時并記錄下來,通常需要在網絡上提供數據。這樣我們就可以遠程監(jiān)控對象的狀態(tài),甚至可以從世界上任何地方控制我們的設備。
在此項目中,我們將使用帶有ESP8266 12e模塊的NodeMCU v1.0板。此外,我們需要使用可以托管Laravel應用程序的計算機。如果你想了解如何設置這樣的環(huán)境,請檢查我的視頻。
第2步:準備Laravel應用程序


我們的第一步是通過Composer安裝Laravel。我不會詳細介紹如何執(zhí)行此操作,因為文檔詳細解釋了這一點,您可以在此處找到它。
為了保持此演示簡單,在Laravel中我們將記錄從Arduino到文本文件,以便我們稍后查看。為此,我們首先要在“ api.php ”文件中創(chuàng)建一個新的POST路由。在回調中,我們將注入請求詳細信息,以便稍后檢索發(fā)送的參數。
要寫入文件,我使用Laravel的Storage Facade及其方便的附加方法。調用此方法時,會接收文件名和字符串數據,并將此數據添加到指定文件中。如果該文件不存在,則在第一次調用時創(chuàng)建該文件。
我們在每一行中寫入的數據由當前日期和時間組成,后跟溫度和濕度的請求值。如果你有多個這樣的值,你可以為所有這些值重復相同的檢索過程。
步驟3:準備Arduino發(fā)送者


現在讓我們看一下Arduino代碼和數據發(fā)送。
為了使NodeMCU板能夠連接到我們的WiFi并發(fā)送請求,我們首先需要在頂部包含幾個庫。接下來,我們需要指定我們連接到的網絡的SSID及其密碼。如果您使用帶有以太網屏蔽的Uno,那么您的過程將會有所不同。
此外,我們在這里保存我們剛剛創(chuàng)建的Laravel服務器的根URL。在我的情況下,這是我本地計算機的IP地址,但您可以添加任何可訪問代碼的主機URL。
在設置功能中,我們啟動串行通信,以便我們可以監(jiān)控正在進行的操作。此外,我們需要設置NodeMCU板,以便它可以正確連接到WiFi。完成后,我們可以啟動連接并等待,直到我們從路由器收到IP地址。
在此示例中,我實際上沒有將任何傳感器連接到板上。相反,我只是使用隨機函數生成一些隨機數據,而我正在發(fā)送它。
此數據需要以查詢字符串的形式準備,在HTTP請求啟動后,我們需要使用HTTP客戶端上的POST方法發(fā)送它。我們之前添加的標題是讓服務器知道請求中需要收集的數據。
因此,我們首先獲取HTTP狀態(tài)代碼,然后獲取響應有效負載。如果一切順利,我們應該獲得200作為代碼,并且由于我們沒有從Laravel應用程序返回任何內容,因此有效負載將為空。
如果由于某種原因狀態(tài)代碼不是200,那么有效負載通常會包含發(fā)生的錯誤消息。
最后,我們需要確保關閉請求并等待一段時間,在我們的示例中為5秒再次執(zhí)行相同的過程。
結果是我們在每次迭代時都會將這些值保存在文本文件中,以便我們以后可以使用它來顯示它或將其映射到圖表上。
第4步:進一步的步驟

如您所見,該過程相當簡單,可以輕松擴展以讀取來自不同傳感器的值并可能將其寫入在數據庫中。你可以用它構建的結果僅限于你的想象力。為了幫助您入門,下面是示例中使用的完整源代碼的鏈接。
https://github.com/bkolicoski/arduino-laravel-comm 。..
責任編輯:wv
-
Arduino
+關注
關注
190文章
6526瀏覽量
196972 -
laravel
+關注
關注
0文章
26瀏覽量
2621
發(fā)布評論請先 登錄
如何將Arduino中的數據發(fā)送到Laravel應用程序
評論