Daftar Isi:

ESP-NOW Otomatisasi Rumah Esp8266 Raspberry Pi MQTT: 4 Langkah
ESP-NOW Otomatisasi Rumah Esp8266 Raspberry Pi MQTT: 4 Langkah

Video: ESP-NOW Otomatisasi Rumah Esp8266 Raspberry Pi MQTT: 4 Langkah

Video: ESP-NOW Otomatisasi Rumah Esp8266 Raspberry Pi MQTT: 4 Langkah
Video: πŸ πŸ“² WhatsApp Home Control: ESP32 Magic! πŸ’‘πŸ”Œβœ¨ 2024, November
Anonim
ESP-SEKARANG Otomatisasi Rumah Esp8266 Raspberry Pi MQTT
ESP-SEKARANG Otomatisasi Rumah Esp8266 Raspberry Pi MQTT

Dalam Instruksi ini saya menunjukkan kepada Anda bagaimana saya menggunakan ESP-NOW di otomatisasi rumah saya. Dalam skema Anda dapat melihat arus komunikasi

saya tunjukkan:

  • cara kerja pengirim
  • cara kerja penerima
  • bagaimana komunikasi serial dengan Raspberry Pi bekerja

Saya tidak menunjukkan cara kerja MQTT dan otomatisasi rumah saya, Anda dapat menemukan instruksi bagus lainnya untuk itu.

Kredit: Instruksi ini terinspirasi oleh:

Video #172 oleh Andreas Spiess

www.esploradores.com/practica-6-conexion-es…

Langkah 1: Back-up Via WiFi dan MQTT

Back-up Via WiFi dan MQTT
Back-up Via WiFi dan MQTT

Saya menemukan bahwa ESP-NOW sangat cepat dan cukup andal, tetapi terkadang gagal. Dalam program saya, saya menambahkan cadangan melalui koneksi WiFi dan MQTT normal.

Langkah 2: Remote/pengirim

Remote/pengirim
Remote/pengirim
Remote/pengirim
Remote/pengirim
Remote/pengirim
Remote/pengirim
Remote/pengirim
Remote/pengirim

Dalam skema pertama Anda melihat cara kerja program pengirim:

  1. esp8266 dimulai dari power up atau dari reset
  2. ESP-NOW diinisialisasi
  3. Modul mengirimkan ESP-NOW untuk waktu yang ditentukan
  4. Modul memeriksa apakah pesan ESP-NOW telah diterima oleh penerima dalam fungsi panggilan balik.

    1. Jika pesan ESP-NOW diterima, modul masuk ke mode tidur nyenyak dengan daya rendah
    2. Jika pesan ESP-NOW tidak diterima, modul memulai koneksi WiFi dan koneksi MQTT sebagai koneksi cadangan.

Program untuk pengirim ada di Github saya (Master_sender.ino). Program mengirimkan topik dan pesan untuk otomatisasi rumah MQTT dalam satu pesan gabungan ESP-NOW, digabungkan pada tanda '&' untuk memudahkan pemisahan di penerima.

Saya membuat dua remote/pengirim yang berbeda:

Pengirim 1: esp8266 dalam tidur nyenyak dan diaktifkan dengan reset. Led di tombol menyala dan meredup saat modul selesai. Jika tegangan baterai rendah, led berkedip. Jika ESP-NOW gagal, led akan berkedip sebelum beralih ke koneksi WiFi/MQTT. esp8266 ditenagai dari baterai LiPo dengan regulator tegangan HT7333 ke 3.3V

Pengirim 2: esp8266 dimatikan dan dihidupkan dengan menekan tombol. Biasanya koneksi ESP-NOW dilakukan setelah tombol 'klik'. esp8266 ditenagai langsung dari baterai LiPo. Saya tidak tahu apakah esp8266 rusak oleh tegangan tinggi dari baterai yang terisi penuh (hingga 4,2 V) ketika dihidupkan hanya beberapa 100 ms. Ini lebih tinggi dari spesifikasi (3.0 - 3.6V).

Catatan: jika daya baterai rendah, ESP-NOW gagal.

Langkah 3: Penerima - Perangkat Keras (esp8266 dan Raspberry Pi)

Penerima - Perangkat Keras (esp8266 dan Raspberry Pi)
Penerima - Perangkat Keras (esp8266 dan Raspberry Pi)
Penerima - Perangkat Keras (esp8266 dan Raspberry Pi)
Penerima - Perangkat Keras (esp8266 dan Raspberry Pi)
Penerima - Perangkat Keras (esp8266 dan Raspberry Pi)
Penerima - Perangkat Keras (esp8266 dan Raspberry Pi)

Desciption penerima dibagi menjadi dua bagian:

  1. Perangkat keras
  2. Perangkat lunak

Perangkat keras

Penerima esp-01 terhubung ke Raspberry Pi Zero saya yang menjalankan sistem otomatisasi rumah saya (Openhab2) dan Node Red.

Dalam skema koneksi sederhana ditunjukkan:

  • RX dari esp-01 ke TX dari RasPi
  • TX dari esp-01 ke RX dari RasPi
  • GND ke GND
  • VCC esp-01 ditenagai oleh pin 3.3V dari Raspi
  • Pada esp-01 baik RST dan CH_PD ditarik tinggi.

Saya membuat konektor antarmuka untuk memasangnya dengan mudah

Dalam satu gambar Anda dapat melihat koneksi kabel saya ke Raspberry Pi 3 saya (yang memiliki pinout yang sama, tetapi saya menggunakan pin 3.3V lain untuk terhubung ke CH_PD).

esp-01 diprogram seperti yang ditunjukkan di Instructable saya yang lain (lihat langkah 3).

Langkah 4: Penerima - Perangkat Lunak (Serial, Node Red, MQTT)

Penerima - Perangkat Lunak (Serial, Node Red, MQTT)
Penerima - Perangkat Lunak (Serial, Node Red, MQTT)
Penerima - Perangkat Lunak (Serial, Node Red, MQTT)
Penerima - Perangkat Lunak (Serial, Node Red, MQTT)
Penerima - Perangkat Lunak (Serial, Node Red, MQTT)
Penerima - Perangkat Lunak (Serial, Node Red, MQTT)

Program di esp8266

Program untuk receiver esp-01 ada di Github saya (Master_sender.ino). Program ini sangat sederhana, hanya mencetak pesan ESP-NOW yang diterima pada port Serial ke Raspberry Pi.

Port serial

Pada Raspberry Pi, Anda harus mengaktifkan Serial Port (pada raspbian, jalankan 'sudo raspi-config') untuk komunikasi serial normal.

Nama port serialnya adalah:

  • Raspberry Pi Nol: /dev/ttyAMA0
  • Raspberry Pi 3: /dev/ttyS0

Anda dapat memeriksa port serial dengan menjalankan 'dmesg | grep tty' atau 'ls /dev'

Node Merah

Di Node Red, pilih Node input serial dan atur port serial (lihat gambar terlampir). Perhatikan baudrate koneksi serial, ini harus sesuai dengan baudrate yang diprogram di esp8266.

Output dari serial node diubah oleh function node yang membagi pesan pada tanda '&' dan menetapkan msg.topic dan msg.payload. Output dari fungsi dibawa ke node output mqtt yang mengirimkan pesan ke server MQTT. Perhatikan bidang topik simpul mqtt kosong, karena topik diatur dalam pesan.

Direkomendasikan: