315/433MHz ASK RF driver for esp-idf.
There are several repositories available for esp-idf, but I couldn't find a submittable library.
This repository can send and receive.
I ported from here.
ESP-IDF V4.4/V5.x.
ESP-IDF V5.0 is required when using ESP32-C2.
ESP-IDF V5.1 is required when using ESP32-C6.
315MHz/433MHz ASK Wireless transmitter/receiver like this.
-
Transmitter
H34A-433/H34A-315
SYN115
STX882 -
Receiver
H3V3/H3V4/H5V3/H5V4
SYN480R
LR43B/LR33B
SRX882/SRX887
I used this:
Note
As far as I know, there are 5V module and 3.3V module in the receiving module.
Only 3.3V modules can be used with the ESP32.
git clone https://github.com/nopnop2002/esp-idf-rc-switch
cd esp-idf-rc-switch
idf.py set-target {esp32/esp32s2/esp32s3/esp32c2/esp32c3/esp32c6}
idf.py menuconfig
idf.py flash
On the transmitting side, you can choose the protocol and the number of data bits.
The available protocols are:
static const Protocol proto[] = {
{ 350, { 1, 31 }, { 1, 3 }, { 3, 1 }, false }, // protocol 1
{ 650, { 1, 10 }, { 1, 2 }, { 2, 1 }, false }, // protocol 2
{ 100, { 30, 71 }, { 4, 11 }, { 9, 6 }, false }, // protocol 3
{ 380, { 1, 6 }, { 1, 3 }, { 3, 1 }, false }, // protocol 4
{ 500, { 6, 14 }, { 1, 2 }, { 2, 1 }, false }, // protocol 5
{ 450, { 23, 1 }, { 1, 2 }, { 2, 1 }, true }, // protocol 6 (HT6P20B)
{ 150, { 2, 62 }, { 1, 6 }, { 6, 1 }, false }, // protocol 7 (HS2303-PT, i. e. used in AUKEY Remote)
{ 200, { 3, 130}, { 7, 16 }, { 3, 16}, false}, // protocol 8 Conrad RS-200 RX
{ 200, { 130, 7 }, { 16, 7 }, { 16, 3 }, true}, // protocol 9 Conrad RS-200 TX
{ 365, { 18, 1 }, { 3, 1 }, { 1, 3 }, true }, // protocol 10 (1ByOne Doorbell)
{ 270, { 36, 1 }, { 1, 2 }, { 2, 1 }, true }, // protocol 11 (HT12E)
{ 320, { 36, 1 }, { 1, 2 }, { 2, 1 }, true } // protocol 12 (SM5212)
};
//{pulseLength, {syncFactor.high, syncFactor.low}, {zero.high, zero.low}, {one.high, one.low}, invertedSignal}
Radio Module | ESP32 | |
---|---|---|
DATA | -- | GPIO4 |
GND | -- | GND |
VCC | -- | 3.3V |
You can change data pin to any pin using menuconfig.
I used this library on Arduino environment.
The sample code for the Arduino environment can be found in the ArduinoCode folder.
You can control ESP32 using garage door 315/433Mhz remote.
You can buy it on AliExpress or eBay for about $3.
Build the firmware as Receiver.
Fire the RF using the RF remote control.