注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ ここ]をクリックして今すぐ参加しましょう!
Bluetooth環境モニター
このプロジェクトでは、MITアップインベンターで作成されたAndroidアプリを使用して、Arduinoボードからの環境データを受信し表示します。ArduinoボードはDHT11センサーから温度と湿度のデータを取得します。データが収集されると、Bluetoothを介して送信されます。アプリはデータを受信すると、画面上に表示します。
Androidアプリケーションは、 MIT App Inventor という無料のWebベースプラットフォームを利用して構築されます。このプロジェクトは、Arduinoとスマートフォンのインターフェースに慣れる絶好の機会を提供します。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
全てのキットを一括購入するのが便利です。こちらがリンクです:
名称 |
このキットのアイテム数 |
リンク |
|---|---|---|
Elite Explorer Kit |
300+ |
また、以下のリンクから個別に購入することもできます。
コンポーネント紹介 |
購入リンク |
|---|---|
- |
|
1. 回路を組む
2. Androidアプリを作成する
Androidアプリケーションは、 MIT App Inventor という無料のウェブアプリケーションを使用して開発されます。 MITアップインベンターは、直感的なドラッグアンドドロップ機能により、簡易なアプリケーションを作成するための優れたスタートポイントとして機能します。
さあ、始めましょう。
~の始め方 MIT App Inventor にアクセスし、「オンラインツール」をクリックしてログインします。MITアップインベンターに登録するためにはGoogleアカウントが必要です。
ログインしたら、 Projects -> Import project (.aia) from my computer に進みます。その後、
elite-explorer-kit-main\iot_project\08-bluetooth_environmental_monitorのパスにあるble_environmental_monitor.aiaファイルをアップロードします。また、こちらから直接ダウンロードもできます:
ble_environmental_monitor.aia
.aiaファイルをアップロードすると、MITアップインベンターソフトウェア上にアプリケーションが表示されます。これは事前に設定されたテンプレートです。MITアップインベンターに慣れた後、このテンプレートを変更することができます。MITアップインベンターには、主に Designer と Blocks の2つのセクションがあります。ページの右上隅でこれらのセクション間を切り替えることができます。
Designer では、ボタン、テキスト、スクリーンを追加したり、アプリケーションの全体的な見た目を変更したりすることができます。
次に、 Blocks セクションがあります。このセクションでは、アプリのGUI上の各コンポーネントにカスタム機能を作成し、望ましい機能を実現することができます。
スマートフォンにアプリケーションをインストールするには、 Build タブに移動します。
.apkファイルを生成できます。このオプションを選択すると、.apkファイルをダウンロードするか、QRコードをスキャンしてインストールするかを選択するページが表示されます。インストールガイドに従ってアプリケーションのインストールを完了してください。こちらから事前にコンパイルされたAPKもダウンロードできます:
ble_environmental_monitor.apkこのアプリをGoogle Playや他のアプリマーケットにアップロードしたい場合は、
.aabファイルを生成できます。
3. コードをアップロードする
elite-explorer-kit-main\iot_project\08-bluetooth_environmental_monitorのパスにある08-bluetooth_environmental_monitor.inoファイルを開くか、このコードを Arduino IDE にコピーします。注釈
ライブラリをインストールするには、Arduinoライブラリマネージャーを使用して、 「DHT sensor library」 と 「ArduinoBLE」 を検索し、インストールします。
正しいボードとポートを選択したら、 Upload ボタンをクリックします。
シリアルモニター(ボーレートは 9600 に設定)を開き、デバッグメッセージを確認します。
4. アプリとBluetoothモジュールの接続
先に作成したアプリケーションがスマートフォンにインストールされていることを確認します。
まず、スマートフォンで Bluetooth をオンにします。
次に、新しくインストールされた Environmental Monitor アプリを開きます。
このアプリを初めて開くと、Bluetoothの使用に必要な許可を求める2つのプロンプトが連続して表示されます。
アプリ内で Connect ボタンをクリックし、アプリとBluetoothモジュール間の接続を確立します。
このページには、すべてのペアリングされたBluetoothデバイスのリストが表示されます。リストから
xx.xx.xx.xx.xx.xx UNO R4 Homeオプションを選択します。各デバイスの名前はMACアドレスの隣にリストされています。
上記のページにデバイスが表示されない場合は、デバイスの位置情報スイッチをオンにしてみてください(一部のAndroidシステムバージョンでは、Bluetooth機能と位置情報スイッチが統合されています)。
接続が成功すると、メインページにリダイレクトされ、そこで温度と湿度が表示されます。
5. コードの説明
ライブラリのインポートと定数の定義
必要なライブラリをインポートし、DHTセンサーピンとタイプに関する定数を定義します。
注釈
ライブラリをインストールするには、Arduinoライブラリマネージャーを使用して、 「DHT sensor library」 と 「ArduinoBLE」 を検索し、インストールします。
#include <DHT.h> #include <ArduinoBLE.h> #define DHTPIN 11 #define DHTTYPE DHT11
BLEサービスと特性の初期化
BLE環境センシングサービスと特性のUUIDを定義します。 ブルートゥース SIG によって提供された事前定義されたUUIDを使用しています。 環境センシングサービス には
0x181Aが割り当てられ、それぞれ0x2A6Eと0x2A6Fは 温度と湿度 用に予約されています。
BLEService environmentalSensingService("181A"); BLEShortCharacteristic temperatureCharacteristic("2A6E", BLERead | BLENotify); BLEUnsignedShortCharacteristic humidityCharacteristic("2A6F", BLERead | BLENotify);
Setup関数
シリアル通信、DHTセンサー、BLEを初期化します。
void setup() { Serial.begin(9600); dht.begin(); if (!BLE.begin()) { Serial.println("starting Bluetooth® Low Energy module failed!"); while (1) ; } setupBle(); }
メインループ
BLEイベントをポーリングし、定期的にセンサーデータを更新します。
millis() - lastUpdateTime > updateIntervalの行は、センサーデータがupdateIntervalミリ秒ごとに更新されることを保証します。
void loop() { BLE.poll(); if (millis() - lastUpdateTime > updateInterval) { // Read sensor data and update BLE characteristics } }
BLEおよびデバッグ関数
BLEを設定し、デバッグ情報を出力し、BLEイベントを管理するための関数。
void printDHT(float h, float t) { /* ... */ } void setupBle() { /* ... */ } void blePeripheralConnectHandler(BLEDevice central) { /* ... */ } void blePeripheralDisconnectHandler(BLEDevice central) { /* ... */ }
printDHT(float h, float t): DHT11によって読み取られた温度と湿度のデータをシリアルモニターに出力するために使用されます。この関数はデバッグ目的のためです。setupBle(): ブロードキャスト名、特性、およびサービスを設定を含むBluetoothを初期化します。blePeripheralConnectHandler(BLEDevice central)およびblePeripheralDisconnectHandler(BLEDevice central): これらの関数は、Bluetoothが接続または切断されたときのイベントを処理します。デバイスがUNO R4とBluetooth経由で正常に接続すると、オンボードLEDが点灯します。デバイスが切断されると、LEDが消灯します。