Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Kirim data sensor dari satu Arduino ke Arduino lainnya menggunakan Firebase

Komponen dan persediaan

Arduino UNO
× 2
Espressif ESP8266 ESP-01
× 2
Sensor Suhu &Kelembaban DHT11 (3 pin)
× 1
DFRobot I2C 16x2 Arduino LCD Display Module
× 1
Breadboard (generik)
× 2
Kabel Jumper Pria/Wanita
× 1

Aplikasi dan layanan online

Arduino IDE
Google Firebase

Tentang proyek ini

IKHTISAR:

Dalam proyek IoT yang keren ini, Anda membaca data dari sensor kelembaban dan suhu yang terhubung ke satu Arduino UNO. Kirim data ini ke Firebase menggunakan modul esp8266 lalu unduh data di Arduino UNO lain menggunakan esp8266, untuk akhirnya menampilkannya ke LCD.

LANGKAH 1:Pahami bagaimana Arduino UNO dan ESP8266 bekerja bersama.

Perhatikan bahwa mereka bekerja sebagai dua papan yang berbeda dan memiliki kode yang berbeda. Anda menggunakan Arduino UNO untuk berkomunikasi dengan ESP8266. Pahami bahwa Anda tidak menghubungkan Arduino ke internet, Anda menghubungkan ESP8266 ke internet. Nanti Anda dapat mengirim data antara dua papan melalui terminal Serial.

LANGKAH 2:Hubungkan satu Arduino ke LCD

Untuk bagian ini, Anda dapat menggunakan komunikasi I2C seperti yang kami lakukan atau komunikasi biasa. I2C selalu lebih baik. Coba kode contoh yang mereka berikan di sana.

PERHATIKAN BAHWA KAMI MENGGUNAKAN LCD 20x4. GANTI KODE JIKA PERLU.

LANGKAH 3:Hubungkan Arduino lain ke Sensor DHT11

Anda dapat mengikuti tutorial ini untuk membuatnya bekerja. Ingatlah untuk mencoba kode template.

LANGKAH 4:Hubungkan ESP8266 ke Firebase untuk Mengirim &Menerima Data

Dalam tutorial ini, mereka menjelaskan dengan sangat baik cara mengaturnya.

Ikuti video langkah demi langkah ini. Mereka menghubungkan NodeMCU ke ESP8266 tetapi Anda dapat menggunakan koneksi yang sama ke Arduino UNO.

Untuk saran, saya sarankan Anda membuat google sheet atau excel dengan warna yang Anda gunakan untuk ESP8266 agar Anda tidak bingung.

PERGI KE BAGIAN KESALAHAN DI AKHIR JIKA TIDAK BEKERJA. JUGA , PERIKSA KOMENTAR DI TUTORIAL.

LANGKAH 5:Pahami cara kerja Komunikasi Serial.

Dalam tutorial ini mereka mengirim data sensor lain ke firebase, Anda dapat membacanya untuk mendapatkan gambaran tentang cara kerjanya atau bahkan mencobanya.

ANDA HANYA HARUS CETAK STRING YANG DIINGINKAN PADA MONITOR SERIAL, GARIS CETAK LAINNYA AKAN MENGGANGGU KOMUNIKASI.

LANGKAH 6:Unggah kode.

Sekarang setelah Anda mengetahui cara mengunggah dan menerima data, Anda dapat mengunggah kode aktual ke esp8266 yang terhubung ke Arduino dan Arduino. Lihat langkah 4 tentang cara mengunggah kode.

BACA KODE SEBELUM MENGUPLOAD DAN LAKUKAN PERUBAHAN YANG DIPERLUKAN.

KESALAHAN DAN SARAN UMUM:

SELALU PUTUSKAN KABEL ARDUINO SEBELUM MEMUTUSKAN KABEL APAPUN.

Kode tidak diunggah ke ESP8266:

  • Pilih papan generik esp8266.
  • Jika kode masih belum terunggah dan memberi Anda kesalahan, lakukan ini.
  • Jika masih tidak berfungsi, cabut, sambungkan kembali, coba unggah, lalu coba lagi solusi sebelumnya.

Kode tidak diunggah ke Arduino UNO:

  • Baca baik-baik cara mengupload kode ke Arduino UNO dalam dokumentasi ini, langkah 7.
  • Keluarkan GPIO-0 (IO0) dari GND dan Pin RESET Arduino Uno dari Pin Ground/GND Uno.
  • Lepaskan pin RX ESP8266 dari pin RX UNO dan pin TX ESP8266 dari pin TX UNO.
  • Cek ulang pin Anda, pilih board Arduino UNO.

Tidak berfungsi setelah mengupload kedua kode:

  • Hubungkan pin RX ESP8266 ke pin TX Uno dan pin TX ESP8266 ke pin RX Uno. Ya, Anda harus menghubungkannya secara berlawanan. Jangan tanya kenapa. Lakukan saja.
  • Putuskan sambungan ESP8266 GPIO-0 (IO0) dari GND.
  • Periksa ulang pin Anda
  • Pastikan Anda hanya mencetak nilai yang ingin Anda bagikan antara Arduino dan ESP8266 di Serial Monitor. Jika Anda mencetak hal-hal seperti "terhubung" atau hal lain apa pun, kode tidak akan berfungsi.

CATATAN: Jika Anda membuatnya berfungsi dan LCD mencetak sesuatu yang aneh, ia akan memperbaikinya setelah beberapa detik dengan yang inisialisasi fungsi. Ini mungkin terjadi karena penundaan komunikasi serial.

Kode

  • lcd_arduino.ino
  • lcd_esp8266.ino
  • sensor_arduino.ino
  • sensor_esp8266.ino
lcd_arduino.inoArduino
Arduino_LCD_Code
#include #include // inisialisasi library dengan mengaitkan pin antarmuka LCD yang diperlukan// dengan nomor pin arduino yang terhubung ke LiquidCrystal_I2C lcd (0x3F, 20, 4); Nilai string, sensor_data;void setup() { Serial.begin(9600); penundaan(2000); // mengatur jumlah kolom dan baris LCD:lcd.begin(20, 4); // Mencetak pesan ke LCD. lcd.init(); // inisialisasi lcd lcd.backlight(); penundaan(2000); lcd.setCursor(0, 0); lcd.print("Suhu :"); penundaan (10); lcd.setCursor(18, 0); lcd.print("C"); penundaan (10); lcd.setCursor(0, 1); lcd.print("Kelembaban :"); penundaan (10); lcd.setCursor(15, 1); lcd.print("%"); delay(2000);}void loop() { bool Sr =false; while (Serial.available()) { //ambil data sensor dari serial masukkan sensor_data sensor_data =Serial.readString(); Sr =benar; } penundaan(1000); if (Sr ==true) { nilai =sensor_data; //mendapatkan data sensor dari variabel nilai dengan membagi dengan koma dan dimasukkan ke dalam variabel String temperature =values.substring(0, 5); String kelembaban =nilai.substring(6, 11); inisialisasi(); lcd.setCursor(13, 0); penundaan (10); lcd.print(suhu);//set kursor untuk mencetak penundaan suhu (10); lcd.setCursor(10, 1); penundaan (10); lcd.print(kelembaban); } delay(2000);}void initialize() { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Suhu :"); penundaan (10); lcd.setCursor(18, 0); lcd.print("C"); penundaan (10); lcd.setCursor(0, 1); lcd.print("Kelembaban :"); penundaan (10); lcd.setCursor(15, 1); lcd.print("%");}
lcd_esp8266.inoArduino
ESP8266_LCD_Code
#include #include #define FIREBASE_HOST "YOUR_FIREBASE_LINK"#define FIREBASE_AUTH "YOUR_FIREBASE_TOKEN"#menentukan nilai WIFI_WI_SID_SSID_PASSID_PASTI "YOUR_PAS" Serial.begin(9600); // sambungkan ke wifi. WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() !=WL_CONNECTED) { delay(500); } Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);}void loop() { String temperature =Firebase.getString("temperature"); String kelembaban =Firebase.getString("kelembaban"); suhu =suhu.substring(0, 5); kelembaban =kelembaban. substring (0, 5); nilai =(suhu + kelembaban); penundaan (10); // selalu flush sebelum mencetak Serial.flush(); penundaan (1000); Serial.print(nilai); delay(1000);}
sensor_arduino.inoArduino
Arduino_Sensor_Code
#include #include #define dht_apin A0dht DHT;Nilai string;void setup() { Serial.begin(9600); penundaan(5000); //Tunda untuk membiarkan sistem boot}void loop() { DHT.read11(dht_apin); nilai =(String(DHT.suhu) + ',' + String(DHT.kelembaban)); penundaan (10); Serial.flush(); penundaan (1000); // mengirim data sensor ke serial (mengirim data sensor ke ESP8266) Serial.print(nilai); delay(2000);}
sensor_esp8266.inoArduino
Sensor_ESP8266_Code
#include #include #define FIREBASE_HOST "YOUR_FIREBASE_LINK"#define FIREBASE_AUTH "YOUR_FIREBASE_TOKEN"#define WIFI_SSID_PASSID_OR_WIORD_PASYOUR_setup sensor ) { penundaan(1000); // sambungkan ke wifi. 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()) { //ambil data sensor dari serial masukkan sensor_data sensor_data =Serial.readString(); Sr =benar; } penundaan(1000); if (Sr ==true) { nilai =sensor_data; //mendapatkan indeks koma dari variabel nilai int fristCommaIndex =values.indexOf(','); int secondCommaIndex =nilai.indexOf(',', fristCommaIndex + 1); //mendapatkan data sensor dari variabel nilai dengan membagi dengan koma dan dimasukkan ke dalam variabel String temperature =values.substring(0, fristCommaIndex); String kelembaban =nilai.substring(fristCommaIndex + 1, secondCommaIndex); //menyimpan data sensor ultrasonik sebagai string di firebase Firebase.setString("temperature", temperature); penundaan (10); //menyimpan data sensor IR 1 sebagai string di firebase Firebase.setString("kelembaban", kelembapan); penundaan (10); //menyimpan data sensor sebelumnya sebagai string dalam firebase delay(1000); if (Firebase.failed()) { kembali; } }}

Proses manufaktur

  1. Streaming Data Sensor dari ppDAQC Pi Plate Menggunakan InitialState
  2. Akuisisi Data Real-Time Panel Surya Menggunakan Arduino
  3. Sistem Robotika Deteksi Manusia Menggunakan Arduino Uno
  4. Sensor Detak Jantung Inframerah DIY menggunakan Arduino
  5. Sonar menggunakan arduino dan ditampilkan pada pemrosesan IDE
  6. Mengontrol Kecerahan LED Menggunakan Bolt dan Arduino
  7. Menggunakan sensor pulsa wearable MAX30100 dengan Arduino
  8. Menggunakan Sensor Kelembaban Tanah YL-39 + YL-69 dengan Arduino
  9. Cara membuat situs web yang mengomunikasikan Arduino dengan menggunakan PHP
  10. Dari Satu CMMS ke CMMS lainnya:Pedoman untuk Migrasi Data Perangkat Lunak