Isi kandungan:

ESP-SEKARANG Automasi Rumah Esp8266 Raspberry Pi MQTT: 4 Langkah
ESP-SEKARANG Automasi Rumah Esp8266 Raspberry Pi MQTT: 4 Langkah

Video: ESP-SEKARANG Automasi Rumah Esp8266 Raspberry Pi MQTT: 4 Langkah

Video: ESP-SEKARANG Automasi Rumah Esp8266 Raspberry Pi MQTT: 4 Langkah
Video: Home Automation Menggunakan NodeMCU ESP8266 Dengan Protokol MQTT 2024, November
Anonim
ESP-SEKARANG Automasi Rumah Esp8266 Raspberry Pi MQTT
ESP-SEKARANG Automasi Rumah Esp8266 Raspberry Pi MQTT

Dalam Instructable ini saya menunjukkan kepada anda bagaimana saya menggunakan ESP-SEKARANG dalam automasi rumah saya. Dalam skema anda dapat melihat aliran komunikasi

Saya tunjukkan kepada kamu:

  • bagaimana pengirim berfungsi
  • bagaimana penerima berfungsi
  • bagaimana komunikasi bersiri dengan Raspberry Pi berfungsi

Saya tidak menunjukkan bagaimana MQTT dan automasi rumah saya berfungsi, anda boleh mendapatkan petunjuk lain yang baik untuk itu.

Kredit: Instructable ini diilhamkan oleh:

Video # 172 oleh Andreas Spiess

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

Langkah 1: Sandarkan Melalui WiFi dan MQTT

Sandarkan Melalui WiFi dan MQTT
Sandarkan Melalui WiFi dan MQTT

Saya mendapat tahu bahawa ESP-NOW sangat pantas dan boleh dipercayai, tetapi kadangkala gagal. Dalam program saya, saya menambah sandaran melalui sambungan WiFi biasa dan MQTT.

Langkah 2: Jauh / penghantar

Jauh / penghantar
Jauh / penghantar
Jauh / penghantar
Jauh / penghantar
Jauh / penghantar
Jauh / penghantar
Jauh / penghantar
Jauh / penghantar

Dalam skema pertama anda melihat bagaimana program pengirim berfungsi:

  1. Esp8266 bermula dari power up atau dari reset
  2. ESP-SEKARANG dimulakan
  3. Modul menghantar ESP-SEKARANG untuk masa yang ditentukan
  4. Modul memeriksa sama ada mesej ESP-SEKARANG diterima oleh penerima dalam fungsi panggilan balik.

    1. Sekiranya mesej ESP-NOW diterima, modul akan tidur nyenyak dengan kuasa rendah
    2. Sekiranya mesej ESP-NOW tidak diterima, modul memulakan sambungan WiFi dan sambungan MQTT sebagai sambungan sandaran.

Program untuk pengirim ada di Github saya (Master_sender.ino). Program menghantar topik dan mesej untuk automasi rumah MQTT dalam satu gabungan mesej ESP-NOW, digabungkan pada tanda '&' untuk perpecahan yang mudah di penerima.

Saya membuat dua pesanan / pengirim yang berbeza:

Pengirim 1: esp8266 sedang tidur nyenyak dan diaktifkan dengan tetapan semula. Butang yang dipimpin akan menyala dan redup ketika modul selesai. Sekiranya voltan bateri rendah, lampu LED berkelip. Sekiranya ESP-SEKARANG gagal, LED berkedip sebelum menukar ke sambungan WiFi / MQTT. Esp8266 dikuasakan dari bateri LiPo dengan pengatur voltan HT7333 hingga 3.3V

Pengirim 2: esp8266 dimatikan dan dihidupkan dengan menekan butang. Biasanya sambungan ESP-SEKARANG dilakukan setelah butang 'klik'. Esp8266 dikuasakan terus dari bateri LiPo. Saya tidak tahu sama ada esp8266 rosak oleh voltan tinggi bateri yang dicas sepenuhnya (sehingga 4.2 V) semasa ia dihidupkan hanya dalam beberapa 100 ms. Ia lebih tinggi daripada spesifikasi (3.0 - 3.6V).

Catatan: jika kuasa bateri rendah, ESP-SEKARANG gagal.

Langkah 3: Penerima - Perkakasan (esp8266 dan Raspberry Pi)

Penerima - Perkakasan (esp8266 dan Raspberry Pi)
Penerima - Perkakasan (esp8266 dan Raspberry Pi)
Penerima - Perkakasan (esp8266 dan Raspberry Pi)
Penerima - Perkakasan (esp8266 dan Raspberry Pi)
Penerima - Perkakasan (esp8266 dan Raspberry Pi)
Penerima - Perkakasan (esp8266 dan Raspberry Pi)

Penjelasan penerima terbahagi kepada dua bahagian:

  1. Perkakasan
  2. Perisian

Perkakasan

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

Dalam skema sambungan mudah ditunjukkan:

  • RX dari esp-01 hingga TX RasPi
  • TX dari esp-01 hingga RX RasPi
  • GND hingga GND
  • VCC esp-01 dikuasakan oleh pin 3.3V Raspi
  • Pada esp-01 kedua RST dan CH_PD ditarik tinggi.

Saya membuat penyambung antara muka untuk memasangnya dengan mudah

Dalam satu gambar anda dapat melihat sambungan wayar saya ke Raspberry Pi 3 saya (yang mempunyai pinout yang sama, tetapi saya menggunakan pin 3.3V lain untuk menyambung ke CH_PD).

Esp-01 diprogramkan seperti yang ditunjukkan dalam Instructable saya yang lain (lihat langkah 3).

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

Penerima - Perisian (Serial, Node Red, MQTT)
Penerima - Perisian (Serial, Node Red, MQTT)
Penerima - Perisian (Serial, Node Red, MQTT)
Penerima - Perisian (Serial, Node Red, MQTT)
Penerima - Perisian (Serial, Node Red, MQTT)
Penerima - Perisian (Serial, Node Red, MQTT)

Program pada esp8266

Program untuk penerima esp-01 ada di Github saya (Master_sender.ino). Program ini sangat mudah, hanya mencetak mesej ESP-SEKARANG yang diterima di port Serial ke Raspberry Pi.

Pelabuhan bersiri

Pada Raspberry Pi, anda mesti mengaktifkan Serial Port (pada raspbian, jalankan 'sudo raspi-config') untuk komunikasi bersiri biasa.

Nama port bersiri adalah:

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

Anda boleh menyemak port bersiri dengan menjalankan 'dmesg | grep tty 'atau' ls / dev '

Node Merah

Di Node Red, pilih Node input bersiri dan siapkan port bersiri (lihat gambar yang dilampirkan). Perhatikan baudrate sambungan bersiri, ini mesti sesuai dengan baudrate seperti yang diprogramkan dalam esp8266.

Output node bersiri diubah oleh simpul fungsi yang membelah mesej pada tanda '&' dan menetapkan msg.topic dan msg.payload. Output fungsi dibawa ke node output mqtt yang menghantar mesej ke pelayan MQTT. Perhatikan bidang topik node mqtt kosong, kerana topik itu ditetapkan dalam mesej.

Disyorkan: