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

評論