Беспроводная передача данных между Arduino при помощи LoRa радиомодуля Ebyte E32-868T30D (1 часть)

preview_player
Показать описание


Спасибо большое автору канала @arduinoLab за такой замечательный контент!

ВНИМАНИЕ!!!
Прежде, чем проводить данные эксперименты, необходимо произвести настройку модуля, чтобы он подходил по параметрам частоты и мощности под разрешенные законодательством вашей страны диапазоны!

0:00 Вступление
0:46 Оборудование
1:43 Подключение Mega
3:04 Скетч для Mega
4:18 Скетч для Uno
5:21 Подключение Uno
5:57 Тестирование
Рекомендации по теме
Комментарии
Автор

вот за подтяжку к земле, спасибо большое .
сэкономили уйму времени на чтение мануала

tree-service
Автор

Ништяковина!!!
Друг, спасибо за труды! Жму лапу!

Короч, подписался, классный канал!

Mikhail-Milkhail
Автор

Ещё можно взять модуль и замкнуть RX c TX и когда модуль будет принимать пакет, тут же будет передавать, получится как бы ретранслятор. Можно расположить его на высоком месте и получить большую зону покрытия.

SergeiLikholet
Автор

таки да! Оно работает. Но обязательным условием есть одинаковые настройки модулей.

bes
Автор

Есть ли понимание, какая задержка передачи? Если, допустим, на передатчике будет 4 кнопки, сколько нужно милисекунд, чтобы сигнал от кнопки пришёл к приёмнику и передался в компьютер? Есть идея сделать midi-радио контроллер с помощью lora+arduino.

NikeDemin
Автор

Отлично потрудился. Спасибо за ролик. Дальность проверял ? Я юзаю маненько другие, у них сложнее инициализация и работа с ними, но тоже не космос. Примеры есть. Так вот. У меня они работают со скоростью явно повыше. Когда одно устройство передатчик, второе - приёмник, то удаётся пропихнуть в секунду три 32 байтных пакета с подтверждением доставки. т.е. 3*32*8=768kbps. Модули называются NRF24L01, цена от 0, 7 до 1, 8 бакса в зависимости от мощности. Рекомендос. 2, 4 ГГц.

uragunnnn
Автор

Да, интересно. Но у продавца (и, наверняка, в даташите) сказано, что на RX нельзя подавать 5 вольт.
У меня все.

cafeterra
Автор

Сделайте пожалуйста на ардуино такой же передатчик, но не через лору, а обычный юсб lte модем. Чтобы был мост по вай-фаю. То есть в одном месте вы принимаете вай-фай сигнал от пульта, он ардуино преобразуется в сигнал для модема lte и уходит в интернет к второму модулю, который находится в другом месте (даже другой стране), где принимается тоже через модем и преобращуется ардуино в сигнал вай-фай, принимаемый вторым пользователем. В ответ получая тоже сигнал вай-фай. То есть двусторонняя связь. Это очень удобная связь для управления, например, дронами, работающими по вай-фаю.

kotnapromke
Автор

Добрый день, пробуем соединить две ардуинки уно, согласно Вашим инструкциям. соединение произошло, но при передаче текста или любых других данных приемник в мониторе порта выдает: �
подскажите, пожалуйста, с чем может быть связана данная проблема?

PhoenixNickolas
Автор

Сколька часов искал имено ЭТО. Но - теперь хочетьса найти вариант с ESP32 WROOM хотя в голове уже понятно что и как!

denisik
Автор

Можно ли при помощи этих устройств сделать беспроводной доступ к UART интерфейсу?
Например:
[девайс у которого есть (RX, TX)] === [(TX, RX) E32] ==воздух== [E32 (RX, TX)] === [переходник CP2102 USB-UART (TX, RX)] === [USB_порт_ПК]
Будет ли работать такая схема по умолчанию? (и возможно ли вообще такая реализация, чтобы не использовать Ардуино?)
Возможно ли с ПК, получить доступ к первоначальному девайсу?

andriysementsov
Автор

Павел, здравствуйте! У вас есть опыт работы с оборудованием ChipWhisperer ?

rgsm
Автор

Павел, здравствуйте, очень интересные у вас ролики, спасибо, с меня лайк и подписка😆

tcisuio
Автор

не могу сделать подобное с pro mini 5v. Для теста хотел кнопкой включить-выключить диод на плате по беспроводу . модули 433 мгц.

Трансмиттер

const int buttonPin = 2; // Пин кнопки
const int pinM0 = 10; // Пин M0 подключен к цифровому пину 10
const int pinM1 = 11; // Пин M1 подключен к цифровому пину 11

bool lastButtonState = HIGH; // Переменная для хранения последнего состояния кнопки
bool buttonState = HIGH; // Текущее состояние кнопки
unsigned long lastDebounceTime = 0; // Время последней проверки дребезга кнопки
unsigned long debounceDelay = 50; // Время дребезга кнопки

void setup() {
pinMode(buttonPin, INPUT_PULLUP); // Устанавливаем пин кнопки в режим входа с подтяжкой к питанию
pinMode(pinM0, OUTPUT); // Устанавливаем пин M0 в режим вывода
pinMode(pinM1, OUTPUT); // Устанавливаем пин M1 в режим вывода

// Устанавливаем пины M0 и M1 в режим заземления
digitalWrite(pinM0, LOW);
digitalWrite(pinM1, LOW);

Serial.begin(9600); // Инициализируем последовательную связь
}

void loop() {
int reading = digitalRead(buttonPin); // Считываем состояние кнопки с учетом дребезга

if (reading != lastButtonState) {
lastDebounceTime = millis();
}

if (millis() - lastDebounceTime > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;

if (buttonState == LOW) {
Serial.println("Sending command...");
Serial.write("1"); // Отправляем команду "1" через стандартные пины RX и TX
}
}
}

lastButtonState = reading;
}








Ресивер

const int ledPin = 13; // Пин встроенного светодиода
const int pinM0 = 10; // Пин M0 подключен к цифровому пину 10
const int pinM1 = 11; // Пин M1 подключен к цифровому пину 11

void setup() {
pinMode(ledPin, OUTPUT); // Устанавливаем пин встроенного светодиода в режим вывода
digitalWrite(ledPin, LOW); // Убеждаемся, что светодиод изначально выключен

pinMode(pinM0, OUTPUT); // Устанавливаем пин M0 в режим вывода
pinMode(pinM1, OUTPUT); // Устанавливаем пин M1 в режим вывода

// Устанавливаем пины M0 и M1 в режим заземления
digitalWrite(pinM0, LOW);
digitalWrite(pinM1, LOW);

Serial.begin(9600); // Инициализируем последовательную связь
}

void loop() {
if (Serial.available() > 0) { // Если доступны данные по последовательному порту
char receivedChar = Serial.read();
if (receivedChar == '1') { // Если приняли команду "1", включаем светодиод
Serial.println("Received command: 1. Turning on LED...");
digitalWrite(ledPin, HIGH); // Включаем светодиод
}
}
}

andriiperov
Автор

У кого то смотрел. AUKS кто-то использовал чтобы данные при передаче не крашить. Если канал занят то микроконтроллер запрещал передачу.

EniKeysik
Автор

Попробовал Ваш пример, только вместо ардуино использовал esp32. Скетчи один в один. Все работает. Только очень странно приходят данные на приемник.
Если я отправляю слово "test"
То приемник в сериал выдает:
116
101
115
116

получается каждый символ слова "test" в ascii кодировке.
Вы с таким сталкивались?

andreyl
Автор

Можно сделать радиомашинку, чтоб она далеко ездила на этом приёмнике, передатчике

pkrwcbh
Автор

Что такое «инпат» и «аутпат»? Наверное, имелось ввиду - input [ˈɪn.pʊt], output [ˈaʊtpʊt] ?

cyanideburnout
Автор

Очень маленький шрифт для просмотра с телефона в arduino ide

iqubik
Автор

а как же адресация между устройствами? или каждый можуль может слушать что передаёт другой?

dimonaselektronas