Arduino 101による高度なスマートごみ監視システム:BLEとWi-Fi統合
部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino 101 | 1 | メインMCU、BLEでデータ送信 |
| Seeed Base Shield V2 | 1 | 配線を大幅に簡素化 |
| Arduino WiFi Shield 101 | 1 | Arduino 101に接続しWi-Fiでデータ送信 |
| Arduino MKR1000 | 1 | WiFi Shield 101の代替として使用可能(同等の使い方) |
| 超音波距離センサー HC-SR04 | 1 | Grove Arduino 101キット付属品、任意の超音波センサーで可 |
| 9V電池 | 1 | 電源 |
| 9V電池スナップ | 1 | |
| ジャンパー・ワイヤー | 1セット | |
| スライド・スイッチ | 1 | |
| LED | 3 |
必要な工具
- グルーガン
- 電動ドリル(ボッシュ等)
使用アプリ・サービス
- Arduino IDE
- Blynkアプリ(スマホでプロジェクトを可視化・監視可能な優れたホビイスト向けアプリ)
プロジェクト概要
イントロダクション
IoTを活用したスマートごみ監視システム
現代ではタスクとシステムがIoTの力で融合し、より効率的な運用と迅速な業務遂行が可能になっています。指先に全ての力がある今、私たちが考案したのがこのシステムです。
IoTは極めて多様なデバイス、リンク層技術、サービスを透過的・シームレスに統合し、何百万人もの人々が利用できるデータを提供できます。汎用IoTアーキテクチャの構築は、関わるデバイス・技術・サービスの多様性ゆえに非常に複雑な課題です。
環境問題の主要課題の一つは固形廃棄物管理であり、これは社会の健康と環境に影響を与えます。ごみの検知・監視・管理は現代の主要課題です。従来の人手によるごみ箱監視は手間・時間・コストがかかりますが、現在のテクノロジーで容易に自動化できます。
これが私たちの解決策:ごみ管理を自動化するIoTごみ監視システム。都市を清潔かつ健康的に保つ革新的な方法です。
ご家庭やコミュニティ、周囲の環境をきれいにする一助となるこのシステムの作り方をご紹介します。
監視システムの概要
着想のきっかけ:ごみ収集車が1日2回町中を回っていましたが、効率が悪かったのです。通りAは忙しくごみがすぐ満杯になるのに、通りBは2日経っても半分以下。この非効率を解消する「ユーレカ」の瞬間でした。
本システムは、任意の時点でごみ箱の充填レベルをリアルタイムに表示します。このデータで収集ルートを最適化し、燃料消費を削減。収集作業員が日次・週次のスケジュールを効率的に計画できます。
判定基準
基本モデルの動作:
- 最初にごみ箱の高さを入力 → ごみの割合を算出
- 以下の2条件のいずれかを満たすと「回収必要」と判定:
- 量の基準:ごみが箱の75%以上(閾値は変更可能)
- 時間の基準:75%未満でも2日以上変化なし → 腐敗・悪臭防止のため回収
電子回路
- 超音波センサー(距離センサー)を蓋の内側(ごみ面向き)に設置。ごみが増えるとセンサーとの距離が減少。この生データをマイコンへ送信。
- マイコン(Arduino 101)がデータ処理し、Wi-Fi経由でアプリへ送信。
- アプリでごみ量をアニメーションで可視化。
これにより、注意が必要なごみ箱が一目でわかり、最効率ルートで回収可能。

私たちについて
全プロジェクトをInstructablesで公開。YouTubeチャンネル、Instagramでも進行中の写真や会話を共有。気に入ったらPatreonでサポートを。業務問い合わせ:technovationrobot@gmail.com
材料(詳細)
ハードウェア:
- Grove Base Shield v2
- Arduino 101
- 9V電池(Gearbest) - Arduino給電用
- プラスチック容器(Gearbest) - 全部品が収まる防水ボックス
- 超音波センサー(Gearbest) - 蓋に取り付け、ごみ量検知のキーコンポーネント
- ジャンパー・ワイヤー(Gearbest)
- Arduino MKR1000(Amazon) - Wi-Fi接続を簡素化する最新MCU
- 白スプレー塗料 - 普通の箱をプロフェッショナルな製品に
工具: 電動ドリル、グルーガン
ソフトウェア: Arduino IDE、Blynk(Wi-Fi対応MCUと通信するAndroidアプリ)
Gearbestはホビイスト向け製品が安価で良質。おすすめです!
モデル構築
自宅で小規模テスト用モデルを作成しましょう。古い小型プラスチック容器を用意し、部品が入るか確認。
蓋を外し、超音波センサーの「2つの目」をなぞる(ごみ面向き側)。最大ドリルビット(筆者は10mm)で穴を開け、必要ならヤスリで調整しセンサーがピッタリ嵌まるまで加工。
スプレー塗装
白を選択(好みの色でOK)。内外とも2度塗り、蓋も忘れずに。※煙は有毒なので屋外で作業。
超音波センサー取り付け
センサーを押し込み、ホットグルーで固定。スイッチ用スロットを作り、全て収納。
回路
Base ShieldをArduino 101に装着し、超音波センサーをD6ピンに接続。
ケース組み立て
全部品を慎重に収納し箱を閉じる。
家庭用ごみ箱でテスト。
両面テープで蓋に貼り付け、センサーが下向きになるよう固定。
Blynkアプリ入門
インターネット接続にはBlynkプラットフォームを使用(Android Play Storeからダウンロード)。Arduino IDEのファイル>スケッチ例>Blynkに多数のサンプルあり。
Blynkアプリリンク
アプリとコードのセットアップ
Arduino 101をプログラミングするにはドライバーが必要。Arduino IDEのツール>ボードで「Arduino/Genuino 101」があればスキップ、なければボード・マネージャで「intel curie boards」を検索・インストール。
ライブラリ・マネージャで「WiFi101」「Blynk」「Ultrasonic」を検索・インストール。
テスト
Blynkアプリでごみレベルを3段階LEDで表示。マイコンにArduino 101、接続タイプはBLE(Bluetoothではない)を選択。メールで届く「auth token」をコードに入力。
結果!
ついにコンセプトが動作!
Blynkアプリで縦に3つのLEDを配置:緑(0-25%)、オレンジ(25-65%)、赤(65-100%)。
ステップ14:GPS統合(構想)
重要:実際には実装していません。 町中のごみ箱に20台以上設置するにはコストが高すぎるため、アイデアのみ提示。ランダム・シミュレーションでは最短ルートが正しく算出されました。
Google Mapsと融合する計画:
- 町中のごみ箱を手動で巡回しGPS位置を取得、Google Mapsに保存
- ごみ箱数分のLED(例:20個)をBlynkに配置
- 収集車ドライバーが朝Blynkを開き、回収必要なごみ箱を選択 → 最短・最高効率ルートを自動生成
幅広い応用機会
都市・国家規模でのインパクトは大きいですが、個人・コミュニティ・アパート・一軒家でもIoTの力で生活をシンプルにできます!
ステップ16:課題と対策
- 超音波センサーの配置:ごみが中央に山盛りになると誤検知の恐れ
- 液体・水分対策:防水エレクトロニクスと組み込みソフトウェアが必要
- 最大の課題:3G/4Gセルラー網の可用性。自宅モデルではWi-Fiで回避したが、実運用ではこれが主課題。数年で世界中にインターネットが行き渡ると期待
結論
有望なプロジェクトですが、上記の小改良が必要です。皆さんのバージョンやアイデア、ご意見をコメントでお聞かせください。楽しんでいただけたら幸いです。引き続き、生活と環境にインパクトを与えるアイデアに取り組みましょう。いいね・シェア・登録で次回作もお見逃しなく!
HAPPY MAKING :)
人気プロジェクト
他の作品もぜひご覧ください!
- Cubex the Sensor safe - 動画必見
- その他多数:Technovation でフォローを!
コード
IoTごみ監視アプリ(Arduino)
Blynkアプリ上で縦並び3LEDによりリアルタイムごみレベル表示。緑:0-25%、オレンジ:25-60%、赤:60-100%。
#define BLYNK_PRINT Serial
#include
#include
#include
// BlynkアプリのProject Settings(ナットアイコン)でAuth Token取得
char auth[] = "8b7229b2c3ec4b999eca6781903a208d";
BLEPeripheral blePeripheral;
WidgetLED green(V1);
WidgetLED orange(V2);
WidgetLED red(V3);
Ultrasonic ultrasonic(7);
int distance = 0;
int thresh[3] = {20, 12, 4}; // 距離閾値(cm)
void setup() {
Serial.begin(9600);
delay(1000);
blePeripheral.setLocalName("garbage");
blePeripheral.setDeviceName("garbage");
blePeripheral.setAppearance(384);
Blynk.begin(blePeripheral, auth);
blePeripheral.begin();
Serial.println("Waiting for connections...");
}
void loop() {
distance = ultrasonic.distanceRead();
Serial.print(distance);
Blynk.run();
if (distance <= thresh[0] && distance >= thresh[1] && distance >= thresh[2]) {
green.on(); Serial.println(1);
} else if (distance <= thresh[0] && distance <= thresh[1] && distance >= thresh[2]) {
green.on(); orange.on(); Serial.println(2);
} else if (distance <= thresh[0] && distance <= thresh[1] && distance <= thresh[2]) {
green.on(); orange.on(); red.on(); Serial.println(3);
} else {
green.off(); orange.off(); red.off(); Serial.println(0);
}
delay(100);
}
回路図
製造プロセス
- Raspberry Pi 3とPubNubでリモート気象監視
- Python連携で信頼性向上: Arduino RFID勤怠管理システム
- スマート室内空気品質・廃棄物監視システム:Raspberry Pi/Arduino/NodeMCUでIOTA Tangle連携
- Arduino Unoベースの人間検知レスキューロボット:センサー統合ステップバイステップ
- スマートブラインド:Arduinoとソーラー電源で実現する自動光制御
- SERENA:Arduino Mega 2560とTFT LCDタッチスクリーン搭載カスタムアラームシステム
- ESP8266・Arduino・超音波センサーで作るスマートIoTジャー:リアルタイム中身監視
- ArduinoとESP8266で作るWi-Fi対応スマートドアロック — スマホで解錠
- スマートスピーカーで非接触心拍モニタリング─ 不整脈検知まで実現する革新システム
- Biz4Intelliaスマートレベル監視ソリューションの7つの主要メリット
- C# usingステートメント完全ガイド:名前空間インポート、エイリアス、静的ディレクティブ