忍者ブログ

農業を始めよう

社会人向け農業大学校の生活を伝えます。

[PR]

2025/12/20(Sat)20:36

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

No.|CommentTrackback

農業を志したのは

2019/03/30(Sat)21:39

定年後も一生涯続けられる仕事として農業を選びました。

 そこに至るには、趣味として続けているトレッキングと農村風景への親しみ、料理やDIY、そして農家の方と直売所で買う新鮮な野菜のおいしさに対する感動がありました。

 いろいろな就農フェアや体験会に参加して、プロの方や就農2年目の方の話を伺い、具体的な就農形態と収支予定を考えました。

 まずは幅広く基礎を学ぶために、農業大学に通います。その間に目指す形態に近い農家さんの元で研修させて頂きながら、就農地を探します。

 皆様には温かく見守って頂きたく、よろしくお願いします。
PR

No.4|農業・就農Comment(0)Trackback

Arduino + LPWA(Sigfox)を用いた遠隔地環境モニタリング

2019/03/19(Tue)08:12

Arduino + LPWA(Sigfox)を用いた遠隔地環境モニタリング
屋外圃場における温度・湿度・照度のリモートモニタリング実証実験です。
・電池等で長期間稼働
・携帯などの電波でクラウドに定時アップロード可能
この条件を満たす記事「Interface 2018/10月号 農業IoT向きワイヤレス&バッテリ動作の実験」を実際に試してみました。補足情報なので詳細は元記事をご参照ください。
データ通信には900MHz帯の電波を使うSigfoxを用います。Sigfoxは日本の人口90%以上の広範囲をカバーする少量データの送受信サービスです。Arduinoと組み合わせることで、電池で一年稼働するモニタリングシステムが初年度の通信料込みで10000円程度で作成できます。(二年目以降年間約1000円)
1.購入部品
・Arduino Pro 328 - 3.3V/8MHz(pro miniと間違わないように)
・Arduinoシールド用ピンソケットのセット(8ピン×2、6ピン×2)
・FTDI Basic Breakout-3.3V USB-シリアルアダプター
・ピンソケットは要ハンダ付け
・基板左下のスイッチはBATT側
・PCからの書き込み時はUSB-シリアルアダプタからArduino proに給電される

・GROVE - デジタル温度・湿度センサPro
 スイッチサイエンスで約2000円。UNASHIELD基板上にも温湿度センサは搭載されていますが、本体は防水ケースに入れるため、センサを外出しする必要があります。付属のGROVEケーブルは片方のコネクタを切断してArduinoに直結します。
・赤 ->VCC (3.3v)
・黒 ->GND
・黄 ->D10 (温湿度センサのサンプルスケッチDHTtester #define DHTPIN 10  //ピン番号)
・白 -> 使わない
※写真の黄色線はD2ピンに接続されてるが実際はD10に接続する
・Sigfox Shield for Arduino V2S【UNASHIELD-V2S】
 マルツオンラインで約6000円(2019/02時点) Arduino Pro と接続時は左側の2ピンがコネクタにさせずに余るので、基板上の金属部分はテープで絶縁します。
・照度センサGY-49(MAX44009)
amazonで入手可能ですが、中国発送のため納期に数週間を要しました。GROVEコネクタの片側を切断して、センサ基盤に直結します。
 
2.Arduinoスケッチの改造
CQ出版社からダウンロードしたサンプルスケッチを若干改造します。
・温湿度センサーのサンプルを参考に、今回作成するスケッチで動くようにする
・温湿度センサが電圧低下時に安定しないので、温湿度の取得失敗時は10回リトライ
・エラー時に無限ループ while(1){} に入る箇所は本体リセットに変更
UNASHIELD基板付属の気圧センサの値を取得
 
3.Sigfoxクラウドの設定
 データはsigfox backendにアップロードされます。そのままだと16進の羅列なので、sigfox backendのcallbacksを用いてATTのM2X(無料枠)に転送してグラフ化します。
 Sigfox CallbackとAT&T M2A連携 を参考にcallbacksを設定します。
・Custom payload config の設定
temp::uint:16:little-endian hum::uint:16:little-endian ill::uint:32:little-endian vbat::uint:16:little-endian pressure::uint:16:little-endian
URL Pattern の末尾に/updateを付加
 
4.データ送信確認
Sigfoxクラウドにログイン後、正常に送信・M2Xに転送できたか確認します。
・送信した生データ確認 Device ->リストのIDをクリック -> 左側メニューのMessages
・Callbackのエラーログ Device-Type -> リストのName -> 左側メニューのCallback -> リスト右中央の!マーク
 
5.防水ケースの作成
100均で適当なケースを購入して、防水と断熱に配慮の上、圃場に刺せるようにします。照度センサーはアクリル製のふたに内側から貼り付けます。温湿度センサーは雨が入り込まないように工夫してケース外に貼り付けます。
6.実際の動作状況
M2Xクラウドで各種データが取得できていることが確認できました。環境データを農業にどう役に立てるのかは課題ですが、データが蓄積されれば品種毎の収穫予想を経験ではなく数値で行える可能性があります。

No.3|農業+IoTComment(0)Trackback

圃場(畑)タイムラプス(2)撮影用Raspberry Pi Zeroの設定

2019/03/18(Mon)21:13

タイムラプス撮影用Raspberry Pi Zeroの設定

作成するもの

圃場(バッテリー駆動)で一定時間毎に写真を撮影してシャットダウンするラズパイを作ります。電池を長期間持たせるために待機時は完全電源Offにします。電源制御は前回作成したArduinoモジュールにて行います。

用意するもの

  • Raspberry Pi Zero/W
  •  設定時に無線LAN接続の方が便利なので。予め無線でssh接続できるようにしておく。
  • PCF8523搭載 RTCモジュール(RTCモジュールなら何でも良い)
  • Raspberry Pi Zero用カメラ


RTC(リアルタイムクロック)の接続

電源を完全に落としたラズパイは時刻を保持できません。そのため写真の撮影時刻を記録するには外付けのRTC(リアルタイムクロック)を接続します。RTCはボタン電池で時刻を保持し続けてくれます。
RTCはi2c接続のため、RTCのVcc,GND,SDA,SCLをラズパイの当該ピンに接続します。

ラズパイの設定

I2Cの設定
sudo apt-get install python-smbus i2c-tools
sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools
sudo raspi-config
  -Interfacing Options
  -I2C
  -Enable(Yes)

(reboot)

sudo vi /boot/config.txt
  最終行に追加
  dtoverlay=i2c-rtc,pcf8523

(reboot)

・アドレス68がUUであることを確認
sudo i2cdetect -y 1


・fake hwclockを無効にする
sudo apt-get -y remove fake-hwclock
sudo update-rc.d -f fake-hwclock remove
sudo systemctl disable fake-hwclock
sudo vi /lib/udev/hwclock-set
 3行をコメントアウトする
 #if [ -e /run/systemd/system ] ; then
 # exit 0
 #fi

・ラズパイの時刻をntpで合わせる
sudo apt-get install ntpdate
sudo ntpdate -v ntp.nict.jp
sudo timedatectl set-timezone Asia/Tokyo
date

・ラズパイからRTCの時間をセットする
sudo hwclock -D -r


・カメラの設定

sudo apt-get install python-picamera python3-picamera
sudo raspi-config
Interfacing Options > Camera > <Yes>でONにします。
reboot
・テスト撮影
raspistill -o image.jpg


・省電力設定

sudo apt install -y chkconfig
sudo chkconfig dphys-swapfile off  #swapの停止
sudo chkconfig plymouth off        #グラフィカルブートプロセス
sudo chkconfig triggerhappy off    #キーボードのショートカットキー
sudo chkconfig alsa-utils off      #サウンド関係
sudo chkconfig bluetooth off       #bluetooth
sudo apt-get install powertop
 BAD の項目はGood になるように変更(powertopが設定変更してくれる)

・メンテナンスモードの設定

運用時はOS起動後、撮影したらすぐにshutdownしてしまうので、メンテナンスログインができません。そのためGPIO 18番とGNDからジャンパ線を出して、ショートしているときのみ運用モードに入るようにします。

・写真を撮影するスクリプト

pi@raspberrypi:~ $ more getphoto.sh
#/bin/sh
raspistill -o ~pi/photo/`date '+%y%m%d-%H%M%S'`.jpg

・起動時の自動実行シェルを作成

pi@raspberrypi:~ $ more autoexec.sh
#!/bin/bash
~pi/autoexec.py
if test $? -eq 1; then
    echo `date '+%y%m%d-%H%M%S'` :boot with OffMente >>~pi/bootlog.log
    /etc/init.d/dhcpcd start
    systemctl daemon-reload
else
    echo `date '+%y%m%d-%H%M%S'` :boot with SHORT >>~pi/bootlog.log
    ~pi/getphoto.sh
    shutdown -P now
fi

・/etc/rc.local にautoexec.shを追記(OS起動時にroot権限で実行される)


・GPIOの値を判定するpythonスクリプト

pi@raspberrypi:~ $ more autoexec.py
#!/usr/bin/python
# coding:utf-8
import time
import RPi.GPIO as GPIO
import sys
GPIO.setmode(GPIO.BCM)
#GPIO18pinを入力モードとし、pull up設定とします
GPIO.setup(18,GPIO.IN,pull_up_down=GPIO.PUD_UP)
sw_status = GPIO.input(18)
if sw_status == 0:
    print("SHORT!")
if sw_status == 1:
    print("OFF!")
GPIO.cleanup()
sys.exit(sw_status)

・全てが動作するのを確認したら、無線LANの自動起動をOFFにします

sudo chkconfig dhcpcd off

・完成写真(右下は温湿度+照度監視モジュール)

No.2|農業+IoTComment(0)Trackback

圃場(畑)タイムラプス(1)Arduino で作るRaspberry Pi 間欠動作用の電源制御モジュール

2019/03/17(Sun)12:21

圃場(畑)のタイムラプス動画を撮りたい
作物の生育状況をタイムラプス動画にすれば楽しいと思いませんか。また別途作成した温湿度+照度モニタのデータと組み合わせれば、数値的な分析の助けになるかもしれません。
圃場タイムラプスはバッテリー駆動が前提なので、実現にはarduinoもしくはRaspberry Piを間欠動作させて撮影します。arduino+カメラ+SDの方が消費電力とシンプルさから現実的ですが、今回はRaspberry Pi+カメラを間欠動作させます。
ラズパイの間欠動作と電源制御
Raspberry Piはshutdown時も電気を消費するので、一定間隔で通電On/Offを制御する仕組みが必要です。sleePiという製品もありますが少し高価なので、今回はarduino+リレーで代替品を作ります。
arduinoの動作仕様
一定間隔でUSBモバイルバッテリーの通電をOn/Offする
arduino本体は電池駆動にする(通常のモバイルバッテリーは消費電力が低いと電源切断されるため)
用意する部品
Arduino Pro Mini 328 3.3V 8MHz
Grove リレー (スイッチサイエンス)
その他作業に必要:Arduino Pro にスケッチを書き込むUSB-シリアル変換基板(5v/3.3v対応)
制限事項
ラズパイ側は電源を落とすと時計が狂うので、RTC(リアルタイムクロック)を持たせる
Arduino側は電源On時から一定間隔でラズパイのOn/Off制御を行う(RTCは省略)
ラズパイのshutdown検知は行わない
完成イメージ

作成手順
Arduino Pro mini にピンヘッダを半田付け
充電池(1.2v)×3の電源の+をraw、-をGNDに接続
GROVEリレーの赤をvcc,黒をGND,黄色をD4に接続
USBケーブルを切断して、黒を直結、赤をリレーの緑コネクタに接続
Arduinoスケッチ
/*
 *   Raspberry Pi Power control
 */
#include <Narcoleptic.h>
// Constants
//const uint32_t upload_interval = 60UL * 60UL * 1000UL; // about 1 hour
const uint32_t upload_interval = 480UL * 60UL * 1000UL;  // 8hour
const uint32_t powerOnTime = 80UL * 1000UL;              // about 80s
const int relayPin = 4;  //D4
const int ledPin = 13;
// Globals
uint32_t last = 0;
// resetMyself() - Reset myself 
void(* resetMyself) (void) = 0;
// setup() - set up function
void setup() {
  pinMode(relayPin, OUTPUT);
}
// loop() - loop body function
void loop() {
  uint32_t start = millis();
  //On
  digitalWrite(relayPin, HIGH);
  digitalWrite(ledPin, HIGH);
  //Wait
  delay(powerOnTime);
  //Off
  digitalWrite(relayPin, LOW);
  digitalWrite(ledPin, LOW);
  // Sleep mcu until next time
  uint32_t t = (last + upload_interval) - (millis() - start);
  last = millis();
  prepareToSleep();     // Set MCU GPIOs for sleep
  Narcoleptic.delay(t); // Sleep MCU with WDT
  // Wake up, restart from reboot
  resetMyself();
}
// prepareToSleep() - Prepare to sleep()
void prepareToSleep(void) {
  // Set GPIO pins for sleep
  for (int i = 0; i < 14; i++) {
    pinMode(i, OUTPUT);
  }
}
スケッチ(プログラム)の動作
スケッチは約8時間毎に80秒通電させるものです。USB microBをラズパイzeroの電源用USBに、Type Aをモバイルバッテリーに接続します。
モバイルバッテリーは消費電力があまりに少ないと電流を止める回路が組まれているので、ラズパイzeroの低電流でも動作するものを選ぶ必要があります
(運次第)。IoT用に電流遮断機能がないものもあります。
プログラムはインターフェイス2018/10の記事を参考にしました。Sleepはhttps://github.com/brabl2/narcolepticライブラリを使用しました。
ラズパイのプログラムはOS起動時に動作して、終了後にshutdownをかけるように組みます。
数週間動作させた補足
Arduinoは8時間毎に起動させる設定ですが、±2時間程度の誤差が生じることがわかりました。正確な間欠動作が必要ならRTCを工夫する必要があります。

No.1|農業+IoTComment(0)Trackback