このレッスンでは、MQTTプロトコルを介してステッピングモータをリモート制御する方法を紹介します。
ハードウェア:
ソフトウェア:
まず、ステップモータをブリッジに接続し、次にブリッジボードをNodeMCUに接続します:
NodeMCU | Stepper Bridge Board |
---|---|
Vin | Power+ |
GND | Power- |
D1 | IN1 |
D2 | IN3 |
D5 | IN2 |
D6 | IN4 |
NodeMCUをUSBケーブルでパソコンに接続し、Arduino IDE(Version1.6.4+)でスケッチを開きます:
ステッピングモータの速度を設定する行を変更します:
myStepper.setSpeed(80);
以下のように、自分のWiFiとMQTTの設定に合わせてコードを編集してください:
1)WiFiの設定
const char* ssid = “your_hotspot_ssid”;
const char* password = “your_hotspot_password”;
上記のコード行を探し、そこに自分のssidとパスワードを記述します。
2)MQTTサーバーアドレスの設定
const char* mqtt_server = “broker.mqtt-dashboard.com”;
上記のmqtt_serverの値には、自分のMQTTブローカーのURLやIPアドレスを使うことができます。また、”broker.mqtt-dashboard.com”、”iot.eclipse.org “などの有名なフリーのMQTTサーバーを使用してプロジェクトをテストすることもできます。
3)MQTTクライアント設定
MQTTブローカーがclientID、ユーザー名、パスワード認証を必要とする場合は、次のように変更する必要があります。
if (client.connect(clientId.c_str()))
to
if (client.connect(clientId,userName,passWord)) //put your clientId/userName/passWord here
そうでなければ、デフォルトのままにしておく。
その後、以下のように対応するボード タイプとポート タイプを選択し、スケッチを NodeMCU にアップロードします。
MQTTクライアントの設定方法はこちらをご覧ください。
トピックの設定:
アップロードが完了し、無線LANホットスポット名とパスワードの設定がOKで、MQTTブローカーが接続されている場合、シリアルモニターを開くと以下の結果が表示されます:
NodeMCUのシリアルポートにIPアドレスと接続状況が表示され、MQTTクライアントが発行したコマンドが表示されます。
スケッチからわかるように、パブリッシュトピックのペイロードが “1 “の場合、ステッピングモーターは時計回りに回転し、シリアルモニタの出力は次のようになります:
「MQTTブローカーからのコマンドは、[OsoyooCommand clockwise]です。
発行トピックのペイロードが “2 “の場合、ステッピングモーターは反時計回りに回転し、シリアルモニター出力は次のようになります:
“Command from MQTT broker is : [OsoyooCommand counterclockwise “
DownLoad Url osoyoo.com
You must be logged in to post a comment.
The script works well, but the stepper motor alone while not moving is absorbing 0,3A, and the two A B red leds on the controller are always on.
Is there any way to make it just rest without any power consumption?
I am having the same issue.
The stepper motor is not moving
A and B LEDs are on
The motor is taking in current ant no movement
published mqtt payload of 0 to the topic stops the motor from taking current but no matter what I have tried no motion from the motor.
I have changed stepper motor and driver board also tried 2 nodemcu with no luck.
Any help is appreciated.