Arduino

Decodeer en verzend 433 MHz RF-signalen met Arduino

Laatst bijgewerkt: 30/07/2020

Deze gids laat zien hoe je een Arduino kunt gebruiken om 433 MHz-signalen van RF-afstandsbedieningen te decoderen en deze met een Arduino en een 433 MHz-zender te verzenden om de schakelaars op het lichtnet op afstand te bedienen.

Waarom RF-signalen decoderen?

Ik heb verschillende methoden geprobeerd om de netspanning te regelen, maar sommige methoden vereisen:

Het is moeilijk om een oplossing te bedenken die veilig is en voor iedereen werkt. Een van de gemakkelijkste en veiligste manieren om op afstand aangesloten apparaten op netspanning te bedienen, is het gebruik van radiofrequentie (RF) gestuurde uitgangen. Waarom? Het gebruik van op afstand bediende schakelpunten heeft 5 voordelen:

  1. Redelijk goedkoop
  2. Gemakkelijk te krijgen
  3. Werkt met ESP8266 en Arduino
  4. Veilig te gebruiken
  5. Werkt in elk land

Benodigde onderdelen

Voor deze zelfstudie hebt u de volgende onderdelen nodig:

Opmerking:

U moet op afstand bediende stopcontacten kopen die werken met een RF van 433MHz. Ze moeten de werkende RF op de productpagina of op het etiket vermelden.

Voorbeeld

De RF-kanalen instellen

Ik heb mijn afstandsbediening op de I-positie gezet.

De stopcontacten moeten beide op de I-positie staan. Ik heb kanalen 3 en 4 geselecteerd voor de uitgangen (je kunt elk kanaal gebruiken dat je wilt).

Als u ze op een stopcontact aansluit, moet u de afstandsbedieningen met uw afstandsbediening kunnen bedienen.

De RC Switch Library installeren

De RC Switch-bibliotheek biedt een eenvoudige manier om uw ESP8266, ESP32 of Arduino te gebruiken om op afstand bestuurbare apparaten te bedienen. Dit zal waarschijnlijk werken met alle populaire low-cost stopcontacten.

  1. Klik hier om de RC Switch-bibliotheek te downloaden. U zou een .zip bestand moeten hebben in uw map Downloads
  2. Pak de .zip file uit en u moet de map rc-switch-master krijgen
  3. Hernoem je map van rc-switch-master naar rc_switch
  4. Verplaats de rc_switch map naar uw Arduino IDE bibliotheken map
  5. Open vervolgens je Arduino IDE opnieuw

De Decoder schets openen

U moet de signalen die door uw afstandsbediening worden verzonden, decoderen, zodat de Arduino of ESP8266 deze signalen kunnen reproduceren en uiteindelijk de uitgangen kunnen regelen.

De bibliotheek wordt geleverd met verschillende schetsvoorbeelden. In de Arduino IDE-software moet je gaan naar File > Examples > RC_Switch > ReceiveDemo_Advanced.

Deze volgende schets opent:

ReceiveDemo_Advanced.ino (zip file met 2 bestanden)

Als u een Arduino op uw computer hebt aangesloten, volgt u deze instructies:

  1. Ga naar het tabblad Tools
  2. Selecteer Arduino UNO bord
  3. Selecteer de COM poort
  4. Druk op de knop Uploaden.

Decoder Schema

Na het uploaden van de schets verbindt u een 433 MHz RF-ontvanger met Digital Pin 2 van uw Arduino UNO-bord:

Decoderen van de RF Signalen (codes)

Open de Arduino IDE seriële monitor en druk op de knoppen. Zoals te zien in de onderstaande videodemonstratie:

Nadat u elke knop eenmaal hebt ingedrukt, ziet u de binaire code voor elke knop (deze is rood gemarkeerd):

Sla uw binaire codes op voor elke druk op de knop (u kunt ook de decimale of Tri-State codes gebruiken):

Bewaar de PulseLength: 416 Microseconds en het Protocol: 1.

Stuur de RF-signalen (codes)

U moet de volgende schets aanpassen met uw binaire codes, pulslengte en protocol:

SendDemoExample.ino

In mijn geval ziet de pulslengte en het protocol er als volgt uit:

        mySwitch.setPulseLength(416);
        mySwitch.setProtocol(1);

Hier is een voorbeeld van een binaire zender (u moet dit vervangen door uw eigen binaire codes):

        mySwitch.send("000101010101000101010101");
        

Zender Schema

Na het uploaden van de schets naar je Arduino bord, stel je dit circuit samen:

De 3 stopcontacten moeten continu worden in en uitgeschakeld.