Verzenden en ontvangen van 433MHz-signalen

In deze tutorial maken we gebruik van de 433MHz-compatible modules om  een goedkope 433MHz schakelaarset (KLIKAANKLIKUIT = KaKu) van de hobbymarkt te besturen. Deze schakelaarset (afstandsbediening met drie stekkers) koop je voor net geen 20 euro.

LET OP! DOOR UPDATES VAN DE KAKU LEVERANCIER EN (MOGELIJK) ENKELE RASPBERRY PI SOFTWARE-ONDERDELEN WERKT DEZE TUTORIAL NIET (MEER)! ER WORDT ONDERZOCHT WAT DE OPLOSSING IS. WEET JIJ DE REDEN DAT HET NIET MEER WERKT? LAAT HET ME WETEN!

Vanaf de Raspberry Pi willen we signalen sturen naar de KaKu-stekkers en ontvangen we de signalen van de KaKu-afstandsbediening en maken de signalen zichtbaar in de terminal.

De set die ik in 2022 aangeschaft heb

De sets kunnen de volgende chipsets bevatten
• SC5262 / SC5272
• HX2262 / HX2272
• PT2262 / PT2272
• EV1527 / RT1527 / FP1527 / HS1527

Voor een volledige lijst van compatibele apparaten en chipsets zie de rc-switch Wiki

Software
Zorg er allereerst voor dat de Raspberry is voorzien van de laatste software updates.

sudo apt-get update

sudo apt-get upgrade -y

De scripts die we gaan gebruiken hebben een afhankelijkheid met RPi.GPIO. Installeer op je Raspberry Pi de rpi_rf- module via pip.

apt-get install python3-pip

Waarschijnlijk heb je pip al op je Pi staan en geeft ‘ie dit aan. Installeer vervolgens de rpi-rf module met pip.

pip3 install rpi-rf

Zenden en ontvangen van de KlikAanKlikUit-signalen
Om de KAKU-signalen te kunnen besturen maak ik gebruik van de bekende 433MHz superheterodyne modules. De zend- en ontvangstmodules worden als set geleverd en zijn op elkaar afgestemd. Wil je meer over de modules weten, kijk dan hier.

De zendermodule (WL102-341)

Afsluittabel van de zendermodule.

De ontvangermodule (RX470-4)

Aansluittabel van de ontvangermodule

Antenne
Een oud-collega van me is radioamateur. Hij raadde af de meegeleverde spiraalantennes, helicals genoemd, te gebruiken. Binnen de radioamateurwereld worden ze ook wel dummyloads genoemd. Dit type antennes is voor testen prima, maar stralen slecht af. Hij adviseert om een (installatie)draad van exact 17cm te gebruiken. 17 cm straler is een kwartgolf op 433MHz incl. verkortingsfactor. De antenne wel rechtop zetten, dan heb je een rondstraler. Zijn ervaring met deze modules, in combinatie met de 17 cm straler antenne is erg goed. Hij gebruikt de modules om in zijn woning en daarbuiten sensoren aan te sturen. Je kunt natuurlijk een mooie antenne aanschaffen die voor 433MHz geschikt is, maar dan wordt je opstelling wel een stuk duurder.

17 cm installatiedraad als 433MHz antenne

Verbinden met de Raspberry Pi
Voor deze tutorial worden de modules als volgt met de Raspberry Pi aangesloten.

Aansluittabel – Pin 1 van de zendermodule en pin 3 van de ontvangermodule worden niet aangesloten (nc)

Scripts
Zowel voor het ontvangen als voor het verzenden van de 433MHz-signalen is een script beschikbaar. De scripts worden in de terminal opgestart.

Code ontvangen
Voordat je überhaupt een signaal kan verzenden, moeten we eerst de signalen van de afstandsbediening analyseren. Start het script ontvang.py op.

python3 ontvang.py

Het script wacht totdat er een 433MHz-signaal via de module binnenkomt.

Ik heb in de afbeelding de naam van het script niet vertaald…excuses!

Schakel met de KaKu-afstandsbediening een van de stekkers in.

Direct is er in het script een ontvangstcode te zien.

De data (5330691) van het inschakelen van een KaKu-code

Schakel nu de KaKu-stekker uit. Je ziet direct dat er een ontvangstregel bij komt.

De data (5330700) van het uitschakelen van een KaKu-code

Het is aan te raden om alle codes van de afstandsbediening uit te lezen zodat deze gebruikt kunnen worden om deze door de Raspberry Pi te verzenden naar de verschillende KaKu-stekkers.

Stop het script met Ctrl-c

Code zenden
Om vanuit de Pi de codes te kunnen verzenden geef je het volgende commando:

python3 zend.py

Er volgt een error omdat de code onvolledig is.

In de code moet ook de syntax-waarde opgenomen zijn. Deze wordt dan als volgt.

python3 zend.py -p 174 -t 1 5330691

Als het goed gegaan is, wordt nu dezelfde KaKu-stekker geactiveerd.

Wil je de stekker deactiveren, dan is de code als volgt.

python3 zend.py -p 173 -t 1 5330700

Als alles goed gegaan is, weet je hoe je aan de codes komt van de KaKu-set en kan je met de Raspberry Pi de KlikAanKlikUit-stekkers besturen.

Have A Nice Day!

11 Reacties

  1. Beste,

    Kunt u mij helpen met het volgende, ik heb verschillende sniffers gebruikt. Maar bij mij ziet hij de kika commando’s niet. Op internet vindt ik dat t mogelijk is dat de nieuwere kaku’s een ander protocol gebruiken. Welke versie/type gebruikt u waarbij je ze wel kunt detecteren?
    Alvast bedankt, Gr. Dorus

    • Dag Dorus,

      De tutorial heb ik overgenomen en vertaald. Bij mij werkte het direct. Ik heb niets uit hoeven zoeken en dus niets met protocollen hoeven te doen. Ik heb begin 2022 de KiKa bij de bekende Duitse hobbymarkt aangeschaft.

      Ik heb de afbeeldingen in de tutorial geüpdatet zodat je kunt zien welk model ik heb.

      Model: APC3-2300R
      Item: 70182
      Serie nr: 2110110000xxxxx (wellicht helpt het s/n m.b.t. de fabricagedatum)
      Info: http://www.klikaanklikuit.nl

      De leverancier is heel open in het beantwoorden van technische vragen. Wellicht kunnen zij je vraag beantwoorden. Zie: https://klikaanklikuit.nl/aanmelden-vraag-antwoord/ of kijk eens bij hun supportsite: https://klikaanklikuit.nl/support/

      Als ik wat vind zal ik het hier melden.

  2. Beste Han,

    Als ik via receive/ontvang signalen ga sniffen, dan komen er (zelfs al druk ik niet op een knop van de remote) allemaal verschillende codes binnen. Dit gebeurt zowel met het ontvang.py als ook bij gebruik van het commando ‘rpi-rf_receive’. Als ik wél op een knop van de remote druk, valt die niet te herleiden tussen de regels de binnenkomen (niet dat telkens dezelfde code terugkomt ofzo). Op een andere site las ik dat dan de library misschien niet compatibel is, maar daar stond niet wat dan alternatieven zouden zijn.

    Ken je dit probleem en – ook belangrijk – weet je er wat tegen te doen?

    Zender en ontvanger zijn 433Mhz (tenminste zo besteld bij Ali) en hebben exact dezelfde nummers erop staan als bij jou, behalve dat de ontvanger er nog een T bij heeft (zender: 13.560, ontvanger: 6.7458T).

    Op het schema bij Ali (en ook andere websites) wordt bij de ontvanger overigens pin 2 en niet pin 3 overgeslagen; ook dat heb ik geprobeerd, met hetzelfde resultaat.

    • Dag Wout,

      De ‘T’ achter de frequentie van het kristal van de ontvanger geeft aan dat het component, het kristal, op rol verkrijgbaar is, zie datasheet (https://abracon.com/datasheets/MMD/F.pdf)

      Pinnen 2 en 3 van de ontvanger zijn met elkaar verbonden, zie achterkant print. Het maakt dus niet uit welke pin je gebruikt.

      Ik ga met je vraag aan de slag. Je hoort van me.

      • Dag Wout,

        Ik heb gisteren de opstelling gemaakt zoals https://pypi.org/project/rpi-rf/ deze aangeeft, daar heb ik mijn tutorial op gebaseerd. Ook ik krijg geen ontvangstcodes (meer) als ik mijn KlikAanKlikUit afstandsbediening gebruik. Ook vergelijkbare opstellingen werken niet meer. Ik heb meerdere ontvangers gebruikt, helaas met hetzelfde resultaat. Je ontvangt codes, maar geen code als de afstandsbediening gebruikt wordt. Erg vervelend. Ik heb nog geen idee wat de reden hiervan is.

        Wat ik nog niet gecontroleerd heb, is het type chip dat de afstandsbediening heeft en of deze (nog) ondersteund wordt. In de genoemde link is een overzicht van alle chiptypes die ondersteund worden.

        Het is niet de eerste keer dat er libraries geüpdatet worden en in combinatie met een nieuw OS niet meer werken. Ik heb op deze manier al eerder van een tutorial afscheid moeten nemen.

        Hoe dan ook. Ik blijf dit voorlopig onderzoeken. In het uiterste geval wordt de tutorial verwijderd. Ik zal er in ieder geval een waarschuwing bij zetten.

        Hier nog even een youtube video waarin dezelfde tutorial te zien is.

  3. Het blijkt dat KAKU nu een andere modulatie-techniek gebruikt.
    De hier beschreven uitleg gaat uit van ASK modulatie.

    Tegenwoordig gebruikt KAKU PPM modulatie (Pulse Position Modulation).
    Je kunt deze PPM KAKU signalen wel ontvangen met een zogenaamde RTL-SDR dongle en RTL_433 software.
    GitHub: https://github.com/merbanan/rtl_433

    Ik ben zeer geïnteresseerd als iemand weet hoe je het ontvangen PPM signaal weer kunt versturen.

  4. Hoi Han,

    Ik heb hier deze schakeling getest en heb remotes van kaku, van zeer oud tot oud en nieuw. (s/n 1007000116)
    De ontvanger werkt. Ik kan met de C++ en met de Python programma’s codes verzenden en de ontvanger ziet ze mooi.
    Als ik met de 3 remotes iets stuur, ziet hij niets. Dus ik denk dat het in de software zit (op de raspbarry).
    Als je nog een oude raspberry hebt, waar het nog op werkt, kunnen we misschien met de libraries die daar op staan, uitzoeken hoe het aan het werk te krijgen.

    Mvg,

    Frank

    • Hoi Han,

      Het goede nieuws is dat ik het werkend heb gekregen.
      Het minder goede nieuws is dat je zeer creatief moet zijn om dit nu na te spelen.

      Ik ga dit documenteren en delen, maar dat kost wat tijd.
      Tevens moet ik testen dat het ook reproduceerbaar is.

      De oorzaak zit in het protocol/modulatie wat de software gebruikt.
      Het moet (zoals eerder gemeld) omgezet worden van ASK naam PPM.

      Wordt vervolgd.

      Mvg,

      Frank

Reacties zijn gesloten.