文章分類

2014年7月2日 星期三

自釀啤酒-自製溫度控制器 BrewPi (一)

(使用 Arduino Uno R3)
最近沒什麼時間釀酒,攪拌器的材料又還沒到,
於是上網看看有沒有什麼有趣的東西可以玩,
逛著 Homebrewtalk 看了一些以前覺得太難懂的東西,
看到了一篇 HOWTO - Make a BrewPi Fermentation Controller For Cheap
我最喜歡 cheap 的東西了,於是點進去看了一下,
再連結到 BrewPi 網頁,它竟然可以讓發酵桶內的溫度差在一度以內,
還可以事先規劃溫度曲線以及將它畫成圖表,以利往後的參考,
雖然這些功能對我這個粗枝大葉的人來說沒什麼做用,
但.....這太酷了!

上網買了一些零件(Arduino Uno、二路繼電器 for Arduino、測溫線),
Raspberry Pi 有點貴,暫時買不下去,剛好手邊有台家人要我修理的小筆電,
硬碟掛掉,新的硬碟又很貴,索性不修了,把硬碟拔了不然每次開機都會從死硬碟開機,
BrewPi 的溫度規劃與記錄功能是利用 Linux 裡的 Web Server 來執行,
剛好以前也玩過 Linux (因為愛打電動,又回到 Win 底下了)
剛好也試過無硬碟系統,剛好家裡有支用不到的隨身碟,開工囉!



安裝 Debian

BrewPi 所用的作業系統是使用 Debian Whezzy,上 Debian 的網站就可以下載 ISO 檔,
再去下載 Unetbootin,這個軟體可以把 ISO 檔寫到隨身碟裡製成 LiveUSB,
插上小筆電,開機時選擇從 USB 開機之後就可以進入 Debian 了!
疑? 怎麼只有安裝的選項?不是應該有 Live 的選項嗎?
查了一陣子後才發現下錯了檔案,應該是下載 Live ISO 才對!
重新製作 LiveUSB --> 開機 --> 進入 Live Debian --> 安裝 Debian --> 忘了沒硬碟 Orz
只好出門買支便宜的 8G 隨身碟,再來一次
系統安裝完畢,剩下安裝開機管理程式 GRUB,疑?無法安裝!?
重新裝了幾次都是這樣,只好上網查資料了,
找到的資料說安裝 Debian 時如果有兩顆以上的硬碟,有時會出現 bug,
如果用光碟安裝就沒事了,但......小筆電沒光碟機啊~~~~~
又經過了幾次失敗之後,把 8G 隨身碟拔掉,等進入 Live Debian 後再插上去試看看,
竟然安裝成功了!(筆電的無線功能始終搞不定)

底下輸入指令的最前面都是用 sudo,這個指令是讓當前的使用者擁有系統管理員的權限,
輸入指令時會要你輸入系統管理員的密碼(安裝時設定的),輸入後可能出現 "XXX is not in the sudoers file." 的錯誤訊息,解決辦法:
在終端機輸入 su 指令,按下 Enter 後再輸入密碼,使用者轉換成 root (系統管理員)
再輸入

nano /etc/sudoers

root ALL=(ALL)  ALL下面,
加上XXX ALL=(ALL)  ALL (XXX 是使用者名稱)
輸入完按 Ctrl + x 離開 nano
輸入 exit 退出 root 身份,換回原本的使用者

開始準備系統,http://docs.brewpi.com/ 裡有詳細的介紹,
由於我不是使用 Raspberry Pi,所以從第三大項 3.Manual installation of BrewPi 開始,

1.安裝 Apache2

在終端機裡輸入


   sudo apt-get update
   sudo apt-get install apache2
   sudo apt-get install libapache2-mod-php5 php5-cli php5-common php5-cgi
等它跑完後可以先測試一下是不是正常,
在瀏覽器上輸入 http://你的IP/ (不知道沒關係,輸入 http://127.0.0.1 也行)
Apache 網頁伺服器的目錄是在 /var/www/

2.安裝 PHP

在終端機裡輸入

sudo apt-get install php5

安裝完成後在 /var/www/ 裡建立一個名叫 phpinfo.php 的文件,


sudo nano /var/www/phpinfo.php

進入 nano 後輸入


   < ? php (因為輸入的問題,這裡有加空白,在nano裡各字元間不要留空白)
   phpinfo();
   ?>
輸入完後按 Ctrl + x 存檔

為了系統的安全,網頁伺服器最好另外建立一個帳號(這裡我們是建立一個叫 www-data 的使用者)
而 /var/www/ 這個目錄的擁有者必須是 www-data,不然伺服器會無法存取裡面的檔案,
在終端機裡輸入 (-R 是連裡面的副資料夾的擁有者也改成 www-data)


sudo chown -R www-data:www-data /var/www

接下來在瀏覽器上輸入 httpL//你的IP/phpinfo.php
可以看到 PHP 的資料,正常的話就可以移除 phpinfo.php 這個檔案了,


sudo rm /var/www/phpinfo.php

有時你須要重開網頁伺服器時可以輸入:


sudo /etc/init.d/apache2 restart

3.安裝 MySQL

目前 BrewPi 還用不到 MySQL 所以.....我就懶得翻譯,跳過。

到此為止就安裝好了網路伺服器,接下來就是要安裝 python 了。

4.安裝 Python

安裝 Debian Wheezy 時,就預設安裝了 Python,但我們還須要其它的東西
pySerian(用來與 Arduino 通訊)、simplejson、ConfigObj、psutil、python-git
在終端機裡輸入 (全部寫在同一行)

sudo apt-get install python-serial python-simplejson python-configobj python-psutil python-git

就可以把上面所說的幾種程式裝好。
最後為了讓可以將程式寫入 Arduino,我們還要安裝 arduino-core

sudo apt-get install arduino-core



沒有留言: