Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES ここでご購入を!

はじめに

このレッスンでは、スイッチボタンをNodeMCUに接続し、スイッチの状態をMQTTブローカに送信します。ボタンが押されると、NodeMCUはボタンの状態をMQTTブローカに「押された」とパブリッシュし、MQTTクライアントはこれらのメッセージをサブスクライブします。ボタンを離すと、”not pressed “が送信される。

準備

ハードウェア:

 

ソフトウェア:

接続方法

このレッスンでは、D2(GPIO4)を使ってスイッチを制御します:

注:この1 k抵抗はプルダウン抵抗として使用します。このような回路では、スイッチが閉じているとき、NodeMCUの入力は論理ハイの値になりますが、スイッチが開いているとき、プルダウン抵抗は入力電圧をグランド(論理ゼロの値)にプルダウンし、入力が未定義の状態になるのを防ぎます。

スケッチのアップロード

Arduino IDE(Version1.6.4+)を使ってこのスケッチを開きます:

次の操作のように、独自の 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クライアント設定

MQTTクライアントの設定方法はこちらをご覧ください。

トピックの設定

実行結果

アップロードが完了し、無線LANホットスポット名とパスワードの設定がOKで、MQTTブローカーが接続されている場合、シリアルモニターを開くと以下の結果が表示されます:このボタンを押し続けると、シリアルモニターは “Button status: ボタンを離すと、シリアルモニターは2秒ごとに “Button status: ボタンを離すと、シリアルモニターは2秒ごとに「ボタンの状態:押されていません」と出力します。

同時に、MQTTクライアントを開き、”Subcribe “をクリックすると、以下のようにボタンのステータスが表示されます: