Mini proiect (39) - Cum se realizează configurarea OpenMQTTgateway

Cum se realizează configurarea OpenMQTTgateway

Ieri am reușit să configurez OpenMQTTGateway pentru retransmisia pe MQTT a unui semnal primit de la senzorul pentru detectarea ferestrei deschise (cum am promis în articolul precedent). Mi-a dat ceva bătăi de cap până am reușit să-l fac să meargă. În prima fază am încercat să flashuiesc direct firmware-ul gata compilat de pe site-ul OpenMQTTGateway, dar nu a funcționat de nici o culoare, și a trebuit să configurez de la zero (vezi mai jos pașii de configurarea a codului pentru OpenMQTTGateway ESP32 RF). Merge brici !

 Componente:

Schema electronica/sistem:

 

Ambele plăcuțe una lângă alta:

ESP32 configurat cu OpenMQTTGateway:


 Pentru configurarea OpenMQTTgateway am urmat pașii de mai jos:

1. Pentru acest proiect am folosit extensia pentru MS Visual numită PlatformIO (bazat pe IDE Visual Studio Code):

 2. Pentru Clonarea proiectului git se folosește comanda : https://github.com/1technophile/OpenMQTTGateway.git sau direct din git

> gh repo clone 1technophile/OpenMQTTGateway


3. În platform INI trebuie să selectezi placa folosită:

4. Setează PIN-ul pentru LED:

5. Setează parametrii de acess pentru MQTT:

6. Setează username-ul și parola pentru accesul la WIFI:

7. Activează pe true define-ul pentru setarea manuală a credițialelor pentru accesul la WIFI:

8. Setează versiunea:


9. Setează configurarea pentru RF:

10. După configurările făcute mai sus se poate compila codul sursă folosind butonașul cu bifă ✓.

11. După compilarea cu success a aplicației OpenMQTTGateway_ESP32_RF se poate scrie fișierul firmware.bin în memoria flash a ESP32 folosind butonașul cu săgeată  din bara de jos →.

12. După ce se flashuiește cu success, în MQTT explorer se observă o înprospătare periodică a informațiilor de pe câmpul 433toMQTT, care conține informația primită de la ATTiny85.


13. În Home assistant secțiunea devices se poate vedea OpenMQTTGateway_ESP32_RF, în care se poate vizualiza semnalul gatewayRF , care ne indică statusul ferestrei.


14 În Edit UI se poate adăuga un card pentru entities, iar aici am adăugat semnalul gatewayRF de la OpenMQTTGateway.


15. Fereastra închisă apare cu valoarea 9 în Dashboard, sau cu valoarea 5 pentru fereastra deschisă.




Codul emițătorului de pe ATTiny85:

/*
Florin Simedru
Complete project details at https://automatic-house.blogspot.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
*/
#include <RCSwitch.h>
#include <Arduino.h>
#ifdef F_CPU
#undef F_CPU
#define F_CPU 8000000 //value must be 1000000, 8000000
#endif
#define Delay_time_ms 100
#define Led 1 // Select the pin where the led is attached. Options: from 0 to 4
#define WINDOW_OPEN_PIN 0// Select the pin where the RF transmitter is attached.
#define WINDOW_CLOSE_PIN 4// Select the pin where the RF transmitter is attached.
#define RF_SEND_PIN 2 // Select the pin where the touch button is attached
#define WINDOW_OPEN 0
#define WINDOW_CLOSED 1
#define VERSION "0.0.1"
RCSwitch mySwitch = RCSwitch();
void setup() {
// put your setup code here, to run once:
pinMode(Led, OUTPUT); // initialize the digital pin as an output.
digitalWrite(Led, LOW); // Set it in Low state
pinMode(WINDOW_OPEN_PIN, INPUT); // initialize the digital pin as an input.
digitalWrite(WINDOW_OPEN_PIN, LOW); // Set it in Low state
pinMode(WINDOW_CLOSE_PIN, INPUT); // initialize the digital pin as an input.
digitalWrite(WINDOW_CLOSE_PIN, LOW); // Set it in Low state
// Transmitter is connected to Attiny Pin PB2 <--
// That is physical pin2
mySwitch.enableTransmit(RF_SEND_PIN);
// Optional set pulse length.
mySwitch.setPulseLength(208);
// Optional set protocol (default is 1, will work for most outlets)
mySwitch.setProtocol(1, 208);
// Optional set number of transmission repetitions.
mySwitch.setRepeatTransmit(7);
}
void loop() {
// put your main code here, to run repeatedly:
// read the pushbutton input pin
int WindowOpenState = digitalRead(WINDOW_OPEN_PIN);
if(WindowOpenState == WINDOW_OPEN)
{
for (int i=0; i<8; i++)
{
/* send the activation code to the receiver*/
mySwitch.send(5, 24);
delay(50);
digitalWrite(Led, HIGH);
delay(500);
digitalWrite(Led, LOW);
}
}
else
{
mySwitch.send(9, 24);
delay(Delay_time_ms);
}
}

Documentatie proiect:

To do:

  • Să concep două cutiuțe pentru cele două device-uri magice 
  • Să configurez Home Assistant astfel încât să-mi afișeze "Fereastra deschisă" sau "Fereastră închisă"

Afiliere eMag: 

Linkurile de la secțiunea "Componente" conțin adresa mea de afiliere la eMag.ro, iar dacă cumperi folosind aceste linkuri vei susține blogul meu. 

Mulțumesc! 

eMag Genius:
Hai și tu în Genius! Abonează-te la Genius 12 luni și primești beneficii premium și 20 lei card cadou eMAG. Profită acum! eMag Genius

 
Pentru întrebari și/sau consultanță tehnică vă stau la dispozitie pe blog sau pe email simedruflorin@automatic-house.ro. O seară/zi plăcută tuturor !

Etichete

Afișați mai multe

Arhiva

Afișați mai multe