Decode and send 433 mhz rf signals with arduino

Радио передатчик XD-RF-5V 433Mhz

Характеристики XD-RF-5V

Рабочее напряжение: 3V ~ 12VРабочий ток: 20 мА ~ 28mAРезервное течение: 0mAРабочая частота: 433MHzРасстояние передатчика: >500 м (чувствительность может быть выше-103dBm если в широком поле)Выходная мощность: 16dBm (40 мВт)Скорость Передатчик: Режим модуляции: ООК (AM)Рабочая температура: -10 ° C ~ +70 ° CРазмер: 19 х 19 х 8 мм

Для подключения имеет выводы PIN1 DATA, PIN2 VCC, PIN3 GND. Встроенной антенны нет, но есть контакт для ее подключения. Зачастую для увеличения дальности передачи изготоваливают проволочные антенны.Передатчик применяется в устройствах умного дома, автоматических системах сбора данных. Главным преимуществом является неприхотливость, стабильность в работе и низкое энергопотребление. Из минусов стоит отметить его «аналоговость». Нужно усложнять программный код для кодирования потока данных, но это же и является преимуществом т.к. нет никаких ограничений на протокол связи.

Обзор модуля nRF24L01+

Радиочастота

Приемопередающий модуль nRF24L01 + предназначен для работы  по всему миру в диапазоне частот ISM 2,4 ГГц и использует для передачи данных GFSK модуляцию. Скорость передачи данных может составлять 250 Кбит/с, 1 Мбит/с и 2 Мбит/с.

Потребляемая мощность

Рабочее напряжение модуля составляет от 1,9 до 3,6 В, но хорошая новость заключается в том, что выводы согласуются с 5 В логикой, поэтому мы можем легко подключить его к Arduino или любому 5 В логическому микроконтроллеру без использования какого-либо преобразователя логического уровня.

Модуль поддерживает программируемую выходную мощность, а именно: 0 дБм, -6 дБм, -12 дБм или -18 дБм и потребляет невероятно мало, около 12 мА во время передачи при 0 дБм, что даже ниже, чем у одного светодиода.

И что самое приятное, он потребляет 26 мкА в режиме ожидания и 900 нА в режиме отключения. Вот почему данный модуль является беспроводным устройством для приложений с низким энергопотреблением.

Интерфейс

Модуль nRF24L01 + обменивается данными через 4-контактный последовательный интерфейс (SPI) с максимальной скоростью передачи данных 10 Мбит/с. Все параметры, такие как частотный канал (125 выбираемых каналов), выходная мощность (0 дБм, -6 дБм, -12 дБм или -18 дБм) и скорость передачи данных (250 кбит/с, 1 Мбит/с или 2 Мбит/с), можно настроить через SPI интерфейс.

Паяльная станция 2 в 1 с ЖК-дисплеем
Мощность: 800 Вт, температура: 100…480 градусов, поток возду…

Подробнее

Шина SPI использует концепцию Master и Slave, и в большинстве распространенных приложений: Arduino является Master, а модуль приемопередатчика nRF24L01 + — Slave. В отличие от шины I2C количество ведомых на шине SPI ограничено, на Arduino Uno можно использовать максимум два ведомых SPI, т.е. два модуля приемопередатчика nRF24L01 +.

Характеристики nRF24L01 +

Частотный диапазон 2,4 ГГц ISM Band
Скорость передачи по воздуху, max 2 Мбит / с
Формат модуляции GFSK
Максимум. Выходная мощность 0 дБм
Рабочее напряжение питания 1,9–3,6 В
Ток потребления, max 13,5 мA
Ток в режиме ожидания, min 26 мкA
Логические Входы 5 В совместимый
Дальность связи 800+ м (по прямой видимости)

Более подробную информацию по модулю можно посмотреть в datasheet.

На основе чипа nRF24L01 + доступно множество модулей. Ниже приведены самые популярные версии.

nRF24L01 + Беспроводной модуль

В первой версии используется встроенная антенна. Это позволило создать более компактную версию модуля. Однако небольшая антенна также означает меньшую дальность передачи. С этой версией модуля вы сможете общаться на расстоянии до 100 метров. Конечно, это на открытом воздухе без препятствий. Дальность передачи в помещении через стены будет немного меньше.

nRF24L01 + PA LNA модуль с внешней антенной

Вторая версия поставляется с разъемом SMA и внешней антенной, но это не основное отличие данной версии. Реальное отличие состоит в том, что эта версия поставляется со специальным чипом RFX2401C, который объединяет схемы коммутации PA, LNA и приема-передачи. Этот чип расширения диапазона вместе с внешней антенной помогает модулю достичь значительно большей дальности передачи — около 1000 м.

Что такое PA LNA?

PA обозначает усилитель мощности. Он просто увеличивает мощность сигнала, передаваемого с чипа nRF24L01 +. LNA означает усилитель с низким уровнем шума. Функция LNA состоит в том, чтобы чрезвычайно слабый и неопределенный сигнал от антенны (обычно порядка микровольт или ниже -100 дБм) усилить  до более приемлемого уровня (обычно около 0,5…1 В)

Малошумящий усилитель (LNA) приемного тракта и усилитель мощности (PA) тракта передачи подключаются к антенне через дуплексер, который разделяет два сигнала и предотвращает перегрузку чувствительного входа LNA относительно мощного выхода PA.

Урок 26.6 Соединяем две arduino по радиоканалу 433 МГц

При создании некоторых проектов, требуется разделить выполняемые задачи между несколькими arduino.

Антенна:

Длинна радиоволны вычисляется делением скорости света (299’792’458 м/с) на частоту (в нашем случае 433’920’000 Гц).

L = 299’792’458 / 433’920’000 = 0,6909 м = 691 мм.

Таким образом длина антенн для радио модулей на 433,920 МГц может быть: 691 мм (1L), 345 мм (L/2), или 173 мм (L/4). Антенны припаиваются к контактным площадкам, как показано на схеме подключения.

Схема подключения:

Радиопередатчик подключён к выводу D12 (можно подключить к любому выводу Arduino). Радиоприёмник подключён к выводу D2 (при работе с библиотекой iarduino_RF433, его можно подключить только к выводам использующим внешние прерывания). Trema четырехразрядный LED индикатор подключён к цифровым выводам D6 и D7 (можно подключить к любым выводам Arduino). Светодиод подключён к цифровому выводу D11 (для изменения яркости нужны выводы, которые используют ШИМ). Trema потенциометр и слайдер подключены к аналоговым входам A1 и A0 (можно подключить к любым аналоговым входам).

У радиоприёмника имеются два выхода DATA, они электрически соединены между собой, так что Вы можете использовать любой выход.

Приёмник MX-RM-5V критичен даже к небольшим пульсациям на шине питания (см. раздел недостатки).Для питания Arduino, используйте внешний источник питания, а не шину USB.

Плата Arduino Выводы использующие внешнее прерывание
Uno, ProMini, Nano, Ethernet 2, 3
Leonadro, Micro 2, 3, 0, 1, 7
Mega 2560 2, 3, 18, 19, 20, 21
Due Любые выводы

Алгоритм работы:

При старте (в коде setup) скетч настраивает работу радиопередатчика, указывая скорость передачи данных и номер трубы. После чего, постоянно (в коде loop), считывает показания с Trema потенциометра и Trema слайдера, сохраняя их в массив data, и отправляет его радиопередатчику.

Приёмник:

При старте (в коде setup) скетч настраивает работу радиоприёмника, указывая те же параметры что и у передатчика, а также инициирует работу с LED индикатором. После чего, постоянно (в коде loop), проверяет нет ли в буфере данных, принятых радиоприёмником. Если данные есть, то они читаются в массив data, после чего значение 0 элемента (показания Trema слайдера) выводится на LED индикатор, а значение 1 элемента (показания Trema потенциометра) преобразуются и используется для установки яркости светодиода.

Приемник:

Проверка модулей:

Работоспособность приёмника и передатчика можно проверить на одной плате Arduino. Для этого подключите приёмник к выводу D3, а передатчик к выводу D4 и загрузите скетч «check» из примеров библиотеки iarduino_RF433.

Источник

Приемный радио модуль на 433 МГц

Приемный радио модуль на 433 МГц также отличается достаточно маленькими размерами и имеет 4 контакта: VCC, ground и два средних контакта для вывода данных. Рабочее напряжение модуля – 5 В. Также как и передающий модуль, приемный модуль также отличается низким энергопотреблением и может также иметь контакт антенны (у используемого нами модуля его нет).

Структурная схема работы приемной части проекта

Как следует из представленной структурной схемы, сначала мы принимаем передаваемый сигнал с помощью приемного радио модуля. На выходе радио модуля у нас последовательные данные – но в таком виде мы с их помощью не можем управлять двигателями, поэтому выход приемного радио модуля у нас подключен к декодеру, который преобразует поступающие последовательные данные в их первоначальный параллельный вид. В приемной части проекта у нас нет необходимости в использовании каких либо микроконтроллеров, мы можем напрямую подключить выходы декодера к драйверу двигателей.

The Software

Configuration

To configure the transceiver open and change/uncomment the following parameters.

These values are needed and represent the input (receiver) and output (transmitter) pins. The microcontroller has to support interrupts on the input pin for the receiver, almost any output pin can be used for the transmitter. Note that these are actual pin numbers, not interrupt numbers.

Usual Values:

  • ESP8266
    • Receiver on pin (IRQ4)
    • Sender on pin
  • Arduino Micro
    • Receiver on pin (IRQ 0)
    • Sender on pin
  • Arduino Nano
    • Receiver on pin (IRQ 0)
    • Sender on pin

You can use a more advanced CC1101 based transceiver module instead of simple 433MHz receiver/sender pairs. These modules also have send and receive pins but are additionally connected via SPI for configuration.

Works on Arduino and ESP.

You can use WiFi to connect to the computer instead of USB.

This will create a websocket server to send/receive data in addition to the serial port, default hostname is , port 80. Specify your WiFi credentials in and .

Works on ESP.

You can use ESPilight insted of rc-switch to decode switches.

The send/receive data format will change to JSON, with and content. Additionally pilight debug messages, always beginning with might be generated.

Works on ESP.

Adding support for unsupported switches when using rc-switch

If you have a 433 device that doesn’t work you can try and download a different version of the rcswitch library and run a «discovery application» that suggests how to extend the rcswitch.cpp file to add support for the unknown signal:

Use the branch in that repository, it includes the Arduino discovery application example.

Transceiver transmit protocol

Note: If you’re using homebridge-433-arduino you can skip this section unless you’re interested in the interna of the transceiver communication.

In its default mode the transceiver will use the USB serial port to send rc-switch data (code, pulse, protocol) in a format like when any 433MHz codes are received and decoded. When receiving serial data in the same format the transceiver will send the corresponding 433MHz data and return an message. The serial data is terminated by .

In ESPiLight mode the transceiver will send received signals in a JSON based format like . When sending data the format changes slightly to . See the ESPiLight documentation for more info.

Accordingly, the transceiver will only ever output 4 types of messages:

  • Message -> after receiving a message and sending the corresponding code
  • Message starting with -> JSON data when using ESPiLight
  • Message starting with -> debug data when using ESPiLight
  • Message starting with a number -> code/pulse/protocol message when using rc-switch

Note that when sending RC data the transceiver can not receive any new commands, wait until the message has been sent back before sending any new commands.

Принципиальная схема передающей части проекта

Схема пульта дистанционного управления лодкой на основе платы Arduino представлена на следующем рисунке.

В схеме одни концы кнопок подключены к цифровым контактам D6-D9 платы Arduino, а другие их концы подключены к общему проводу (земле). Соответственно, если мы нажимает одну из кнопок, на соответствующий цифровой контакт платы Arduino подается напряжение низкого уровня (low). Четыре параллельных входа микросхемы HT12E подключены к цифровым контактам D2-D5 платы Arduino, поэтому с помощью платы Arduino мы можем легко управлять состоянием этих контактов.

Микросхема HT12E представляет собой 12-битное кодирующее устройство (encoder, энкодер), которое преобразует параллельные входные данные в последовательные выходные данные. Из этих 12 бит 8 бит представляют собой биты адреса, которые можно использовать для управления несколькими приемниками. Контакты A0-A7 микросхемы HT12E являются контактами входного адреса. В нашем проекте мы будем управлять только одним приемником, поэтому нам не нужно изменять этот адрес и поэтому мы замкнули эти контакты на землю. Если вам необходимо с помощью HT12E управлять несколькими приемниками с помощью одного передатчика, то вам в этом случае можно использовать двухрядные переключатели (dip switches). AD8-AD11 – это входные контакты, с их помощью можно управлять выходными контактами D0-D3 декодера HT12D. Также нам в нашей схеме необходим излучатель с частотой 3 кГц, работающий от 5V. Также при питании от 5V нам необходим резистор сопротивлением 1.1 МОм. Выход микросхемы HT12E мы подключили к передающему радио модулю. Поскольку все компоненты нашей схемы работают от напряжения 5V, то в схему мы добавили регулятор напряжения 7805 – поэтому мы можем подавать напряжение на вход схемы в диапазоне 6-12 В.

Объяснение программы для Raspberry Pi

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Программировать плату Raspberry Pi в нашем проекте мы будем с использованием языка Python3. Также можно использовать и язык C/C++ как и в плате Arduino, однако в данном случае преимуществом написания программы на языке python является то, что на нем написана специальная библиотека для работы с модулями nRF24l01, которую можно скачать с ее официальной страницы на github. Но здесь необходимо отметить, что наша программа на python и указанная библиотека должны находиться в одном и том же каталоге, иначе программа на python не сможет найти библиотеку. После скачивания библиотеки извлеките ее из архива и создайте отдельный каталог, в котором будут храниться все программы и библиотеки вашего проекта. Когда установка библиотеки будет закончена, можно приступать к написанию программы.

Первым делом в программе необходимо подключить (импортировать) все используемые библиотеки.

Python

import RPi.GPIO as GPIO
import time
import spidev
from lib_nrf24 import NRF24

1
2
3
4

importRPi.GPIO asGPIO

importtime

importspidev

fromlib_nrf24 importNRF24

Далее установим режим работы контактов (GPIO mode) платы Raspberry Pi «Broadcom SOC channel», что будет означать что мы будем обращаться к контактам платы по их физическим номерам (а не по их номерам на плате).

Python

GPIO.setmode(GPIO.BCM)

1 GPIO.setmode(GPIO.BCM)

Далее в программе мы зададим адреса каналов (pipe address) – они будут нужны для взаимодействия с приемной частью проекта на основе платы Arduino. Адреса укажем в шестнадцатеричном коде.

Python

pipes = , ]

1 pipes=0xE0,0xE0,0xF1,0xF1,0xE0,0xF1,0xF1,0xF0,0xF0,0xE0

Инициализируем модуль nRF24l01 используя контакты GPIO08 в качестве CE и GPIO25 в качестве CSN.

Python

radio.begin(0, 25)

1 radio.begin(,25)

Установим размер пакета (payload size) 32 бита, адрес канала 76, скорость передачи данных 1 Мбит/с и выходную мощность модуля на минимум.

Python

radio.setPayloadSize(32)
radio.setChannel(0x76)
radio.setDataRate(NRF24.BR_1MBPS)
radio.setPALevel(NRF24.PA_MIN)

1
2
3
4

radio.setPayloadSize(32)

radio.setChannel(0x76)

radio.setDataRate(NRF24.BR_1MBPS)

radio.setPALevel(NRF24.PA_MIN)

Откроем каналы и начнем в них запись данных. Также будем выводить на экран основные параметры (details) работы модуля nRF24l01.

Python

radio.openWritingPipe(pipes)
radio.printDetails()

1
2

radio.openWritingPipe(pipes)

radio.printDetails()

Подготовим сообщение в форме строки. Это сообщение мы будем передавать плате Arduino UNO.

Python

sendMessage = list(«Hi..Arduino UNO»)
while len(sendMessage) < 32:
sendMessage.append(0)

1
2
3

sendMessage=list(«Hi..Arduino UNO»)

whilelen(sendMessage)<32

sendMessage.append()

Начнем запись информации в радио модуль и будем продолжать запись пока не закончится вся строка для передачи. Одновременно с этим зафиксируем текущее время и выведем на экран сообщение об успешной передаче (в целях отладки).

Python

while True:
start = time.time()
radio.write(sendMessage)
print(«Sent the message: {}».format(sendMessage))
send
radio.startListening()

1
2
3
4
5
6

whileTrue

start=time.time()

radio.write(sendMessage)

print(«Sent the message: {}».format(sendMessage))

send

radio.startListening()

Если передача сообщения завершена и радио канал закрыт (не доступен) более 2-х секунд, то выведем на экран сообщение о том, что время истекло (timed out).

Python

while not radio.available(0):
time.sleep(1/100)
if time.time() — start > 2:
print(«Timed out.») # print error message if radio disconnected or not functioning anymore
break

1
2
3
4
5

whilenotradio.available()

time.sleep(1100)

iftime.time()-start>2

print(«Timed out.»)# print error message if radio disconnected or not functioning anymore

break

Закрываем прослушивание (listening) радио канала, закрываем соединение и заново открываем соединение спустя 3 секунды чтобы передать другое сообщение.

Python

radio.stopListening() # close radio
time.sleep(3) # give delay of 3 seconds

1
2

radio.stopListening()# close radio

time.sleep(3)# give delay of 3 seconds

Материалы

В данной статье речь пойдет о радиосвязи, а конкретнее – о радиомодулях, для подключения их к Arduino и об успешном применении в различных проектах.

Самым интересным способом для знакомства с радиомодулями, является установление соединения между двумя платами Ардуино посредством так называемого приемопередатчика.

Наибольшей популярностью среди радиомодулей с поддержкой Arduino пользуются передатчики с частотой 433МГц. Самое такое устройство обычно делиться на две составные части: это приемник и передатчик. Первый модуль имеет 4 вывода для подключения к плате (но один из них можно не использовать) Два из этих вывода отвечают за питание (соответственно, подключаются к таким контактам на плате, как 5V и Gnd (ground – “земля”), а другой к цифровому выходу на плате.

Передатчик тоже имеет 3 используемых контакта для подключения к плате. Только подключается он уже к другой плате, с которой у нас будет взаимодействовать первая плата, подключенная к приемнику. Три вывода подключается таким же способом, как и в случае с подключением приемника.

Наглядная картинка подключенных модулей есть на фото ниже:

Теперь займемся написанием программного кода. Для этого откроем среду разработки – программу Arduino IDE. Для работы с модулями понадобится специализированная библиотека RCSwitch.h, ее скачать вы можете здесь

Рассмотрим код, в котором будем передавать информацию с одной платы на другую, а уже в следующих уроках более углубимся в эту тему.

Начнем с передатчика. Этот модуль будет передавать информацию к другой плате, которая, обработав информацию, выполнит со всей подключенной к ней периферии необходимые действия.

Сначала инициализируем библиотеку для работы с модулями, с помощью директивы include

Для приемника будет следующий программный код:

В цикле программного кода можно легко заметить, что при отправке определенного сообщения устанавливается на выходе максимальное напряжение(high), в ином случае – минимальное (low)

Таким образом данный пример-код взаимодействия между элементами радиомодуля вы можете легко применить в собственных проектах: например, ИК-управление с помощь пульта, управление машинкой на этой же основе и многое другое

Надеемся, что статья была для вас полезной. Удачной всем компиляции! И следите за нашим блогом:)

Купить компоненты, используемые в статье, вы можете на нашем сайте: Амперкот.ру

Источник

Arduino with RF 433MHz Transmitter/Receiver Modules

In this section, we’ll build a simple example that sends a message from an Arduino to another Arduino board using 433 MHz. An Arduino board will be connected to a 433 MHz transmitter and will send the “Hello World!” message. The other Arduino board will be connected to a 433 MHz receiver to receive the messages.

Parts Required

You need the following components for this example:

  • 2x Arduino – read Best Arduino Starter Kits
  • RF 433MHz Receiver/Transmitter 
  • Breadboard
  • Jumper wires

You can use the preceding links or go directly to MakerAdvisor.com/tools to find all the parts for your projects at the best price!

Installing the RadioHead Library

The RadioHead library provides an easy way to work with the 433 MHz transmitter/receiver with the Arduino. Follow the next steps to install that library in the Arduino IDE:

  1. Click here to download the RadioHead library. You should have a .zip folder in your Downloads folder.
  2. Unzip the RadioHead library.
  3. Move the RadioHead library folder to the Arduino IDE installation libraries folder.
  4. Restart your Arduino IDE

The RadioHead library is great and it works with almost all RF modules in the market. You can read more about the RadioHead library here.

Transmitter Circuit

Wire the transmitter module to the Arduino by following the next schematic diagram.

Important: always check the pinout for the transmitter module you’re using. Usually, there are labels next to the pins. Alternatively, you can also take a look at your module’s datasheet.

Transmitter Sketch

Upload the following code to the Arduino board that will act as a transmitter.

How the transmitter sketch works

First, include the RadioHead ASK library.

This library needs the SPI library to work. So, you also need to include the SPI library.

After that, create a RH_ASK object called driver.

In the setup(), initialize the RH_ASK object by using the init() method.

In the loop(), we write and send our message. The message is saved on the msg variable. Please note that the message needs to be of type char.

This message contains the “Hello World!” message, but you can send anything you want as long as it is in char format.

Finally, we send our message as follows:

The message is being sent every second, but you can adjust this delay time.

Receiver Circuit

Wire the receiver module to another Arduino by following the next schematic diagram.

Important: always check the pinout for the transmitter module you’re using. Usually, there are labels next to the pins. Alternatively, you can also take a look at your module’s datasheet.

Receiver Sketch

Upload the code below to the Arduino connected to the receiver.

How the receiver sketch works

Similarly to the previous sketch, you start by including the necessary libraries:

You create a RH_ASK object called driver:

In the setup(), initialize the RH_ASKobject.

In the loop(), we need to set a buffer that matches the size of the message we’ll receive. “Hello World!” has 12 characters. You should adjust the buffer size accordingly to the message you’ll receive (spaces and punctuation also count).

Then, check if you’ve received a valid message. If you receive a valid message, print it in the serial monitor.

Demonstration

In this project the transmitter is sending a message “Hello World!” to the receiver via RF. Those messages are being displayed in receiver’s serial monitor. The following figure shows what you should see in your Arduino IDE serial monitor.

Description

Throughout this tutorial we’ll be using the FS1000A transmitter and corresponding receiver, but the instructions provided also work with other 433MHz transmitter/receiver modules that work in a similar fashion. These RF modules are very popular among the Arduino tinkerers and are used on a wide variety of applications that require wireless control.

These modules are very cheap and you can use them with any microcontroller, whether it’s an Arduino, ESP8266, or ESP32.

Specifications RF 433MHz Receiver

  • Frequency Range: 433.92 MHz
  • Modulation: ASK
  • Input Voltage: 5V
  • Price: $1 to $2

Specifications RF 433MHz Transmitter

  • Frequency Range: 433.92MHz
  • Input Voltage: 3-12V
  • Price: $1 to $2

Where to buy?

You can purchase these modules for just a few dollars. Click here to compare the RF 433MHz transmitter/receiver on several stores and find the best price.

Introduction

This plugin allows you to use cheap 433MHz wireless switches as lamps, fans or generic switches in HomeKit and control them using Siri. You can also use your 433Mhz remote to control things in HomeKit, like for example start scenes.

Improvements over other similar plugins

  • Bidirectional, can send and receive switch signals
  • Virtually no CPU load on the server (RasPi) even when receiving
  • Sending signals works properly and sequentially, no broken signals when many devices are controlled
  • Rock-solid RF signal quality and timing through external micro controller
  • Transceiver can use WiFi so it doesn’t need a physical connection to the homebridge server
  • Supports homebridge-config-ui-x to set up switches via web interface

Why use an external microcontroller?

There is plugins out there that use the Raspberry Pi GPIO functions to send and receive 433 MHZ data. The problem with these is that especially the receiving part requires quite a lot of CPU power as the RasPi lacks real hardware interrupts on its GPIO ports. Sending works okay most of the time if the RasPi isn’t under much load. The RasPi 1 can struggle to get accurate RF timing with short pulse durations even under low load however.

Additionally, the RasPi works on 3.3V and most simple 433MHz receivers/transmitters work best at 5V. The Arduino micro for example runs on 5V and allows a much more stable connection to the receivers and transmitters.

Supported switches

Most cheap 433 MHz switches should work, the transceiver can use either rc-switch or ESPiLight to encode and decode signals. ESPiLight is recommended as it supports more switch types but as the name suggests it requires ESP hardware.

Примеры

Остальные примеры смотри в examples!

Отправка

#include <Gyver433.h>
Gyver433_TX<2> tx;  // указали пин

void setup() {
}

char data[] = "Hello from #xx"; // строка для отправки
byte count = ;                 // счётчик для отправки

void loop() {
  // добавляем счётчик в строку
  data = (count / 10) + '0';
  data = (count % 10) + '0';
  if (++count >= 100) count = ;
  tx.sendData(data);
  delay(100);
}

Приём в прерывании

#include <Gyver433.h>
Gyver433_RX<2, 20> rx;  // указали пин и размер буфера

void setup() {
  Serial.begin(9600);  
  attachInterrupt(, isr, CHANGE);  // прерывание пина радио по CHANGE
}

// спец. тикер вызывается в прерывании
void isr() {
  rx.tickISR();
}

void loop() {
  if (rx.gotData()) {                   // если успешно принято больше 0
    Serial.write(rx.buffer, rx.size);   // выводим
    Serial.println();
  }  
  delay(50);                            // имитация загруженного кода
}

Распиновка передатчика и приемника 433 МГц

Давайте посмотрим на распиновку модулей передатчика и приемника RF 433 МГц.

DATA — принимает цифровые данные для передачи.

VCC — обеспечивает питание передатчика. Это может быть любое положительное постоянное напряжение от 3,5 до 12 В. Обратите внимание, что РЧ-выход пропорционален напряжению питания, т.е. чем выше напряжение, тем больше будет дальность.

GND — минус питания.

Антенна — это разъем для внешней антенны. Как обсуждалось ранее, вам понадобится припаять кусок  проволоки длинной 17,3 см к этому контакту для улучшения дальности.

  • DATA — выводит полученные цифровые данные. Два центральных штифта внутренне связаны между собой, поэтому вы можете использовать любой из них для вывода данных.
  • VCC — обеспечивает питание приемника. В отличие от передатчика, напряжение питания для приемника должно быть 5 В.
  • GND — минус питания.
  • Антенна — это разъем для внешней антенны, который часто не обозначен. Это накладка в левом нижнем углу модуля, рядом с маленькой катушкой. Опять же, можно припаять кусок провода  длинной 17,3 см к этому контакту для улучшения дальности.