Biomedical Imaging Lab

Magnetic Resonance Imaging

104學年度專題:物聯網之雲端資料匯流系統-以生態觀察為例

前言

物聯網之雲端資料匯流系統採硬體採用 Arduino、Raspberry Pi2,網站採用Django撰寫後臺技術,能讓使用者透過網頁首頁登入個人帳號,管理多種植物即時監控植物箱的溫度、濕度、土壤濕度和光度,在植物缺水或光源不足下能自動澆水及開燈,同時將感測到的環境數據和照片上傳至個人網頁,並且將數據用圖表動態即時呈現。

總共會分成十三個部分介紹,分別是

    1. 安裝作業系統以及環境配置。
    2. Arduino 環境數據感測。
    3. Raspberry Pi Serial 數據接收。
    4. 網頁後端架構撰寫。
    5. 網頁前端架構撰寫。
    6. 雲端平台:Heroku。
    7. Git多人使用者開發。
    8. 照片拍攝。
    9. 資料上傳及接收。
    10. 多人使用者帳戶。
    11. 遠端控制。
    12. 設定排程。
    13. 結果照片。

(以下所有圖片點選後皆會放大。


安裝作業系統以及環境配置

●Arduino 

下載Arduino安裝程式進行安裝。

1.選擇開發版類型。

ar1

2.設定序列埠。

ar2

Raspberry Pi2

1.到 Raspberry Pi 的網站下載映像檔。

建議下載 RASPBIAN 。 (RASPBIAN 為 Raspberry Pi最多人使用的作業系統。)

pi1

2.在電腦上把SD卡(4GB以上)格式化後,將下載的映像檔燒入至SD卡。

3.Raspberry Pi 板子連接HDMI線到螢幕並將鍵盤、滑鼠、mini USB、燒錄好的SD卡接好。

4.mini USB 接上電源後開機。

開機後登入系統。(系統登入預設帳號:pi,密碼:raspberry。)

1-4

5.系統環境設定。

登入後進入Linux模式後,在命令列下輸入以下指令,設定系統環境。(設定密碼、鍵盤、開啟相機功能、開啟SSH。)

設定完畢後選擇Finish重新啟動系統。

$ sudo raspi-config

pi2

6.進入桌面系統,設定Wi-Fi。

$ startx

1-6

7.使用Putty遠端連線。

putty是 SSH Client 程式,可以用它下指令、上網下載檔案。

下載 Putty,在視窗內輸入剛才的IP位置按Open 登入預設帳密即可連線。

1-8

連線後的視窗會像下面所示。

1-9

8.檔案管理。

winscp是SSH檔案管理程式,透過類似檔案總管的視窗管理SSH檔案,

可以用這個從Raspberry Pi 上傳或下載資料。

下載 Winscp,在視窗內輸入剛才的IP位置按Login 登入預設帳密即可連線。

winscp

連線後的視窗會像下面所示。

winscp1

9.開機後傳本地端IP到Gmail。

編輯 send_ip.py 如下。

編輯完後執行下面命令。

~$ sudo nano /etc/rc.local

mail

之後開機到 Gmail 收信如下。

mail1

10.常用指令。

a.關機

切記使用指令正常關機,切勿直接拔除電源,SD卡作業系統會損毀。

$ sudo shutdown -h now
b.重新開機
$ sudo reboot
c.更新安裝程式
$ sudo apt-get update
$ sudo apt-get upgrade
d.安裝檔案
$ sudo apt-get install 檔案

 電腦

下載Anaconda的安裝程式進行安裝。(會自動安裝Python。)


 Arduino 環境數據感測

參考此網頁: Arduino DHT22 (AM2302) Tutorial + Library

按下左邊視窗放大鏡按鈕(序列埠監控視窗)後,會跳出右邊的監控視窗。

兩邊鮑率設定相同後,右邊監控視窗會及時量測環境數據。

ar3


Raspberry Pi Serial 數據接收

將Arduino與Raspberry Pi用USB連接後

回到主目路

~$ cd

主目錄下建立放程式的資料夾

~$ mkdir code

切換至剛建立的資料下編輯 photo0.py。

~/code/$ nano photo0.py

注意使用python3執行photo0.py。(python2的Serial 有問題。)

~/code/$ sudo python3 serial.py

serial1


網頁後端架構撰寫

如何建立網頁,參考此網頁:Django Girls 學習指南

1.開發環境設定。

安裝Anacoda後,在命令提示字元下執行以下命令。先安裝Mysql資料庫。(pip install mysql-python 有問題。)

~\eeproj2015> conda install mysql-python

從 requirements.txt 安裝剩餘項目。

~\eeproj2015> pip install -r requirements.txt

2.啟動開發伺服器

~\eeproj2015> python manage.py runserver

3.寫好程式在本地端確認無誤後,按照第7篇《Git多人使用者開發》上傳到遠端Heroku。

4. Django application

●views.py
●models.py
●admin0.py
●forms.py

5. Django project

●settings.py
●urls.py
●wsgi.py

網頁前端架構撰寫

1.網頁版型

layout●layout.html

2.登入前後

登入前巡覽列如下。

log in3

登入後巡覽列如下。

log in2

●loginpartial.html

3.登入畫面

log in●login.html

4.動態圖表

chart

●index.html

Git多人使用者開發

github2

github

參考此網頁:https://backlogtool.com/git-guide/tw/

1.安裝Git

下載Git的安裝程式進行安裝。

2.初始設定

在命令提示字元下,設定名字和 email

>git config --global user.name "<使用者名字>"
>git config --global user.email "<電子信箱>"

3.新建本地端數據庫

在電腦上方建立專案資料夾並把路徑移到專案資料夾,使用init命令將目錄建立為本地端數據庫。

~\eeproj2015>git init

4.確認工作目錄與索引的狀態

~\eeproj2015>git status

5.註冊檔案或目錄到索引

<file>是指向要加入索引的檔案。若要指向多個檔案,可用空白鍵將檔案們分開。

~\eeproj2015>git add <file>...

使用「.」,表示可以把當前目錄下所有的檔案加入到索引。

~\eeproj2015>git add .

6.提交添加到索引的檔案

~\eeproj2015>git commit -m "註解"

7.新建遠端數據庫

<name>指向遠端數據庫登錄名稱、<url>指向遠端數據庫的URL

>git remote add <name> <url>
ex. ~\eeproj2015>git remote add https://github.com/fgh7610/EEPROJ_2015.git

8.在遠端數據庫建立分支/push修改內容到分支

<repository>指定要push的地址,<refspec>指定要push的分支

>git push <repository> <refspec>...
ex. ~\eeproj2015>git push origin master

9.複製遠端數據庫

>git clone <url>
ex. ~\eeproj2015>git clone https://github.com/fgh7610/EEPROJ_2015

10.合併遠端數據庫的分支的修改內容

您上次的push到執行下一次的push的期間,如果有其他人push更新了遠端數據庫,而您沒有更新您的本地端數據庫,那麼您的push會被拒絕,這個時候,需要進行合併操作導入其他人的修改歷史。

>git pull <repository> <refspec>...
ex. ~\eeproj2015>git pull origin master

照片拍攝

建立存相片的資料夾後,切換至剛建立的資料下編輯後執行 photo0.py。

~$cd
~/$mkdir photo
~$cd photo
~/photo/$ nano photo0.py
~/photo/$ python photo0.py

拍完照如下,要使用Raspberry Pi 桌面系統才能看照片。

3-1


資料上傳及接收

1.環境數據上傳

在serial.py 中加入以下程式碼。

2.環境數據接收

Raspberry pi 上傳數據後會由views.py的以下程式碼處理並儲存至資料庫。

3.照片上傳

在photo.py 中加入以下程式碼。

4.照片接收

  • 在models.py 中加入以下程式碼。

 

  • 在views.py 中加入以下程式碼。

 

  • 在admin.py 中加入以下程式碼。

 

  • 在settings.py 中加入以下程式碼。

 

  • 在urls.py 中加入以下程式碼。

多人使用者帳戶

1.Raspbeery Pi 上傳對應的views

  • views.setting部分原程式碼
  • 修改如下

 

  • views.uploadima部分原程式碼
  • 修改如下

2.網頁對應的views

  • views.getall部分原程式碼
  • 修改如下

遠端控制

1.Raspberry Pi 的 Serial0.py 新增以下程式碼

2.view.py 新增以下程式碼

3.index.html 新增以下程式碼


結果照片

end

 

Updated: 2016/01/12 — 11:31 pm
Biomedical Imaging Lab © 2013 Frontier Theme