工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Earth Analyzer: 農業支援のための高度IoT環境監視ローバー

必要な部品と材料

部品名数量
Bolt IoT Bolt WiFiモジュール1
Arduino UNO1
Arduino Nano R31
nRF24L01 無線モジュール2
DCモーター 12V2
DFRobot ソーラー電源管理ボード (12V鉛バッテリー用)1
SparkFun L298 デュアルHブリッジ モータードライバー1
ジャンパーワイヤー(汎用)1セット
LM35 温度センサー1
DFRobot 静電容量式土壌水分センサー (耐腐食)1
SG90 マイクロサーボ1
ジョイスティック 10kΩ2

必要な工具

使用ツール・サービス

プロジェクト概要

農家を支援するためのローバー「Earth Analyzer」。主に3つのモジュールで構成されます。

モジュール1: メインローバー制御(DCモーター駆動・センサー読み取り)

2つのDCモーターとL298ドライバーで走行制御。Bolt WiFiモジュールのデジタルピン(0-3)でモーター制御、デジタルピン4で土壌水分センサー、アナログピンA0でLM35温度センサーを接続。電源はソーラー充電コントローラー経由で12V鉛バッテリーから供給。
Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー

モジュール2: 近距離無線制御(nRF24L01 + ジョイスティック)

nRF24L01で近距離無線制御を実現。ジョイスティック2個で走行方向とサーボ制御。
Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー

モジュール3: クラウド連携・アラート通知

Arduinoコード(送信側・受信側)

nRF24L01通信用コード(送信側: ジョイスティック読み取り→無線送信、受信側: 受信→モーター/サーボ制御)

// 送信側 (Transmitter)
#include 
#include 
#include 
RF24 radio(7, 8); // CSN, CE
const byte address[6] = "00001";
int x_key = A1, y_key = A0, p_key = A3, q_key = A2;
// ジョイスティック値読み取り、閾値判定でpos(100-700)決定、radio.writeで送信
// 詳細コードは元記事参照
// 受信側 (Receiver)
#include 
#include 
#include 
#include 
RF24 radio(7, 8);
const byte address[6] = "00001";
Servo servo;
// radio.readでpos受信、値に応じてモーター制御(デジタルピン3-6)とサーボ(ピン9)駆動
// pos=100:停止, 200:前進, 300:後進, 400:左, 500:右, 600:サーボ90度, 700:サーボ180度

Telegramアラート通知(Python + Bolt Cloud)

土壌水分センサー値が閾値超過時にTelegramで通知。サーバー側(Python on repl.it等)でBolt Cloud API経由でセンサー値取得、Telegram Bot APIで送信。

# main.py
import requests, json, time
from boltiot import Bolt
import conf

mybolt = Bolt(conf.bolt_api_key, conf.device_id)

def get_sensor_value_from_pin(pin):
    try:
        response = mybolt.digitalRead(pin)
        data = json.loads(response)
        if data["success"] != 1: return -999
        return int(data["value"])
    except Exception as e:
        print(e)
        return -999

def send_telegram_message(message):
    url = "https://api.telegram.org/" + conf.telegram_bot_id + "/sendMessage"
    data = {"chat_id": conf.telegram_chat_id, "text": message}
    try:
        response = requests.request("GET", url, params=data)
        telegram_data = json.loads(response.text)
        return telegram_data["ok"]
    except Exception as e:
        print(e)
        return False

while True:
    sensor_value = get_sensor_value_from_pin("4")
    print("Current sensor value:", sensor_value)
    if sensor_value == -999:
        time.sleep(10); continue
    if sensor_value >= conf.threshold:
        message = "Moisture value exceeded threshold"
        send_telegram_message(message)
    time.sleep(100)
# conf.py
bolt_api_key = "XXXX"
device_id = "BOLTXXXX"
telegram_chat_id = "@XXXX"
telegram_bot_id = "botXXXX"
threshold = 0

Telegramボット作成手順

  1. Telegramアプリインストール・アカウント作成
  2. 「New Channel」でチャンネル作成(公開設定、永久リンク名メモ)
  3. @BotFatherで「/newbot」実行、ボット名/ユーザー名設定、トークン取得(botトークン形式で保存)
  4. チャンネルの管理者にボットを追加、「Post Messages」権限付与
Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー

Google Assistant連携でSMS/メール通知 (Integromat + IFTTT + Twilio + Mailgun)

「OK Google, センサー値を送って」でLM35温度値をSMS/メール受信。Integromatでシナリオ構築:IFTTT Webhook受信 → HTTPでBolt Cloudからセンサー値取得 → ルーターでMailgun/Twilioに分岐 → メール/SMS送信。スケジューリング「Immediately」有効化。
Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー

IFTTTアプレット作成

  1. IFTTTで「New Applet」→ Google Assistant「Say a simple phrase」→ コマンド例:「send the temperature sensor value」
  2. 「+that」→ Webhooks「Make a web request」→ URLにIntegromatのWebhook URL貼り付け、POSTメソッド
Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー

回路図

Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー Earth Analyzer: 農業支援のための高度IoT環境監視ローバー

すべてアップロードして動作確認を。質問はコメント欄へ。

製造プロセス

  1. Bluetooth操作のArduinoスパイボットを自作する
  2. FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
  3. 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
  4. 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
  5. ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
  6. Arduinoプロジェクトのための最適化電源ソリューション
  7. Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
  8. スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
  9. Bolt IoTとArduino UNOでLED輝度をシームレス制御
  10. ゲーム用カスタムArduinoジョイスティックハンドルの製作
  11. Arduino Nano R3で本格的なCNCマシンを自作する