置頂文字

歡迎來訪 !! 如有任何問題歡迎一起討論或是 eMail 給我 legorunmail@Gmail.com

2017年5月24日 星期三

讓Arduino 感應器收集資料並儲存在資料庫

材料:
1. Arduino UNO板子 *1
2.SHIELD V5.0 擴展板 *1
3.小型伺服馬達SG90   *2
4.HC-SR04 超音波感測器 *1
5.1602 LCD  I2C 點陣液晶模組 *1
6.LED 燈球 *1
7.電源用9V 電池 *1

開發環境Arduino IDE 1.8.2,沒使用 Scratch 積木程式是因為arduino的程式沒有多複雜,小學5年級以上的學生經說明都能理解,用程式碼的好處比起積木指令要更簡潔彈性更大,尤其當程式複雜時更能體會用程式碼的好處。




Arduino uno+ Sensor Shield V5.0 擴展板合體後的外觀
擴展板的好處就是把常用的GPIO腳位、電源、接地都拉出來不需要用麵包版來接線擴充


程序一:把上述零件單一測試

伺服馬達
測試小型伺服馬達SG90:是否能在0~180來回運作



1602 LCD  I2C 點陣液晶模組
測試1602 LCD 點陣液晶模組是否能正常顯示文字



HC-SR04 超音波感測器
延續剛剛LCD螢幕的程式碼,這次要把超音波測到的距離顯示在LCD上
測試HC-SR04 超音波感測器


當以上伺服馬達、LCD螢幕、超音波感應器測試都Ok後就要整合在一個程式中,我用樂高零件把Arduino UNO機板、擴展版、伺服馬達、LCD 1602螢幕、超音波HC-SR04整合在一起如下圖
用樂高積木當架構把零件組合起來


編譯與上傳程式到Arduino中


C 語言+ Arduino + MacBook Pro





接著在PC要撰寫接收Arduino傳過來的資料並存入資料庫中,我用C#開發PC端程式

重點說明:
PC與Arduino溝通的方式很多如透過USB Cable、藍芽BT、 WIFI等,這次用USB Cable來接收與傳遞資料跟 Arduino溝通。

PC與Arduino溝通是透過ComPort,當Arduino機板插到電腦USB接口時作業系統會給予一個ComPort作為雙方溝通之用,可以從控制台>>系統>>裝置管理員中得知訊息

 PC與Arduino溝通是透過COM21(註:每個人的ComPort不同)

因此PC端程式要傳送與接收Arduino資料時就是透過Com21,PC端的程式開發
PC 端每2秒接收Arduino 超音波傳送的資訊儲存並繪圖


如果在Arduino接上溫度感應器、煙霧感應器、土壤質感應器、心跳感應器等都能用相同的方式紀錄資訊並於事後分析,更進階的玩法就是向特定裝置如手機App發送訊息等(這時候又要學習開發手機App程式)。

Arduino的售價低廉入門容易在網路上Google一大堆資料,如果想讓小朋友動手玩玩看並學習程式撰寫是十分適合的科學教材。


沒有留言:

張貼留言