2017-12-01

Arduino 雲端無線環境觀測站

Arduino 雲端無線環境觀測站
=======================
近日常常聽到  AI 人工智慧(Artificial Intelligence)vs. Cloud Database 雲端資料庫 vs. IOT ( Internet of Things ) 物聯網  的新聞與應用。
想想,好像還不錯耶~,弄個最近比較夯的應用試試。。。


雲端環境觀測站( Cloud  + IOT ):
Arduino + 2.4G Wireless Sensor + Arduino Ethernet Shield W5100 乙太網路擴充板 + NAS + Database Server + ThingSpeak(IOT)+ Android APP... = 雲端無線環境觀測站 (溫濕度 / 大氣壓力 / 煙霧,瓦斯,CO 一氧化碳 Sensor 感應器)

雲端環境觀測站 架構圖:

Part I :
無線 Sensor 感應器發射模組(無線傳輸發射 Sensor 狀態)遠端收集數據,透過無線方式傳輸資料到 無線 Sensor 感應器接收模組(無線傳輸接收 Sensor 狀態),透過 無線接收模組 內的 W5100 Ethernet 網路模組將數據存儲於 Local 本地端 NAS 內的 Database Server 中處理分析,及將數據透過 Internet 傳輸到 Internet 網際網路 的 Cloud 雲端 ThingSpeak(IOT)資料庫材料分析;手機可以透過 Android 安卓 APP 連上  Internet 網際網路 的 Cloud 雲端 ThingSpeak(IOT)資料庫做顯示分析。


應用實物照片如下:

無線 Sensor 感應器發射模組(無線傳輸發射 Sensor 狀態):


無線 Sensor 感應器發射模組(模組穿上衣服的狀態):



無線 Sensor 感應器接收模組(無線傳輸接收 Sensor 狀態):
 

顯示 Sensor 狀態:溫濕度


顯示 Sensor 狀態:煙霧,瓦斯,非可燃 CO 一氧化碳,可燃 CO 一氧化碳


顯示 Sensor 狀態:大氣壓力 (絕對壓力 / 相對壓力 )/ 海拔高度 / 溫度



運用 Arduino Ethernet Shield W5100 乙太網路擴充板 直接連結 Database Server
(以往論壇都是運用 W5100 連結 Web Server,透過 Web Server 的 PHP 語法再轉拋數據到資料庫。本次直接跨域 Web Server + PHP 直接連結 DataBase Server )



參考資料:http://www.arduinolibraries.info/libraries/my-sql-connector-arduino

/*
  MySQL Connector/Arduino Example : connect by hostname

*/

#include <Ethernet.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>

byte mac_addr[] = { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC };


// IP of the MySQL *server* here 資料庫 Server 位址

IPAddress server_addr(192,168,1,123);  
char user[] = "root";              // MySQL user login username 使用者名稱
char password[] = "123456";        // MySQL user login password 使用者密碼

// ****** Sample query ******

// char INSERT_SQL[] = "INSERT INTO 資料庫名稱.資料表名稱 (message) VALUES ('Hello, Arduino!')";
char INSERT_SQL[] = "INSERT INTO test_arduino.hello_arduino (message) VALUES ('Hello, Arduino!')";

EthernetClient client;

MySQL_Connection conn((Client *)&client);

void setup() {

  Serial.begin(115200);
  while (!Serial); // wait for serial port to connect
  Ethernet.begin(mac_addr);
  Serial.println("Connecting...");
  // conn.connect(資料庫位址, 資料庫 Port Number, 使用者名稱, 使用者密碼)
  if (conn.connect(server_addr, 3306, user, password)) {
    delay(1000);
  }
  else
    Serial.println("Connection failed.");
}


上傳 Cloud 雲端 ThingSpeak 資料庫:




NAS:Network Attached Storage(網路連接儲存設備)- DS111


顯示 Local Database Server 本地資料庫 狀態:




Cloud 雲端 ThingSpeak(IOT):Night Eagle's Weather Station ( 雲端無線環境觀測站 )

ThingSpeak:溫濕度狀態


ThingSpeak:煙霧,瓦斯,非可燃 CO 一氧化碳,可燃 CO 一氧化碳 狀態


ThingSpeak:大氣壓力 (絕對壓力 / 相對壓力 )






Part II:
上述 Database 資料庫再加上 PHP + Web Server 做 Local 本地資料分析;再加上 Messenger API 將及時訊息傳遞到社群軟體中(Line / FB / twitter... )......續待 

希望透過上述無線數據的接收與轉發,再透過 Ethernet & Internet 將資料儲存於資料庫後,做最終資料庫數據的分析與應用,以達到 IOT ( Internet of Things ) 物聯網  的思維應用。

目前一般工廠的應用狀況大概是,熟悉生產設備的熟悉生產設備;熟悉 IT 數據程式應用的熟悉 IT 領域;最大的問題應該是在,如何讓生產設備的數據轉化成 IT 可以處理的數據,接下來的就是如何運用這些數據,提供更具價值的 Action Plan。。。



< 上一篇