工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

NodeMCUとRaspberryPi 3 B +間のMQTT通信

MQTT、NodeMCU、DHT22、RaspberryPi、およびIoT MQTTPanelを使用して温度と湿度を監視します。

Raspberry Pi 3 B +を、温度と湿度を測定し、IoTMQTTパネルアプリで監視するDHT-22センサーを備えた複数のNodeMCUのブローカーとして使用します。 NodeMCUとRaspberryのアルゴリズムをエスカレート可能にしました。公開およびサブスクライブしているトピックを変更し、IoT MQTT Panelアプリを追加するだけで、いつでもすべてのデータを手元に置くことができます。

ラズベリー、パイソン、MQTTの知識がないので、インターネットでたくさんの情報を検索しました。そこで、私が学んだことをすべて要約し、それらのWebサイトにクレジットを与えました。

インターネット接続が失われた場合、センサーはブローカーにデータを送信し続けます。つまり、データを保存できます!!! (もちろん、プログラミングを行う必要があります)

更新があれば私に従ってください。すぐに私は実行中のすべてのビデオを投稿します! 🙂

1。物事をつなぐ:

ネットワークはどのようになりますか:

2。プログラミング:

まず、すべてのライブラリがArduinoIDEとRaspberryPi 3B +にインストールされていることを確認する必要があります。

2.1 Arduino

ArduinoIDEにライブラリをインストールします。

2.2 Raspberry Pi 3 b +

PythonIDEにライブラリをインストールします。

2.3コードのアップロード

コードをそれぞれNodeMCUとRaspberryにアップロードします。

2.4コードの説明– ARDUINO IDE

これらは、ArduinoIDEにインストールされる前述のライブラリです。

  #include  // Esp8266 / NodeMCU Library#include  // MQTT Library#include "DHT.h" // DHTセンサー 

コード全体で使用されることが宣言されている変数:

  const char * mqtt_server ="Broker_IP_Address"; // MQTTサーバーのIPアドレス 

mqtt_server :Raspberry piのIPアドレスを取得するには、ターミナル画面を開いて次のように入力します。

  [email protected]:〜$ ifconfigwlan0:flags =4163  mtu 1500 inet 192.168.1.200 netmask 255.255.255.0 broadcast 192.168.1.255  

この例では、IPアドレスは192.168.1.200

になります。
  const char * clientID ="room1"; //クライアントIDはNodeMCUデバイスを識別します。 

clientID :使用しているNodeMCUを識別するための任意の名前または番号。この場合、それはroom1に配置されます。そのため、room1という名前になります。

  const char * topicT ="/ room1 / temperature"; //トピックtemperatureconstchar * topicH ="/ room1 / humidity"; //トピックの湿度 

topicT :温度を公開するトピック。このroom1温度の例では、トピックは「/ room1 / temperature」になります。

topicH :湿度を公開するトピック。このroom1湿度の例では、トピックは「/ room1 / humidity」になります。

  const char * willTopic ="/ room1 / status"; //トピックStatusconstchar * willMessage ="0"; // 0-切断 

willTopic :遺言を公開するトピック。これは、NodeMCUが接続/オンになっているかどうかを確認するために使用されます。切断すると、 willMessage が公開されます willTopic。 この場合、「/ room1 / status」

willMessage willTopic に公開されるメッセージ NodeMCUが切断/オフになっている場合。

  int willQoS =0; boolean willRetain =true;  

willQoS :サービス品質を設定するために使用されます。この場合は0です。

willRetain :切断の場合に意志メッセージを保持するために使用されます。 Trueに設定します。

  int counter =0; // MQTTサーバーに再接続するために使用されますconstchar * swversion ="1.0"; //ソフトウェアバージョン 

カウンター :再接続ルーチンで使用されるカウンター。

swversion :ソフトウェアのリビジョンを制御するために使用されます。

  WiFiClient wifiClient; PubSubClient client(mqtt_server、1883、wifiClient); // 1883はブローカーのリスナーポートです 

wifiClient :client.connect()で定義されているように、指定されたインターネットIPアドレスとポートに接続できるクライアントを作成します。

client() :クライアントは、すべてのWiFiクライアントベースの通話の基本クラスです。直接呼び出されるのではなく、それに依存する関数を使用するたびに呼び出されます。

  DHT dhtA(2、DHT22); // dhtAという名前のDHTインスタンス、NodeMCUD4のピンとセンサータイプ 

DHT :dhtAという名前のインスタンスを作成し、センサーDHT-22のNodeMCU V3(D4)のピン2を割り当てます。以下の回路図による。別のピンを使用する場合は、値を正しいピンに変更してください。使用するピンを変更する前に、以下のピン配置を確認して正しいピンを割り当ててください。

DHT-11を使用している場合は、次のようになります。

注: 私と同じライブラリを使用している場合。別のライブラリを使用する場合は、ライブラリのドキュメントを確認して、使用するピンとセンサーを宣言する方法を確認してください。

void setup() :ここで初期化します。

  void setup(){Serial.begin(9600); //デバッグの目的で、DHTとMQTT Brokerとの接続が機能しているかどうかを確認しますSerial.print(swversion); //デバッグします。ソフトウェアversiondhtA.begin(); // DHT-22を起動します 

MQTTブローカーに接続しています。

  delay(2000); // MQTTブローカーとの最初の接続を許可するための遅延 

delay(2000) :最初の接続が失敗した場合は時間を増やします。この場合、2000ではNodeMCUがブローカーに接続できます。

  if(client.connect(clientID、 ""、 ""、willTopic、willQoS、willRetain、willMessage、true)){// MQTTブローカーに接続する> 

client.connect() :以下に説明します。取得元:https://pubsubclient.knolleary.net/api.html#connect5

____________________________________________________________

ブール接続(clientID、username、password、willTopic、willQoS、willRetain、willMessage、cleanSession)

Willメッセージ、ユーザー名、パスワード、およびクリーンセッションフラグを指定してクライアントを接続します。

cleanSession false に設定されています / 0 クライアントは 再試行失敗qos1公開。このフラグは、ブローカーのサブスクリプションを維持するためにのみ使用されます。

パラメータ

返品

出典:NodeMCUとRaspberry Pi 3 B +間のMQTT通信


製造プロセス

  1. PythonとRaspberryPiの温度センサー
  2. ラズベリーパイ温度および光センサー
  3. ラズベリーパイセンサーとアクチュエーター制御
  4. 新しいRASPBERRYPI3モデルB +機能と購入
  5. RaspberryPiとPythonを使用したロボットの構築
  6. 電気めっきと陽極酸化の違い
  7. 非鉄金属と鉄金属の違い
  8. ろう付けとはんだ付けの違い
  9. 穴あけ、中ぐり、リーマ加工の違い
  10. シェイパーとプレーナーマシンの違い
  11. 遠心ポンプと往復ポンプの違い