2013年7月30日 星期二
水耕自己動手作 Part 4 (肥料)
接下來就是肥料問題了
上網買了電子秤
順便買了化學原料
再把每個原料依比例分別溶到1公升的水裡,然後再外瓶寫上比例和日期,
至於要施多少量就要看種什麼作物而定,
針對濃度換算,做了一個試算表
假設每 1000公升的水裡,要加入的硝酸鈣量為 354 公克(g),
且我要調的肥料量以一公升的水為主,假設一次就以100g的硝酸鈣加入一公升的水裡
這樣的溶液太濃,還要再加水稀釋,
可是我的水耕沒那麼大,頂多只有 20公升,
就要加入硝酸鈣濃縮營養液 3.54*20(公升)= 70.8 cc
例如:
我由農業局的網頁上找到蕃茄的水耕營養液比例如下:
每 1000公升 要加入的肥料量(g)
硝酸鈣 354 g
硝酸鉀 606 g
磷酸一銨 114 g
硫酸鎂 246 g
硼酸 1.5 g
於是我把每種原料溶到一公升的水裡
硝酸鈣 100 g
硝酸鉀 100 g
磷酸一銨 50 g
硫酸鎂 100
硼酸 1.5 g
由試算表中算出,每公升的水裡,我可以加入多少濃縮營養液
硝酸鈣 3.54 cc
硝酸鉀 6.06 cc
磷酸一銨 2.28 cc
硫酸鎂 2.46 cc
硼酸 1 cc
今天我用的水箱只有 20 公升,
所以我要把試算表裡的每公升加入濃縮營養液 *20(公升)
也就是我每次要加入的濃縮營養液量如下
硝酸鈣 70.8 cc
硝酸鉀 121.2 cc
磷酸一銨 45 cc
硫酸鎂 49 cc
硼酸 20 cc
下載水耕肥料比 試算表
水耕自己動手作 Part 3 (光照度)
過了一段時間
蕃茄開始出現黃葉現象,
2013/2/20
上網問了前輩,好像是缺鈣,所以買了兩包珊瑚石,再拿個洗衣袋裝進去,
直接丟到下方的水箱裡,
讓鈣慢慢釋出。
比對了土耕和水耕,同時期種下的蕃茄,
土耕沒有黃葉,水耕有,
土耕成長較慢,水耕較快,
土耕較綠,莖葉距離較短
土耕 2013/3/5
水耕 2013/3/5
猜想是否陽光照射也有差別,所以又買了照度計來測試。
測量結果,陽台外和陽台內,大約差了 1萬 燭光(LUX)
土耕和水耕大約差了 5000 (LUX),土耕比較能照到陽光!
水耕的日照果然少了很多,
所以將陽台窗戶全開,讓陽光多照一點進來。
蕃茄開始出現黃葉現象,
2013/2/20
上網問了前輩,好像是缺鈣,所以買了兩包珊瑚石,再拿個洗衣袋裝進去,
直接丟到下方的水箱裡,
讓鈣慢慢釋出。
比對了土耕和水耕,同時期種下的蕃茄,
土耕沒有黃葉,水耕有,
土耕成長較慢,水耕較快,
土耕較綠,莖葉距離較短
土耕 2013/3/5
水耕 2013/3/5
猜想是否陽光照射也有差別,所以又買了照度計來測試。
測量結果,陽台外和陽台內,大約差了 1萬 燭光(LUX)
土耕和水耕大約差了 5000 (LUX),土耕比較能照到陽光!
水耕的日照果然少了很多,
所以將陽台窗戶全開,讓陽光多照一點進來。
水耕自己動手作 Part 2 (種植)
好不容易把水耕的虹吸鐘弄好,
再來就把布丁的空盒挖孔,並放上發泡煉石,
先試跑一段時間,結果發現發泡煉石會被虹吸鐘給吸下來,
所以在下層的水箱上再蓋上一層洗衣袋(拉鍊壞掉拿來利用!),把煉石接住,才不會被沈水馬逹給吸過去,
整個水耕雛型出來了...
再來就是種田時間,
我拿了包心萵苣的種子,直接放到發泡煉石上,
等了兩三天就發芽了
2012/11/7
2012/11/13
順便種了幾顆蕃茄
2012/11/22
一開始還覺得很順利,
但是到後來萵苣芽開始死掉了,
最後存活只剩下四顆,死亡率 50%
到是蕃茄存活率 100%
後來連紅鳳菜都順便來插花一下,也都活下來了。
2013/1/14
蕃茄,紅鳳菜 繼續快樂生長...
2013/2/5
萵苣剩下兩顆存活,死亡率 75%
2013/2/20
再來就把布丁的空盒挖孔,並放上發泡煉石,
先試跑一段時間,結果發現發泡煉石會被虹吸鐘給吸下來,
所以在下層的水箱上再蓋上一層洗衣袋(拉鍊壞掉拿來利用!),把煉石接住,才不會被沈水馬逹給吸過去,
整個水耕雛型出來了...
再來就是種田時間,
我拿了包心萵苣的種子,直接放到發泡煉石上,
等了兩三天就發芽了
2012/11/7
2012/11/13
順便種了幾顆蕃茄
2012/11/22
一開始還覺得很順利,
但是到後來萵苣芽開始死掉了,
最後存活只剩下四顆,死亡率 50%
到是蕃茄存活率 100%
後來連紅鳳菜都順便來插花一下,也都活下來了。
2013/1/14
蕃茄,紅鳳菜 繼續快樂生長...
2013/2/5
萵苣剩下兩顆存活,死亡率 75%
2013/2/20
2013年7月29日 星期一
水耕自己動手作 Part 1 (設備)
很早以前就一直想玩水耕試試看,
在網路上也看了一些前輩 DIY 水耕設備,感覺並不難,
所以就自己動手做了一組水耕。
首先,到資源回收場撿兩個塑膠箱和架子,
我則是到外婆家撿了一些可用的材料
把其中一個箱子鑽孔,再把管子插上,並用熱熔膠封住接縫處。
再拿一個不要的飲料瓶,切掉頭部的蓋子部份,
做一個虹吸鐘(Bell Siphon)
把它套進剛才的接管處就完成了,
經過測試發現沒法達到虹吸現象,所以另外拿一個小礦泉水瓶,切下瓶蓋口,倒插進管子上,
仔細調好切口的水平,終於可以了。
調了好久,終於完成,試 Run 看看,真的有虹吸現象。
水耕終於有一點樣子了。
在網路上也看了一些前輩 DIY 水耕設備,感覺並不難,
所以就自己動手做了一組水耕。
首先,到資源回收場撿兩個塑膠箱和架子,
我則是到外婆家撿了一些可用的材料
把其中一個箱子鑽孔,再把管子插上,並用熱熔膠封住接縫處。
再拿一個不要的飲料瓶,切掉頭部的蓋子部份,
做一個虹吸鐘(Bell Siphon)
把它套進剛才的接管處就完成了,
經過測試發現沒法達到虹吸現象,所以另外拿一個小礦泉水瓶,切下瓶蓋口,倒插進管子上,
仔細調好切口的水平,終於可以了。
調了好久,終於完成,試 Run 看看,真的有虹吸現象。
水耕終於有一點樣子了。
[Arduino] 將溫度寫入 SD 卡並以 Http 送給 Linux Server 以 PHP 寫入 MySQL 資料庫
前陣子玩了一些水耕的設備, 因為要天天記錄溫度、EC(電導度)、PH(酸鹼度), 顯得有點麻煩,所以打算自己 DIY 一些設備來玩玩。 首先考慮到程式開發的速度,選擇使用 Arduino 的板子來 DIY 我所購買的板子是 Arduino Leonardo,
另外購買 Arduino Ethernet W5100 網路擴展板,含 miniSD 座 以及 DS18B20 溫度感測器 不鏽鋼封裝 防水型
電路接法請參考Arduino 溫度感應
首先下載 OneWire Library Dallas Temperature Control Library 將這兩個檔案解壓縮後放到 Sketchbook 的資料夾下 相關說明請參考 葉難(Arduino 教學部落格) 或是開啟 Arduino 的 IDE 主程式,點選 File → Preferences 找到 Sketchbook 的路徑,
前置作業完成後就可以開始複製貼上了 程式碼如下:
因為我的板子是 Arduino Leonardo 所以 Compile 時檔案會太大,
因此上網找了一些方式可以再縮小檔案,雖然減少的量不大(2K),但不無小補。
移除 DNS 以減少檔案大小 參考文章(Reducing code size on Arduino Ethernet boards)
為了進一步減小檔案,再將浮點數轉換方式換掉。 浮點數轉字串
以上步驟做完時,重新 Compile 就可以過了。
修改過的程式碼請自行下載
浮點數轉字串Source Code(Flot2String.7z)
移除 DNS 的 Net Library Source Code(Ethernet_NoDNS.7z)
這時只要寫個 PHP 網頁程式,把資料寫入資料庫就可以囉~
另外購買 Arduino Ethernet W5100 網路擴展板,含 miniSD 座 以及 DS18B20 溫度感測器 不鏽鋼封裝 防水型
電路接法請參考Arduino 溫度感應
首先下載 OneWire Library Dallas Temperature Control Library 將這兩個檔案解壓縮後放到 Sketchbook 的資料夾下 相關說明請參考 葉難(Arduino 教學部落格) 或是開啟 Arduino 的 IDE 主程式,點選 File → Preferences 找到 Sketchbook 的路徑,
前置作業完成後就可以開始複製貼上了 程式碼如下:
#include#include #include #include "floatToString.h" #include #include byte mac[] = { 0x00, 0xAB, 0xCB, 0xCD, 0xDE, 0x02 }; IPAddress ip(192,168,1,38); IPAddress server( 192, 168, 1, 37 ); String strGet="GET /~webuser/hydroponics/TempDeg2DB.php?degree="; String strHttp=" HTTP/1.1"; String strHost="Host: 192.168.1.37"; //OK int serverPort=80; //IPAddress mydns(168,95,1,1); //OK EthernetClient client; #define ONE_WIRE_BUS 2 File myFile; // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); // arrays to hold device address DeviceAddress insideThermometer; void connect(String tempdeg){ if (client.connect(server, serverPort)) { Serial.print("Make a HTTP request ... "); myFile.print("Make a HTTP request ... "); //### Send to Server String strHttpGet = strGet + tempdeg + strHttp; client.println(strHttpGet); client.println(strHost); client.println(); SD.println(strHttpGet); SD.println(strHost); SD.println(); } else { } } void setup(void) { // start serial port Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } Serial.print("Initializing SD card..."); pinMode(4, OUTPUT); if (!SD.begin(4)) { Serial.println("initialization failed!"); return; } //Serial.println("initialization done."); myFile = SD.open("Temp.txt", FILE_WRITE); if (myFile) { sensors.begin(); // set the resolution to 9 bit (Each Dallas/Maxim device is capable of several different resolutions) sensors.setResolution(insideThermometer, 9); //### Init Net //Ethernet.begin(mac, ip, mydns); Ethernet.begin(mac, ip); // close the file: myFile.close(); } else { // if the file didn't open, print an error: Serial.println("error opening test.txt"); } } // function to print the temperature for a device void printTemperature(DeviceAddress deviceAddress) { // method 2 - faster float tempC = sensors.getTempC(deviceAddress); char mybuffer[6]; connect(floatToString(mybuffer, tempC, 2)); } void loop(void) { myFile = SD.open("Temp.txt", FILE_WRITE); if (myFile) { sensors.requestTemperatures(); // Send the command to get temperatures printTemperature(insideThermometer); delay(15000); myFile.close(); } } //====== 下面的程式碼不屬於本程式,而是網站本身帶出的 =====
因為我的板子是 Arduino Leonardo 所以 Compile 時檔案會太大,
因此上網找了一些方式可以再縮小檔案,雖然減少的量不大(2K),但不無小補。
移除 DNS 以減少檔案大小 參考文章(Reducing code size on Arduino Ethernet boards)
為了進一步減小檔案,再將浮點數轉換方式換掉。 浮點數轉字串
以上步驟做完時,重新 Compile 就可以過了。
修改過的程式碼請自行下載
浮點數轉字串Source Code(Flot2String.7z)
移除 DNS 的 Net Library Source Code(Ethernet_NoDNS.7z)
這時只要寫個 PHP 網頁程式,把資料寫入資料庫就可以囉~
//取出網址列所帶入的參數 $send_degree=$_GET[degree]; // 設定地區時間 date_default_timezone_set("Asia/Taipei"); echo strftime("%Y-%m-%d %H:%M:%S"); //取得主機日期和時間 $Login_Date=date("Y-n-j"); $Login_Time=date("H:i:s"); //資料庫登入資料 $dbhost = 'localhost'; $dbuser = 'testuser'; $dbpass = '12345'; $dbname = 'hydroponics'; //登入資料庫 $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connection'); mysql_query("SET NAMES 'utf8'"); mysql_select_db($dbname); $sql = "INSERT INTO `Hydroponics`.`Temperature` (`degree`, `ServerDate`, `ServerTime`) VALUES ('$send_degree', '$Login_Date', '$Login_Time');"; $result = mysql_query($sql) or die('MySQL query error');
訂閱:
文章 (Atom)
熱門文章
-
今天一位朋友在問我,他的電腦無法開機, 電源一開都沒畫面....怎麼辦? 通常螢幕沒有畫面的問題很多種, 第一考慮的是螢幕有沒有壞掉? 怎麼判斷呢? 1.檢查螢幕 先開螢幕的總電源,看是不是有亮電源燈? 若有表示電源輸入沒問題,再來就按螢幕的功能鍵, 看會不會跳出螢幕設定視窗...
-
前陣子玩了一些水耕的設備, 因為要天天記錄溫度、EC(電導度)、PH(酸鹼度), 顯得有點麻煩,所以打算自己 DIY 一些設備來玩玩。 首先考慮到程式開發的速度,選擇使用 Arduino 的板子來 DIY 我所購買的板子是 Arduino Leonardo, 另外購買 ...
-
魚菜共生的作法有很多種, 我所採用的是介質床加上 Bell Siphon(鐘虹吸) 產生潮汐現象, 網路上查詢的結果是這樣成功率比較高。 但是先前 DIY 的 Bell Siphon 調整了好久,才能有正常的虹吸現象, 原因就是虹吸的進水口水平難以調整, 後來去上了魚...