Wireless 433 Mhz¶
Van de verschillende manieren om draadloos te communiceren is 433 Mhz een veelgebruikte frequentie. Met bepaalde aanpassingen kan je deze frequentie gebruiken om draadloos te communiceren over lange afstanden.
433 Mhz onderdelen¶
Er zijn verschillende modules beschikbaar die werken op 433 Mhz. De meest gangbare modules zijn de 433 Mhz transmitter en de 433 Mhz receiver. De transmitter stuurt een signaal uit op 433 Mhz en de receiver kan dit signaal ontvangen.
![]() |
![]() |
---|---|
433 Mhz Transmitter | 433 Mhz Receiver |
bron: studiopieters |
Aansluiten¶
Beide modules hebben drie pinnen die aangesloten moeten worden op je microcontroller.
![]() |
![]() |
---|---|
Let op
Volgorde¶
De volgorde van de pinnen verschillen per module. Zorg ervoor dat je de juiste pinnen aansluit op je microcontroller.
Voltage¶
De modules werken op 5V. Zorg ervoor dat je de modules aansluit op een 5V pin van je microcontroller. Als je geen 5V pin hebt kan je een externe voeding gebruiken. 3.3V kan werken maar dan is het bereik van de modules een stuk minder.
Library¶
Om de 433 Mhz modules te gebruiken in je projecten kan je gebruik maken van de Radiohead library. Deze library is een populaire library voor het werken met verschillende draadloze modules.
Code voorbeeld¶
Hieronder staat een voorbeeld van een transmitter en receiver die data kunnen versturen en ontvangen op 433 Mhz. Deze voorbeelden gaan uit van de volgende situatie:
- het gebruik van de Radiohead library.
- de receiver wordt aangesloten op pin 4 van je microcontroller
- de transmitter wordt aangesloten op pin 5 van je microcontroller
Receiver¶
Hieronder staat een voorbeeld van een receiver die data ontvangt op 433 Mhz en deze data doorstuurt naar de serial monitor.
#include <RH_ASK.h>
#include <SPI.h>
RH_ASK driver(2000, 4, 5, 0); // set up the driver. Pin 4 for receiving, Pin 5 for transmitting.
void setup()
{
Serial.begin(9600);
driver.init();
}
void loop()
{
uint8_t buf[RH_ASK_MAX_MESSAGE_LEN]; // Reserve some memory for the received bytes
uint8_t buflen = sizeof(buf);
if (driver.recv(buf, &buflen)) // put received data in the buffer
Serial.write(buf, buflen); //Write the buffer to the serial port
}
Transmitter¶
Hieronder staat een voorbeeld van een transmitter die data verstuurt op 433 Mhz. Dit voorbeeld verstuurt een zin die je zelf kan aanpassen.
#include <RH_ASK.h>
#include <SPI.h>
RH_ASK driver(2000, 4, 5, 0); // ESP8266 or ESP32: do not use pin 11 or 2
char *pSentence = "Soufflé ligt zwaar op de maag!\n";
uint8_t nChars = 0;
void setup() {
driver.init();
nChars = strlen(pSentence);
}
void loop() {
for (int iChar=0; iChar<nChars; iChar++){
driver.send((uint8_t *)(pSentence + iChar), 1);
delay(50);
}
}