簡易物聯雲平台搭建原理

前排提醒:本人所有專欄文章均轉載自個人博客:

vvzero.com?

www.vvzero.com

轉載請註明作者和出處!

背景

沒什麼背景,純粹想玩。

需求分析

能夠在指定web頁面上查看我實驗室的溫濕度。

軟硬體資源準備

  • Arduino Uno (用於處理感測器數據並控制網路擴展板)

  • W5100網路擴展板(實際上任何兼容Arduino的網路模塊均可)

  • 同一區域網的frp client主機一台(用於內網穿透)
  • DHT11溫濕度模塊(或者其他感測器)

  • 公網frp主機(用於搭建物聯雲及內網穿透)
  • 公網Nginx主機(可與frp共用)
  • 路由器(網關)

具體操作

感測器端搭建

將W5100網路擴展板插在Arduino Uno上,然後將DHT11模塊連接至Arduino,信號線接至數字2號口。

以下是本人的成品圖。

將網路模塊連接至路由器。

刷入以下代碼。

#include <SPI.h>#include <Ethernet.h> //網路模塊頭文件#include <dht11.h> //溫濕度模塊庫文件#define SENSORPIN 2 //定義感測器引腳//定義本機MAC地址和IP,IP子網必須與區域網一致byte mac[] = { 0xDE, 0xAD, 0xBE, 0xE8, 0xFE, 0xED };IPAddress ip(192, 168, 1, 30);dht11 sensor;EthernetServer server(80); //開啟80埠void setup() { Serial.begin(115200); //串口用於監控 Ethernet.begin(mac, ip); server.begin();}void loop() { EthernetClient client = server.available(); //當有連接傳入,即開始傳遞數據 if (client) { Serial.println("Incoming...
"); if (client.connected()) { //等待客戶端請求結束 while (client.available()) { char charget = client.read(); Serial.write(charget); } sensor.read(SENSORPIN); //讀取溫濕度數據 //返回html頁面 client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println(); client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("Here is Villivateur Vons laboratory!"); client.println("<br />"); client.println("<br />"); client.println("<br />"); client.println("Humidity (%): "); client.println("<br />"); client.println((float)sensor.humidity, 2); client.println("<br />"); client.println("<br />"); client.println("Temperature (C): "); client.println("<br />"); client.println((float)sensor.temperature, 2); client.println("<br />"); client.println("</html>"); } delay(1); client.stop(); Serial.println("client disonnected"); }}

部分庫文件可能不屬於Arduino標準庫,可能需要手動下載。(淘寶賣家會提供)

同一區域網訪問http://192.168.1.30,即可看到如下頁面:

frp客戶端設置

在同一內網內啟動一個frp客戶端,連接至已有的frp伺服器:

添加以下配置:

#frpc.ini[ardu_uno]type = tcplocal_port = 80local_ip = 192.168.1.30remote_port = 22222

$nohup ./frpc &

此時,已經可以通過<公網ip>:22222訪問。

更多:配置專有域名(雲平台)

在公網伺服器Nginx中添加如下配置:

server { listen 80; server_name iot.vvzero.com; location / { proxy_pass http://frp.vvzero.com:22222; }}

即可。

下方是原文地址:

簡易物聯雲平台搭建原理?

www.vvzero.com圖標

同時歡迎關注公眾號:裂帛碎玉的想法

推薦閱讀:

AP3216C 模塊
【圖形化學習 Arduino】(四)蜂鳴器
背誦,唐詩和MicroBit
Arduino 的 Serial.write() 和 Serial.print() 的區別在哪裡?
如何用processing做出如下圖案?

TAG:Arduino | 物聯網 | 物聯雲 |