フィールド設置型の定点観測ロガーを作成する。 < 定点観測器の仕様 >
< 持続した時刻情報の保存 > 前回のWatchdogとスリープ制御によって、定点観測ロガーの電力補給問題はなんとかなりそうである。 まだ実験途中だけど、スリープと乾電池4個を使えば最低でも1週間は持つだろう。 もう一つの問題は持続した正確な時刻情報の記録だ。 電池とデータ保存用のSDカードを交換する時には当然電源を切らなくてはならないけれど、 Arduinoには電源を切ってもカウントを続けるPCのような内蔵時計の機能はない。 しかしデータの計測にはある程度正確な時刻情報がともなっていないと意味がないのである。 例えばDatetimeライブラリを使用するとして、setup()関数で日付をセットしても、 電源を切った途端に日付情報は消えてしまう。 電池とSDカードを交換した後に、現在の時刻情報をもう一度スケッチにセットしてArduinoにアップロードしなくてはならない。 フィールドにPCを持ち歩くのは面倒なのでやりたくない。 解決方法として、ArduinoのEEPROMメモリ領域に時刻情報を記録することにした。 EEPROMはArduinoの電源を切っても消えないメモリ領域である(Arduino 日本語リファレンス EEPROMの項を参照)。 Arduino Pro 328 3.3V 8MHzの場合はATmega328チップなので、1024byteの情報を読み書きできる。 使い方は以下のようになる。
時刻情報はタイムスタンプとして記録する。 タイムスタンプとは1970年1月1日00:00:00からの経過秒数のことで、たいていの言語で簡単に日付時刻に変換できるので、 コンピュータの世界では時刻情報として利用されている。 例えば2010年11月23日14時8分40秒(日本標準時)のタイムスタンプは「1290456520」といった感じ。 UNIXタイムスタンプ変換ツール タイムスタンプはlong型のデータ情報で、EEPROM領域を4byte使用する。 データ書き換え時に古いタイムスタンプ情報を上書きしてしまえばいいので、1024byteのメモリ容量でも十分である。 < タイムスタンプ情報(4 Byte値)をEEPROMに書き込み、読み込む > /* * sketch name : eeprom_r_w_4B * summary : タイムスタンプ情報(4 Byte値)をEEPROMに書き込み、読み込む */ #include <EEPROM.h> #include <DateTime.h> // log start date int year = 2010; int month = 11; int day = 20; int hour = 18; int minute = 53; int second = 0; long log_timestamp; void setup(void) { Serial.begin(9600); DateTime.sync(DateTime.makeTime(second, minute, hour, day, month, year)); } void loop() { log_timestamp = DateTime.now(); Serial.print(" write timestamp / "); Serial.println(log_timestamp, DEC); eep4Bwrite(0, log_timestamp); // 書き込み log_timestamp = eep4Bread(0); // 読み込み Serial.print(" read timestamp / "); Serial.println(log_timestamp, DEC); Serial.println(); delay(3000); } /* * func name : eep4Bwrite * processing : 4byte値をEEPROMに書き出す * param : int address / 書き出し開始EEPROMアドレス * long param / 書き出す値 * return : */ void eep4Bwrite(int address, long param) { int l_shift; // 左シフトbit数 long inleft; byte in_bytes; // EEPROM格納用byte値 int eep_address; // EEPROM上のアドレス int i; for (i = 0; i <= 3; i++) { l_shift = 8 * (3 - i); inleft = param << l_shift; // 左にシフト in_bytes = inleft >> 24; // 右にシフト eep_address = address + i; EEPROM.write(eep_address, in_bytes); // 書き込み //デバック用 // Serial.print(" eeprom address : "); // Serial.print(eep_address,DEC); // Serial.print(" / byte : "); // Serial.println(in_bytes,BIN); // Serial.println(" "); } } /* * func name : eep4Bread * processing : 4byte値をEEPROMから読み出す * param : int address / 読み出し開始EEPROMアドレス * return : long ret_param / 4byte値 */ long eep4Bread(int address) { int eep_address; // EEPROM上のアドレス long inleft; // EEPROM格納用byte値 int l_shift; // 左シフトbit数 long in_bytes; // byte値格納用 long ret_param = 0; // リターン値初期化 int i; for (i = 0; i <= 3; i++) { eep_address = address + i; inleft = EEPROM.read(eep_address); // 読み込み l_shift = 8 * i; in_bytes = inleft << l_shift; ret_param |= in_bytes; //デバック用 // Serial.print(" read test eeprom address : "); // Serial.print(eep_address,DEC); // Serial.print(" / byte : "); // Serial.println(ret_param,BIN); // Serial.println(" "); } return ret_param; } Arduino Pro 328 3.3V 8MHzにスケッチをアップロードするには3.3V動作Arduino製品向け小型USB-シリアルアダプタとUSBケーブル(Aオス-miniBタイプ)が必要である。 スケッチの実行は、Arduino Pro 328 3.3V 8MHzとPCをただ繋ぐだけである。 シリアルモニタで確認 |
| スケッチは、以下のリンク先を参考にさせて頂きました。ありがとうございます。 Reflection of my mind arduinoのEEPROMテスト リンク先のスケッチを理解してEEPROM書き込み関数を作成するにあたってビット演算を少し勉強する必要があった。 タイムスタンプを格納しているunsigned long型というのは符号なし整数型の4byteのデータ型だけど、 まずは"4byte"とはなんだ?というレベルからである。 およばずながら、理解できた範囲で確認してみる。 正の整数を格納するデータ型は byte型(1byte) unsigned int型(2byte) unsigned long型(4byte) がある。 これは2進数であらわすと、 ■ byte型(10進数では255 〜 0、つまり2の8乗〜2の0乗。1byte。8bit。) 11111111 〜 00000000 ■ unsigned int型(10進数では65,535 〜 0、つまり2の16乗〜2の0乗。2byte。16bit。) 11111111 11111111 〜 00000000 00000000 ■ unsigned long型(10進数では4,294,967,2952 〜 0、つまり2の32乗〜2の0乗。4byte。32bit。) 11111111 11111111 11111111 11111111 〜 00000000 00000000 00000000 00000000 となる。 EEPROM.write()メソッドは1byteづつしか書き込めない。 ということは、タイムスタンプ型のunsigned long型は4回に分けて書き込む必要があるということになる。 eep4Bwrite()関数の for (i = 0; i <= 3; i++) { l_shift = 8 * (3 - i); inleft = param << l_shift; // 左にシフト in_bytes = inleft >> 24; // 右にシフト eep_address = address + i; EEPROM.write(eep_address, in_bytes); // 書き込み } 引数 "param"(4byteのタイムスタンプ情報)の値を仮に「1290456520」とすると、 2進数では「01001100 11101010 11001101 11001000」となる。 2進数、8進数、10進数、16進数相互変換 これを、「01001100」と「11101010」と「11001101」と「11001000」の4つの値(1byte)に分解して EEPROM.write()メソッドで書き込む。 for文ループの0回目で、 「1290456520」を左に24bitシフトし、long型変数 "inleft" に格納する。 右に24bitシフトして、byte型変数 "in_bytes" に格納する。 ということをやっている。 ←に24bitシフト 01001100 11101010 11001101 11001000 ↓ 11001000 00000000 00000000 00000000 →に24bitシフト 11001000 00000000 00000000 00000000 ↓ 00000000 00000000 00000000 11001000 できあがった値「00000000 00000000 00000000 11001000」は、 byte型変数 "in_bytes" に2進数で「11001000」という値として格納される。 それをすかさずEEPROMメモリアドレスの0番地に保存する。 同様に、 for文の1回目 : in_bytes = 11101010、EEPROMメモリアドレスの1番地に保存 for文の2回目 : in_bytes = 11001101、EEPROMメモリアドレスの2番地に保存 for文の3回目 : in_bytes = 11001000、EEPROMメモリアドレスの3番地に保存 と繰り返せば、long型のタイムスタンプ情報がEEPROMメモリアドレスの0〜3番地に保存できる。 読み込みの eep4Bread()関数ではこの逆の処理をやっている。 for文ループの0回目で、 EEPROMアドレス0番地の値「01001100」を読み込み、左に0bitシフトし、long型(4byte格納)変数 "in_bytes" に格納する。 ←に0bitシフト 00000000 00000000 00000000 11001000 ↓ 00000000 00000000 00000000 11001000 そして、値0が格納されたlong型変数 "ret_param"(値は2進数で「00000000 00000000 00000000 00000000」)と "|"(OR演算子)でbit演算した値を"ret_param"に格納する。 ret_param |= in_bytes; は、わかりやすく書くと ret_param = ret_param | in_bytes; という処理をしている。 "|"(OR演算子)をかけると、 00000000 00000000 00000000 00000000 : ret_param 00000000 00000000 00000000 11001000 : in_bytes ---------------------------------------------------------------------- 00000000 00000000 00000000 11001000 : ret_paramに格納 つまり、"ret_param" には「00000000 00000000 00000000 11001000」が格納される。 同様に、 for文の1回目 : 00000000 00000000 00000000 11001000 : ret_param 00000000 00000000 11001101 00000000 : in_bytes ---------------------------------------------------------------------- 00000000 00000000 11001101 11001000 : ret_paramに格納 for文の2回目 : 00000000 00000000 11001101 11001000 : ret_param 00000000 11101010 00000000 00000000 : in_bytes ---------------------------------------------------------------------- 00000000 11101010 11001101 11001000 : ret_paramに格納 for文の3回目 : 00000000 11101010 11001101 11001000 : ret_param 01001100 00000000 00000000 00000000 : in_bytes ---------------------------------------------------------------------- 01001100 11101010 11001101 11001000 : ret_paramに格納 となり、long型変数 "ret_param" には最終的に「01001100 11101010 11001101 11001000」、つまりもとのタイムスタンプ「1290456520」が格納される。 < I2C通信を使い、タイムスタンプ情報(4 Byte値)を外部EEPROMに書き込み、読み込む > |
ArduinoのEEPROMに値を格納できたけれど、ひとつ問題がある。 ArduinoのEEPROMの読み書き回数は、公称100000回だそうだ。 タイムスタンプ情報を一回書き込むためには4回の書き込みが必要である。 畑に設置する定点観測器で計測間隔を5分にするとして、1時間で48回、 1日で1152回もの書き込み処理が発生することになる。 つまり、たった86日間で書き込み限度回数に達してしまうのである。 三ヶ月弱でArduinoを買い替えるのは経済的に無駄である。 そこで、内部EEPROMの代わりに、Arduinoに外部接続できる非常に安価なEEPROM、24LC64を使用する事にする。 24LC64は公称書き込み限度回数1000000回、秋月だと60円で購入できる。 上記の計算だと28ヶ月持つ。 コストが安くて設置も簡単だけど、あえて欠点を挙げるならばアナログピンを二つ使用しなければならないところ。 回路は、以下のリンク先を参考にさせて頂きました。ありがとうございます。 なんでも作っちゃう、かも。 Arduino で遊ぼう - 大容量EEPROMに毎日の温度変化を保存する |
/* * sketch name : eeprom_I2C_r_w_4B * summary : タイムスタンプ情報(4 Byte値)を外部EEPROMに書き込み、読み込む */ #include <Wire.h> #include <DateTime.h> // log start date int year = 2010; int month = 11; int day = 20; int hour = 20; int minute = 45; int second = 0; #define EEPROM_DEV_ADDRESS 0x50 // I2CEEPROM 24LC64 long log_timestamp; /* 計測時の確認用点滅LED */ #define LED_PIN 9 void setup(void) { Serial.begin(9600); pinMode(LED_PIN, OUTPUT); Wire.begin(EEPROM_DEV_ADDRESS); DateTime.sync(DateTime.makeTime(second, minute, hour, day, month, year)); } void loop() { digitalWrite(LED_PIN, HIGH); log_timestamp = DateTime.now(); Serial.println("Timestamp is written to the EEPROM..."); Serial.print(" DEC : "); Serial.println(log_timestamp, DEC); Serial.print(" BIN : "); Serial.println(log_timestamp, BIN); Serial.println(" "); i2cEeprom4BWrite(EEPROM_DEV_ADDRESS, 0, log_timestamp); // 外部EEPROMにタイムスタンプ情報(4byte値)を書き込む log_timestamp = i2cEeprom4BRead(EEPROM_DEV_ADDRESS, 0); // 外部EEPROMからタイムスタンプ情報(4byte値)を読み込む Serial.println("Time stamp read from the EEPROM..."); Serial.print(" DEC : "); Serial.println(log_timestamp, DEC); Serial.print(" BIN : "); Serial.println(log_timestamp, BIN); Serial.println(" "); digitalWrite(LED_PIN, LOW); delay(5000); } /* * func name : i2cEeprom4BWrite * processing : 4byte値をI2C外部EEPROMに書き出す * param : deviceAddress / I2C外部EEPROMのデバイスアドレス * startMemoryAddress / EEPROM上の書き込み開始アドレス * longParam / 書き込む4byteのデータ * summary : デバイスの0番目の番地 / 32〜25bit * 1番目の番地 / 24〜17bit * 2番目の番地 / 16〜9bit * 3番目の番地 / 8〜1bit * return : */ void i2cEeprom4BWrite(int deviceAddress, unsigned long startMemoryAddress, long longParam) { Wire.beginTransmission(deviceAddress); Wire.send((int)(startMemoryAddress >> 8)); Wire.send((int)(startMemoryAddress & 0xFF)); byte byteArray[sizeof(long)] = { (byte)(longParam >> 24), (byte)(longParam >> 16), (byte)(longParam >> 8), (byte)(longParam >> 0) }; for (int i = 0; i < sizeof(long); i++) { Wire.send(byteArray[i]); } Wire.endTransmission(); delay(5); } /* * func name : i2cEeprom4BRead * processing : 4byte値をI2C外部EEPROMから読み出す * param : deviceAddress / I2C外部EEPROMのデバイスアドレス * startMemoryAddress / EEPROM上の読み込み開始アドレス * return : return_long / 読み込んだ4byteデータ */ long i2cEeprom4BRead(int deviceAddress, unsigned long startMemoryAddress) { Wire.beginTransmission(deviceAddress); Wire.send((int)(startMemoryAddress >> 8)); Wire.send((int)(startMemoryAddress & 0xFF)); Wire.endTransmission(); Wire.requestFrom(deviceAddress, sizeof(long)); delay(5); long received_long; long return_long = 0; int cnt = sizeof(long) - 1; for (int i = 0; i <= cnt; i++) { if (Wire.available()) { received_long = Wire.receive(); return_long |= (received_long << (8 * (cnt - i))); } } return return_long; } |
| 次回は入力するセンサについて実験してみます。 < 参考リンク >
|
2010年11月23日火曜日
定点観測データロガー -2 : EEPROMにデータを保存する
定点観測データロガー -1 : Watchdogタイマーとスリープからの自動復帰
アウトドアに設置され、静かにデータを計測し続ける定点観測ロガー。 なぜか「定点観測」という言葉の響きからとてもロマンチックなイメージをしてしまう。 まるで毎晩天体望遠鏡で夜空の星を眺め続ける少年のような(それは天体観測)。 大自然の中に存在する、小さいけれどメカニカルな存在感を美しいと感じているんだと思う。 Arduinoを使い、一ヶ月くらい放置してもきちんと環境データを記録し続けてくれる定点観測ロガーを作成する。 八月から始めた畑は家から結構離れた郊外にある。 往復2時間かかるので、仕事帰りにちょっと野菜達の様子を観るということは無理である。 育成の観察や害虫駆除など本当は毎日でもしたいようなことができない分、農業はまだ身近に感じる事ができない。 だからというわけでもないけど、定点観測ロガーを設置する予定のフィールドは僕の畑である。 畑の面積は約16平方メートルで、これは六畳一間をひとまわり大きくしただけの広さだ。 堆肥の山の発酵熱は成分調整をうまくやれば季節を問わず摂氏80℃にも達する事があり、 また真冬の霜の降りた畝の表土は0℃を下回る。 それにキーホールガーデンや畝、池など、狭い空間なりにできるだけ多様な小環境を造成したので、 ベランダのプランターガーデンよりは複雑な微気象の変化を作り出せるのではないかと思う。 土の水分計測も考えたが、必要ないので止めた。 共同農園には水道の蛇口が一つしかないしから自動水分補給器のようなものをしかけることはできないし、 プランター栽培とは異なり、種まき後の発芽までの期間以外は自然の雨だけで水分補給は事足りてしまうからである。 計測対象となるのは気温と湿度、それに堆肥の山の発酵熱、土の表面温度、池の水温、照度とする。 温度センサと湿度センサ、フォトダイオードをしかける。 ちょっとした環境データを利用して、種まきの時期の把握とか、自分の畑に適する野菜の選別作業の足しになれば?幸いである。 < 定点観測器の仕様 >
まずは電源である。 これはなんとかなりそう。 超最先端ハイテク技術でもない限りこういうことは既に先人達の解決方法があって、そのヒントはMake:Japanの記事の中に眠っていた。 スリープして電池寿命を延ばすArduino小鳥さえずり機 Watchdog Timerによる自動復帰スリープ機能を使って、電池寿命をなんと4日間から3年間に引き延ばしている。 この記事を読んで初めて、Arduinoでも外部からの割り込みなしにスリープからの自動復帰ができるということを知った。 スリープ状態の時には電力消費を限りなく低く抑え、設定したスリープ間隔に達したら自動復帰させて目的の処理を実行させ、 再び設定した間隔でスリープさせる。 畑には毎週、最低でも隔週間隔で通うので、電池4個を使って2週間持てばいい。 < Arduino スケッチ > 以下はテストスケッチである。 ArduinoのWatchdogとSleepのライブラリはなんでも作っちゃう、かも。から賜りました。ありがとうございます。 Watchdogライブラリ リンク先からファイルをコピペし、Watchdog というディレクトリを作成してその中に保存。 Sleepライブラリ リンク先から Sleep003.zip をダウンロード&解凍ファイルする。Sleep というディレクトリができる。 それぞれ、Arduino/libraries/ 以下に保存する。 参考サイトのスケッチをちょっといじった。 デジタル13ピンのLEDを3秒間点灯させた後、スリープさせて1秒後にスリープ復帰...を繰り返す。 Arduino Pro をUSBケーブルで接続して、スケッチをアップロード。 /* * sketch name : watchdog_sleep_led * summary : LEDを点灯させた後に指定の間隔スリープ、自動復帰させる */ #include <Watchdog.h> #include <Sleep.h> // オブジェクト作成 WatchdogClass WD = WatchdogClass(); void setup() { pinMode(13,OUTPUT); // 13ピンを出力に設定 WD.systemResetEnable(false); // スリープ復帰時にスケッチをリセットしない(setup関数を実行しない)ように設定 WD.enable(WatchdogClass::TimeOut1s); // スリープ間隔を1秒に設定 } void loop() { digitalWrite(13,HIGH); // LED点灯開始 delay(3000); // 3秒間 digitalWrite(13,LOW); // LED点灯停止 WatchdogClass::timerReset(); // Watchdogタイマーリセット SleepClass::powerDown(); // パワーダウン } Arduino Pro 328 3.3V 8MHzにスケッチをアップロードするには3.3V動作Arduino製品向け小型USB-シリアルアダプタと USBケーブル(Aオス-miniBタイプ)が必要である。 スケッチの実行は、Arduino Pro 328 3.3V 8MHzとPCをただ繋ぐだけである。 データロギングは、 digitalWrite(13,HIGH); delay(3000); digitalWrite(13,LOW); 次回は、もう一つの問題点である、持続した時刻情報の保存を試してみる。 < 参考リンク >
|
2010年10月17日日曜日
コンパニオンプランツ 秋冬野菜
: 秋冬野菜のコンパニオンプランツ相関図。 現在、畑に植えている作物のみをリストアップした。 コンパニオンプランツの効果は科学的に照明されているわけではないけれど、面白そうなので参考にして植えてみる事にした。 |
2010年9月11日土曜日
農夫になる日 -3 堆肥作りに不具合発生
先々週から地道に作り続けている堆肥。 先週、土を切り返した時に放線菌(有効菌)が発生していたので安心していた。 しかし本日、農業指導員のIさんの指摘を受けた時にミスをおかしていたことが判明した。 |
ビニールを剥がした後の堆肥の山。 この一見順調にみえる堆肥の発酵具合がおかしいことに気付いたのは、山に鍬を入れて土の切り返しをした時である。 |
先週は土に鍬を入れるごとに見えていた放線菌がいっこうに見当たらない。 それに、むせ返るような牛糞堆肥の匂いがまったくしなかった。 堆肥の山に手をやると、火傷しそうになるくらい熱い。 |
先週の講義によると、うまく発酵がすすめば放線菌は姿を消して山の土の温度も下がるが、匂いは消えないはずである。 しかしまだ堆肥を仕込んでから二週間しか経っていないし、土の温度は下がっていないので、完熟したわけではない。 疑問に思って土を切り返してうちに、どうも土の質が以前よりも粘土質に近づいていることに気付いた。 鍬を入れると、鍬の先に土がねっとりとくっつく。 それに土の中がどうも青っぽい。 農業指導員のIさんに見てもらうと、どうも堆肥に仕込んだ水分が多すぎたようである。 そのせいで土は発酵というよりも腐敗してしまったようなのだ。 堆肥の山の水分は60%に保つのが理想である。 そしてその状態は『土をギュッと握ると固まるが、指で押すとパラリと崩れる』程度というが、素人にはいまいち解りにくい。 多すぎるに超したことはなかろうと堆肥一山にバケツ3杯の水を仕込んでしまったけれど、それが間違っていたようだ。 Iさんが言った。 「もう一度山を作り直したほうがいいですよ。」 ******************* 失敗した堆肥の山を区画の四隅に避けて、余った土を再び耕した。 今週の中頃に来た台風9号のおかげか、乾いてみえるのは土の表面5cmくらいで切り返すとすぐに湿った土が見えた。 初めて耕した時とちがってずいぶん切り返しが楽である。 スコップがザックザックと入るので、およそ1時間程度で堆肥用の土の山を作る事ができた。 再び、米ぬかと腐植土を混ぜ込む。 先週から畑をやり始めたKさんから、堆肥に混ぜ込む肥料の役割を聞いたのでメモ。 ■堆肥に混ぜ込む肥料の役割
|
作り直した堆肥の山。 |
山から土を一すくい。 Iさんに土を見てもらうと、水分を混ぜ込まずにこのまま堆肥の山にビニールをかけてしまってもよいという。 台風のおかげか、水分の含み具合が丁度よいらしい。 写真の状態が『水分60%』。 土をギュッと握ると固まる。 |
指で押すと、パラリと崩れる。 思っていたよりさらさらの状態なので驚いた。 これが60%であるならば、先週の切り返し時にはおそらく90%近い水分を混ぜ込んでいたのではなかろうか。 |
完成。 水分を抜けばもう一度やりなおせるとのことで、区画の四隅には失敗した前の堆肥を敷いた。 またこれから三週間は様子見です。 |
2010年9月5日日曜日
農夫になる日 -2 畑に関する基礎知識
今日はマイファームの『秋冬野菜・座学講座』に行って来た。 農業指導員の方は畑には週二、三回くらいは来て頂けるが、時間帯が合わなかったりしてなかなか会えなかったりする。 まだ畑に触り始めたばかりの僕のような人間にとっては、日頃から聞きたかった知識をまとめて教えてもらえるよい機会である。 以下、忘備録と情報の蓄積も兼ねて。 **************************************** ノート(畑に関する基礎知識) **************************************** 畑に来たらまずやること
|
**************************************** |
本日の畑作業開始。 ビニールを剥がし、堆肥に水分を混ぜ込み、山を切り返す。 |
堆肥の山の表面に放線菌(有効菌)のだす白い菌糸を発見した。 |
山を切り崩した内部。 山を切り崩すと、土はざっくりと大きな塊になって崩れる。 土自体は柔らかくなっているものの、やはり粘土質の土であるせいか、土の粒子同士がくっつきやすい。 堆肥が完熟すれば、土も細かくなるという。 ここにも菌糸が張っている。 とりあえず発酵は順調のようである。 |
2010年9月4日土曜日
ベランダ菜園 -4 堆肥作り
途中放棄しかけたベランダ菜園だけど、もう一度チャレンジ開始。 以前使用したプランターの土は、きちんと対処すれば捨てる事なくもう一度使用できるということを知った。 自然のフィールドにある土と異なり、プランターの土は放っておいて肥沃になることはまず期待できない。 以前育てた野菜の種類に寄って土中の栄養素が偏った状態であり、かつフィールドでは拡散されるはずの病原菌の類いが圧縮されて増幅している可能性もあるので、適切な処置を施した上で再利用しなければならない。 梅雨開けごろにたまたま本屋で見つけた雑誌『男の隠れ家 2010年 07月号 これから農業をやってみようという人にはうってつけの特集で、貸し農園や自宅農園の情報など、人それぞれのスターティングガイドを始め、土の基本的な知識や野菜の特徴、農具の使い方など、結構細かく記載されている。 その中で、プランター土の再生方法というのを見つけた。 ■プランター土の再生方法
| |
上記内容をもとに実は7月半ばごろからプランター土の堆肥作りをしていたのでした。 設置しておいたビニールの封を開けてみると、仕込んだ時に匂った土の匂いがまったくしない。 かき混ぜてみると、土の奥のほうからもわっと匂ってきたが、おそらく溜まっていた発酵ガスが抜けているのだろう。 ホームセンターで買って来たプランター用の野菜培養土と半々に混ぜて、大きめのプランターを三つ、ベランダにセットした。 ここにはハーブ類を植える予定。 | |
2010年8月29日日曜日
農夫になる日 -1 土を耕して堆肥を作る
| 先週末から農地を借りて、地道に土を耕している。 今年の四月に地元の区民農園に応募してみけれど、倍率が高かったのか落選した。 それ以来、いつかまた始めよう始めようと思いながら半年近く経ってしまったので、運動不足の解消も兼ねてそろそろ始めようと思い立っていろいろ調べるうちにマイファームという貸し農園を見つけた。 農園のポリシーとしては
その点マイファームでは有機肥料のみ使用可という制限を設ける事で、ある程度は土の質が保証されている。 始めはもちろん自分の農地の土を自分で作っていかなければならないけれど、週数回、農業指導員によるアドバイスも受けられるので初心者には取り組みやすいかもしれない。 それまで農業は未経験ではないにしても、積極的にやってみたことはなかった。 一応家のベランダでいろいろやってみたけれど、ほとんど失敗してしまった。 ■ベランダ栽培歴 4ヶ月
これからは食物も含めていろいろなものが値上がりしていくという不安がある。 とくに都会では顕著だけど、お金をださないと物の質は保証されなくなっていって、生活の質の悪化はまず確実に食料に現れる。 一人暮らしを始めた時期に、スーパーの野菜の値段と質がかなり上下することに驚き、それまで母親の作ってくれたご飯の栄養バランスを思い出してしみじみ感謝してしまった経験のある方もおられるでしょう。 とりあえず今の半分くらいは自産自消できるくらいの正確な農業技術を知りたいなあということで、住んでいる場所からはちょっと遠かったけれど契約することにした。 |
農園風景。 全部で90区画あり、ひと区画あたりだいたい15㎡。 もとは水田であり、10年近く放置されていた場所だった。 マイファームがこうした耕作放棄地を地主から借受け、農園として貸し出している。 |
借りた区画。 農具置き場兼休憩小屋と簡易トイレのすぐ近くにある。 水道から近いので、水やりも他の区画と比べて楽である。 写真は、耕した後に堆肥の山を作ったところである。 まずはすべての基礎となる土作りからやらなければならない。 草取りをし、スコップで土を掘り返してから肥料と土を土に混ぜ込んで堆肥の山を作る。 この猛暑でただでさえ固い元水田の土がカチカチに固まっていて、スコップを跳ね返してしまう。 区画全部の草取りと耕起が終わっても、土の粒が大きく、スコップと鍬で少しずつ細かく砕いて行かねばならない。 管理人のIさんに教わった堆肥の山の作り方は以下。
土が粘度質であるせいか、表面からかけただけでは中までしみ込まないないので、堆肥の山のてっぺんを火山のカルデラのように崩し、そこにバケツの水を入れ、徐々にかき混ぜながらもう一度山を作るようにした。 その後に素早くビニールの透明マルチをかぶせて、ひとまず完了。 |
畑の土。 結構粘って砕き続けたおかげか、かなり細かくなった。 水を加えてしばらくすると、かなりフカフカの土になる。 |
農具置き場兼休憩小屋。 農業に必要な一通りのものは置いてあるので、畑に行く時は着替えのみでよい。 草木に囲まれているのにあまり蚊がいないのが不思議だった。 |
とりあえずの目標は、冬の鍋に入れるものを作る事かな。 これから1年間、体力と気力が続くまで頑張ってみようと思います。 |
登録:
投稿 (Atom)




