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

Firebaseを使用して、あるArduinoから別のArduinoにセンサーデータを送信します

コンポーネントと消耗品

>
Arduino UNO
× 2
Espressif ESP8266 ESP-01
× 2
DHT11温度および湿度センサー(3ピン)
× 1
DFRobot I2C 16x2 ArduinoLCDディスプレイモジュール
× 1
ブレッドボード(汎用)
× 2
オス/メスのジャンパー線
× 1

アプリとオンラインサービス

>
Arduino IDE
Google Firebase

このプロジェクトについて

概要:

このクールなIoTプロジェクトでは、1つのArduinoUNOに接続された湿度および温度センサーからデータを読み取ります。 esp8266モジュールを使用してこのデータをFirebaseに送信し、esp8266を使用して別のArduino UNOにデータをダウンロードして、最終的にLCDに表示します。

ステップ1:ArduinoUNOとESP8266がどのように連携するかを理解します。

それらは2つの異なるボードとして機能し、異なるコードを持っていることに注意してください。 ArduinoUNOを使用してESP8266と通信します。 Arduinoをインターネットに接続しておらず、ESP8266をインターネットに接続していることを理解してください。後でシリアル端末を介して2つのボード間でデータを送信できます。

ステップ2:1つのArduinoをLCDに接続します

この部分では、私たちが行ったようにI2C通信または通常の通信のいずれかを使用できます。 I2Cは常に優れています。そこで提示されているサンプルコードを試してください。

20x4LCDを使用したことに注意してください。必要に応じてコードを変更してください。

ステップ3:他のArduinoをDHT11センサーに接続する

このチュートリアルに従って、動作させることができます。テンプレートコードを試すことを忘れないでください。

ステップ4:ESP8266をFirebaseに接続して、データを送受信する

このチュートリアルでは、彼らはそれを設定する方法を非常によく説明しています。

このステップバイステップのビデオに従ってください。 NodeMCUをESP8266に接続しますが、ArduinoUNOにも同じ接続を使用できます。

アドバイスとしては、混乱しないように、Googleスプレッドシートを作成するか、ESP8266に使用している色で優れていることをお勧めします。

機能しない場合は、最後にエラー部分に移動します。またチュートリアルのコメントを確認してください。

ステップ5:シリアル通信がどのように機能するかを理解します。

このチュートリアルでは、他のセンサーデータをFirebaseに送信します。これを読んで、どのように機能するかを理解したり、試してみたりすることができます。

必要な文字列のみをシリアルモニターに印刷する必要があります。他の印刷行は通信を中断します。

ステップ6:コードをアップロードします。

データのアップロードと受信の方法がわかったので、実際のコードをArduinosとArduinosに接続されたesp8266にアップロードできます。コードのアップロード方法については、手順4を参照してください。

アップロードする前にコードを読み、必要な変更を加えてください。

一般的なエラーとアドバイス:

ワイヤーを外す前に、必ずARDUINOケーブルを外してください。

コードがESP8266にアップロードされない:

  • esp8266汎用ボードを選択します。
  • それでもコードがアップロードされず、エラーが発生する場合は、これを行ってください。
  • それでも機能しない場合は、プラグを抜いて再接続し、アップロードしてから、前の解決策を再試行してください。

コードがArduinoUNOにアップロードされない:

  • このドキュメントのステップ7で、コードをArduinoUNOにアップロードする方法を注意深くお読みください。
  • GNDからGPIO-0(IO0)を取り出し、Unoのグラウンド/ GNDピンからArduinoUnoRESETピンを取り出します。
  • ESP8266 RXピンをUNOのRXピンから削除し、ESP8266TXピンをUNOのTXピンから削除します。
  • ピンを再確認し、ArduinoUNOボードを選択します。

両方のコードをアップロードした後、機能しない:

  • ESP8266 RXピンをUnoのTXピンに接続し、ESP8266TXピンをUnoのRXピンに接続します。はい、反対に接続する必要があります。理由を聞かないでください。やってください。
  • ESP8266 GPIO-0(IO0)をGNDから切断します。
  • ピンを再確認します
  • シリアルモニターでArduinoとESP8266の間で共有したい値のみを印刷していることを確認してください。 「接続済み」などを印刷すると、コードは機能しません。

注: 動作させてLCDに奇妙な印刷が表示された場合は、数秒後に修正されるはずです あり 初期化 機能。これは、シリアル通信の遅延が原因で発生する可能性があります。

コード

  • lcd_arduino.ino
  • lcd_esp8266.ino
  • Sensor_arduino.ino
  • Sensor_esp8266.ino
lcd_arduino.ino Arduino
Arduino_LCD_Code
 #include  #include  //必要なLCDインターフェイスピンをLiquidCrystal_I2Clcd(0x3F、20、4);に接続されているarduinoピン番号に関連付けてライブラリを初期化します。文字列値、sensor_data; void setup(){Serial.begin(9600); delay(2000); // LCDの列と行の数を設定します:lcd.begin(20、4); //メッセージをLCDに出力します。 lcd.init(); // lcdを初期化しますlcd.backlight(); delay(2000); lcd.setCursor(0、0); lcd.print( "温度:"); delay(10); lcd.setCursor(18、0); lcd.print( "C"); delay(10); lcd.setCursor(0、1); lcd.print( "湿度:"); delay(10); lcd.setCursor(15、1); lcd.print( "%"); delay(2000);} void loop(){bool Sr =false; while(Serial.available()){//シリアルからセンサーデータを取得し、sensor_dataに配置sensor_data =Serial.readString(); Sr =true; } delay(1000); if(Sr ==true){値=センサーデータ; //コンマで分割して値変数からセンサーデータを取得し、変数に入力しますStringtemperature =values.substring(0、5);文字列の湿度=values.substring(6、11); initialize(); lcd.setCursor(13、0); delay(10); lcd.print(temperature); //カーソルを印刷温度delay(10);に設定します。 lcd.setCursor(10、1); delay(10); lcd.print(湿度); } delay(2000);} void initialize(){lcd.clear(); lcd.setCursor(0、0); lcd.print( "温度:"); delay(10); lcd.setCursor(18、0); lcd.print( "C"); delay(10); lcd.setCursor(0、1); lcd.print( "湿度:"); delay(10); lcd.setCursor(15、1); lcd.print( "%");} 
lcd_esp8266.ino Arduino
ESP8266_LCD_Code
 #include  #include  #define FIREBASE_HOST "YOUR_FIREBASE_LINK" #define FIREBASE_AUTH "YOUR_FIREBASE_TOKEN" #define WIFI_SSID "YOUR_WIFI_SSID" #define WIFI_PASSWORD Serial.begin(9600); // Wi-Fiに接続します。 WiFi.begin(WIFI_SSID、WIFI_PASSWORD); while(WiFi.status()!=WL_CONNECTED){delay(500); } Firebase.begin(FIREBASE_HOST、FIREBASE_AUTH);} void loop(){文字列温度=Firebase.getString( "temperature");文字列の湿度=Firebase.getString( "humidity");温度=temperature.substring(0、5);湿度=湿度.substring(0、5);値=(温度+湿度); delay(10); // Serial.flush();を出力する前に常にフラッシュします。 delay(1000); Serial.print(values); delay(1000);} 
Sensor_arduino.ino Arduino
Arduino_Sensor_Code
 #include  #include  #define dht_apin A0dht DHT; String values; void setup(){Serial.begin(9600); delay(5000); //システムの起動を遅らせる} void loop(){DHT.read11(dht_apin);値=(String(DHT.temperature)+ '、' + String(DHT.humidity)); delay(10); Serial.flush(); delay(1000); //センサーデータをシリアルに送信しました(センサーデータをESP8266に送信しました)Serial.print(values); delay(2000);} 
Sensor_esp8266.ino Arduino
Sensor_ESP8266_Code
 #include  #include  #define FIREBASE_HOST "YOUR_FIREBASE_LINK" #define FIREBASE_AUTH "YOUR_FIREBASE_TOKEN" #define WIFI_SSID "YOUR_WIFI_SSID" #define WIFI_PASSWORD ){delay(1000); // Wi-Fiに接続します。 WiFi.begin(WIFI_SSID、WIFI_PASSWORD); while(WiFi.status()!=WL_CONNECTED){delay(500); } Serial.begin(9600); Firebase.begin(FIREBASE_HOST、FIREBASE_AUTH);} void loop(){bool Sr =false; while(Serial.available()){//シリアルからセンサーデータを取得し、sensor_dataに配置sensor_data =Serial.readString(); Sr =true; } delay(1000); if(Sr ==true){値=センサーデータ; //値からカンマインデックスを取得変数intfristCommaIndex =values.indexOf( '、'); int secondCommaIndex =values.indexOf( '、'、fristCommaIndex + 1); //コンマで分割して値変数からセンサーデータを取得し、変数に入力しますStringtemperature =values.substring(0、fristCommaIndex);文字列の湿度=values.substring(fristCommaIndex + 1、secondCommaIndex); //超音波センサーデータを文字列としてFirebaseに保存しますFirebase.setString( "temperature"、temperature); delay(10); // IRセンサー1のデータを文字列としてFirebaseに保存しますFirebase.setString( "humidity"、humidity); delay(10); //以前のセンサーデータを文字列としてfirebasedelay(1000);に保存しますif(Firebase.failed()){return; }}} 

製造プロセス

  1. InitialStateを使用したppDAQCPiプレートからのセンサーデータのストリーミング
  2. Arduinoを使用したソーラーパネルのリアルタイムデータ取得
  3. ArduinoUnoを使用した人間検出ロボティクスシステム
  4. Arduinoを使用したDIY赤外線ハートビートセンサー
  5. arduinoを使用したソナーと処理IDEでの表示
  6. BoltとArduinoを使用したLEDの明るさの制御
  7. ArduinoでMAX30100ウェアラブルパルスセンサーを使用する
  8. ArduinoでのYL-39 + YL-69土壌湿度センサーの使用
  9. PHPを使用してArduinoと通信するWebサイトを作成する方法
  10. MPU6050I2Cセンサーから加速度を角度に変換
  11. ある CMMS から別の CMMS へ:ソフトウェア データ移行のガイドライン