ジャンプする:
ESP32 チュートリアル 1/55 - SunFounder の ESP32 IoT 学習キットソフトウェアと Arduino IDE の紹介 ESP32 チュートリアル 2/55 - ESP32 とは、カメラ拡張ボード、SunFounder の ESP32 IoT キットの開封作業 ESP32 チュートリアル 3/55 - 抵抗、LED、ブレッドボードプロジェクト: こんにちは LED - ESP32 IoT 学習キット ESP32 チュートリアル 4/55 - データ型 変数の定義 Int, bool, char, シリアルモニター - ESP32 IoT キット ESP32 チュートリアル 5/55 - LED フェード、LED の明るさを制御 - ESP32 IoT 学習キット ESP32 チュートリアル 6/55 - RGB LED の使用 プロジェクト 2.3 - SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 7/55 - ESP32 Arduino プログラミングでの配列の使用 - SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 8/55 - ウォーキングライト 74HC595 シフトレジスタ - SunFounder の ESP32 IoT 学習キット ESP32チュートリアル 9/55 - プッシュボタンを使用してLEDをトグル、オンに押す、オフに押す - SunFounder ESP32 IoTキット ESP32 チュートリアル 10/55 - セブンセグメントディスプレイ 74HC595 を使用したデジタルカウンター - ESP32 IoT ラーニングキット ESP32 チュートリアル 11/55 - ESP32 と LCD1602 LCD2004 の使用 - SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 12/55 - SunFounder の ESP32 IoT 学習キットを使用した WS2812 RGB ストリップ 4 プロジェクト ESP32 チュートリアル 13/55 - アクティブブザーによる Arduino ビープ | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 14/55 - SunFounder ESP32 IoT 学習キットを使用したカスタム音楽ノートの再生 ESP32 チュートリアル 15/55 - ESP32 L293D を用いた DC モーター速度制御 | SunFounder の ESP32 IoT 学習キット ESP32チュートリアル 16/55 - ESP32とL293Dを使用したミニ水ポンプ | SunFounderのESP32 IoT学習キット ESP32 チュートリアル 17/55 - ESP32 とポテンショメーターを使用したサーボモーターの制御 - ESP32 IoT 学習キット ESP32チュートリアル 18/55 - ESP32を使った傾き検出 | SunFounderのESP32 IoT学習キット ESP32 チュートリアル 19/55 - 赤外線センサーを使った障害物の検出 | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 20/55 - ライントラッキングモジュール | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 21/55 - PIR モーションセンサーを使用した人間の検出 | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 22/55 - LED Arduino を使用して光を感じる | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 23/55 - ESP32 を使用したポテンショメーターの電圧測定 | SunFounder の ESP32 IoT キット ESP32 チュートリアル 24/55 - 灌漑のための土壌湿度の測定 | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 25/55 - NTC と LCD を使用した温度測定 | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 26/55 - Arduino でのジョイスティックの使用 アクションを起こす | SunFounder の ESP32 IoT キット ESP32 チュートリアル 27/55 - 超音波センサーを使用した距離の測定 | SunFounderのESP32 IoT学習キット ESP32 チュートリアル 28/55 - DHT11 温度センサーと LCD | SunFounder の ESP32 IoT 学習キット ESP32のチュートリアル 29/55 - ESP32でIRリモコンのキー入力を読み取る | SunFounderのESP32 IoT学習キット ESP32 チュートリアル 30/55 - Adafruit IO サービスを使用した MQTT を通じてウェブ上でサーボを制御する | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 31/55 - 障害物回避機能付き LED ストリッププロジェクト | SunFounderのESP32 IoT 学習キット ESP32チュートリアル 32/55 - LCDとブザーを使った車のバックレンジ警告 | SunFounderのIoT学習キット ESP32チュートリアル 33/55 - SunFounderのESP32 IoT学習キットを使用したデジタルサイコロ ESP32チュートリアル 34/55 - RGB LEDとノブを使ったカラ―グラデーション | SunFounderのESP32 IoT学習キット ESP32チュートリアル 35/55 - 植物モニター、土壌、温度と光 | SunFounderのESP32 IoT学習キット ESP32チュートリアル 36/55 - 数当てゲーム | SunFounderのESP32 IoT学習キット ESP32 チュートリアル 37/55 - ESP32 BLE を使用した Bluetooth アプリ | SunFounder の ESP32 IoT 学習キット ESP32チュートリアル 38/55 - モバイルフォンからRGB LEDを制御する | SunFounderのESP32 IoT学習キット ESP32 チュートリアル 39/55 - ESP32 を Bluetooth 音楽プレーヤーとして使用する | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 40/55 - Micro SDカードへの読み書き | SunFounderのESP32 IoT学習キット ESP32 チュートリアル 41/55 - Micro SD カードを使用した MP3 プレーヤー | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 42/55 - カメラで写真を撮影し、マイクロSDに保存 CAM-1 | SunFounder の ESP32 キット ESP32 チュートリアル 43/55 - IoT インターネット気象観測所 | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 44/55 - ESP32 カメラウェブサーバービデオストリーム オーバー WiFi CAM-2 | SunFounder の ESP32 キット ESP32 チュートリアル 45/55 - LED コントロール付きカスタムストリーミングサーバー CAM-3 | SunFounder の ESP32 学習キット ESP32 チュートリアル 46/55 - HiveMQ MQTT を使用したリモート温度監視 | SunFounder の ESP32 キット ESP32 チュートリアル 47/55 - インターネット経由の MQTT を使用した WS2812 CheerLights | SunFounder の ESP32 IoT キット ESP32チュートリアル 48/55 - リモート温度監視とLED制御 MQTT | SunFounderのESP32 IoTキット ESP32チュートリアル 49/55 - Adafruit IoTを使用してインターネット経由でDCモーターを制御する | SunFounderのESP32キット ESP32 チュートリアル 50/55 - 世界中のどこからでも RGB LED を制御する | SunFounder の ESP32 キット ESP32 チュートリアル 51/55 - DHT を使用した WiFi 経由の温度と湿度 | SunFounder の ESP32 IoT 学習キット ESP32 チュートリアル 52/55 - WS2812 CheerLights MQTT グローバル同期 LCD 付き | SunFounder ESP32 IoT キット ESP32 チュートリアル 53/55 - LCD インターネットクロックの作成 | SunFounder の ESP32 IoT 学習キット ESP32チュートリアル 54/55 - Wifi経由でWS2812 LEDストリップの色を設定 | SunFounderのESP32 IoT学習キット ESP32 チュートリアル 55/55 - 12V、24V、または 100V の DC 電圧を測定する方法 | SunFounder の ESP32 IoT 学習キット
ESP32 チュートリアル 30/55 - Adafruit IO サービスを使用した MQTT を通じてウェブ上でサーボを制御する | SunFounder の ESP32 IoT 学習キット
このチュートリアルでは、ESP32マイクロコントローラーを使用して、ウェブ上でMQTTプロトコルを介してサーボモーターの位置を制御する方法を学びます。Adafruit IOサービスを活用することで、サーボを0°、90°、または180°のようなさまざまな角度にリモートで位置決めすることができます。このプロジェクトは、内蔵のWi-FiとBluetoothを含むESP32の能力を示しており、IoTアプリケーションにとって強力なツールとなっています。
ESP32-30_MQTT_diagram-0
このプロジェクトでは、Adafruit IOを使用してMQTTブローカーをセットアップし、サーボを制御するためのダッシュボードを作成し、ESP32をそれに接続します。サーボの位置はダッシュボードのスライダーを使用して調整可能であり、インターネット接続可能なデバイスからリアルタイムで制御できます(動画の5:30にて)。
ハードウェアの解説 このプロジェクトの主なコンポーネントには、ESP32マイクロコントローラーとサーボモーターが含まれています。ESP32はWi-FiとBluetooth機能を統合した多用途のマイクロコントローラーであり、IoTアプリケーションに最適です。ESP32は、MQTTプロトコルを使用してAdafruit IOサービスと通信します。これは軽量で効率的なメッセージ伝送手段としてインターネット上で利用されます。
サーボモーターは、角度位置を正確に制御できる回転アクチュエーターです。これは、その位置を指示するパルス幅変調(PWM)信号を受信することによって動作します。このプロジェクトでは、サーボをESP32のデジタルピンの1つに接続し、遠隔で角度を制御できるようにします。
データシートの詳細
メーカー
視差
部品番号
SG90
論理/IO電圧
3.3 V - 5 V
供給電圧
4.8 V - 6.0 V
出力電流(チャンネルごと)
1 A 最大
PWM周波数ガイダンス
50ヘルツ
入力ロジック閾値
0.3 V - 0.7 V
電圧降下 / RDS(on) /飽和度
0.2 V 最大
熱的限界
動作温度:-10°Cから60°C
パッケージ
プラスチックケース
ノート / バリアント
ミニサーボ、180°回転
サーボに適切な電圧供給を確保してください(4.8 V - 6.0 V)。
ESP32とサーボの間に共通のグラウンドを使用してください。
PWM信号を監視して、サーボの限界を超えないようにしてください。
運転中に接続が切れるのを避けるため、サーボを安全に接続してください。
Adafruit MQTTライブラリを更新して互換性を確保してください。
MQTTダイアグラム
ESP32-30_MQTT_diagram-2
ESP32-30_MQTT_diagram
ESP32-28_dht温度センサーメイン
配線指示 ESP32-17-Sevo_motor-wiring サーボモーターをESP32に配線するには、まずサーボのグラウンドワイヤーをESP32のグラウンドピンに接続します。次に、サーボの電源ワイヤー(通常は赤)をESP32の5Vピンに接続します。最後に、信号ワイヤー(多くの場合黄または白)をESP32のデジタルピン25に接続します。接続が緩まないように、しっかりと固定されていることを確認してください。
ESP32に電源を供給するためにバッテリーを使用している場合、バッテリーの電圧がESP32とサーボの両方に対して許容範囲内であることを確認してください。さらに、コードで使用されているピンの定義と配線が一致していることを再度確認し、問題を避けてください(動画の12:45で)。
コード例とウォークスルー 提供されたコードでは、まずESP32とMQTTに必要なライブラリを含めます。サーボオブジェクトを定義し、それが接続されているピンを指定します。const int servoPin = 25;デフォルトの角度も設定されています。const int defaultServoAngle = 90;ESP32が起動したときの初期位置になります。
Servo myServo;
const int servoPin = 25;
const int defaultServoAngle = 90;
int servoAngle = defaultServoAngle;
このスニペットは、ピン25のサーボを初期化し、そのデフォルト角度を90°に設定します。変数servoAngleMQTTブローカーから受信したメッセージに基づいて更新されます。
の中でsetup()機能では、Wi-Fiに接続し、MQTTクライアントを設定します。ここではAdafruit IOの資格情報が定義されており、ユーザー名とキーが含まれています:
#define AIO_USERNAME "robojax"
#define AIO_KEY "aio_xmIW58uNNsjJCSOqzZ9QoHyq29wu"
このセクションでは、Adafruit IO サービスへの接続を確立します。コードを実装する際には、これらの値を自分の Adafruit IO 認証情報に置き換えることを確認してください。
最後に、メインループはMQTTサーバーへの接続がアクティブのままであり、受信したメッセージを処理します。サーボの位置は受信した角度に基づいて更新されます:
mqtt.processPackets(500);
int pulseWidth = map(servoAngle, 0, 180, minPulseWidth, maxPulseWidth);
myServo.writeMicroseconds(pulseWidth);
このコードはサーボ角を対応するパルス幅にマッピングし、それをサーボモーターに送信します。processPackets()この機能により、ESP32は受信したMQTTメッセージを処理でき、サーボがAdafruit IOダッシュボードを介して送信されたコマンドに反応します。
デモンストレーション / 期待すること すべてが設定されたら、作成したスライダーを使用してAdafruit IOダッシュボードからサーボを制御できるはずです。スライダーを動かすと、サーボはリアルタイムで角度を調整します。ESP32がWi-Fiに接続されており、MQTT接続が安定していることを確認してください。サーボが反応しない場合は、配線とサーボへの電源供給を確認してください(動画の :15)。
サーボの範囲制限に注意してください。0°から180°の範囲外の値を送信すると、予期しない動作をする可能性があります。このコードには、角度をこの範囲内に収めることでそのような事態を防ぐチェックが含まれています。
ビデオのタイムスタンプ
00:00 スタート
1:54 プロジェクト紹介
2:52 MQTTのイントロダクション
6:50 Adafruit IOの設定
9:54 サーボの配線
11:07 コードの説明
18:59 ESP32ボードとCOMポートを選択中
22:10 プロジェクトデモンストレーション
画像
ESP32-17-Sevo_motor-schematic
ESP32-17-Sevo_motor-wiring
ESP32-28_dht_temperature-sensor-main
ESP32-30_MQTT_diagram
ESP32-30_MQTT_diagram-0
ESP32-30_MQTT_diagram-2
ESP32-17-Sevo_motor-schematic
ESP32-17-Sevo_motor-wiring
ESP32-28_dht_temperature-sensor-main
コード
831-ESP32 Tutorial 30/55- ESP32 to control Servo motor using MQTT service of Adafruit
言語: C++
コードを読み込む