Простая беспроводная сеть датчиков на Arduino и 433 MHz
HTML-код
- Опубликовано: 1 июн 2024
- Заказать PCB: jlcpcb.store/ купон на $10: jlcpcb.com/EDA
Делаем энергоэффективные автономные беспроводные датчики
Примеры и проект на EasyEda: github.com/Nich1con/WirelessM...
► Поддержать автора: yoomoney.ru/to/410019154264963
► По всем вопросам: nich1con36@mail.ru
▼ Уроки по теме ▼
Урок по энергосбережению: • Уроки Arduino: энергос...
alexgyver.ru/lessons/naked-chip/
alexgyver.ru/lessons/programm...
alexgyver.ru/lessons/power-sl...
▼ Видео про программаторы ▼
• Самодельный ISP програ...
• Используем Arduino в к...
• Работа с программаторо...
▼ Библиотеки и ядро ATtiny13 ▼
github.com/GyverLibs
github.com/MCUdude/MicroCore
★ Инструменты, приборы и материалы для пайки ★
- Удобные мультиметры: ali.ski/2nn13 ali.ski/fTDAW9
- Тестеры компонентов: ali.ski/ZFLC7Y ali.ski/Mb_7W
- Карманные осциллографы: ali.ski/JdkQw
- Паяльная станция HakkoT12: ali.ski/pEUz9I
- Паяльный фен 8858: ali.ski/3cSLjp ali.ski/OtB10-
- Коврик для пайки: ali.ski/gF7bWW
- Стриппер для проводов: ali.ski/RiVwcj ali.ski/Thu_i
- Оловоотсос: ali.ski/1MLjH ali.ski/1K-IS
- Куча дешевого припоя: ali.ski/ZGkkx ali.ski/S3h5V
- Шпильки для выпайки: ali.ski/WSv7wx
- Хороший флюс-гель: ali.ski/uFflw
► Огромный стартовый набор GyverKIT: kit.alexgyver.ru/
► Уроки Arduino на сайте: alexgyver.ru/lessons/
► Модули и датчики с Али: alexgyver.ru/arduino_shop/
► Страница "Заметок Ардуинщика": alexgyver.ru/arduino_lessons/
▼ Таймкоды ▼
00:00 - вступление
00:35 - идея
01:14 - подбираем железки
03:37 - составляем схему
04:40 - разводим и заказываем платы
06:55 - подготовка к примерам
07:47 - протокол связи
08:27 - 1 пример (кнопка)
12:29 - 2 пример (термистор)
13:42 - 3 пример (фоторезистор)
14:47 - 4 пример (PIR датчик движения)
15:18 - 5 пример (термометр DS18B20)
17:03 - решаем проблему ввода
17:42 - эпилог
Теги: #arduino #уроки #ардуино #alexgyver
●●●●●●●●●●●●●●●●●●●●
► Основной канал: / alexgyvershow
► Поддержать автора alexgyver.ru/support_alex/
► Официальный сайт: alexgyver.ru/
► Почта: alex@alexgyver.ru - Наука
Спасибо! Интересно и полезно, как раз подумывал о какой-то системе с разнесенными по квартире датчиками.
Спасибо. Подача информации великолепная!
Отличный второй ведущий!! Спасибо за урок)
народное признание это круто)
@@ArduNotes а то же самое только на nrf24l01?
то же самое не получится. Посмотри от чего питается nrf и сколько пинов для подключения ей нужно
@@ArduNotes сделал на 85 тиньке. 18B20 cr2030 пока уже третий месяц раз в 5 минут швыряет температуру. А nrf потому что 100 метров.
@@ValeriyDoniy это радио тоже на 100 метров бьёт. 433 МГц гораздо лучше чем 2.4 ГГц работает и на открытой, и через бетон вообще то))
Только сегодня разбирался со сном на attiny 85 и внешним прерыванием по кнопке. Жирный лайк !!!!
основательный материал. благодарю за освещение данной темы.
что еще дальше будет.
Спасибо! Отличный урок.
Спасибо за видео! Впервые попалась подробная информация, как сделать простой, не прожорливый передатчик. Я использую esp8266+ds18b20, с литиевым аккумулятором. Достаточно прожорливо - раз в 2 недели надо заряжать. Теперь откроются классные варианты по передаче защищенных сигналов по участку - например звонок, открытие калитки и т.п.
На сколько милиампер использовал аккумулятор
Супер. Добавил видео в избранное. Вскоре понадобится.👍👍👍
бальзам на душу! Спасибо большое за решения!
Кратко и информативно👍
Хотелось-бы вариант реализации приемо-передатчиков без коллизий...
На разных диапазонах и также чтобы с низким энергопотреблением !
CSMA/CA на Attiny ? )))) Или молчать пока база не спросит конкретно тебя
Запрос на передачу - ожидание разрешения передачи - впадение в спячку на случайное время - повторный запрос.
Второй вариант (если не хочешь принимать подтверждение) - отправлять не один пакет, а например три подряд со случайными временнЫми промежутками (естественно, не забудь вставить id пакета, чтобы база знала, что это один и тот же пакет - создаешь стек принятых пакетов и при приеме смотришь - не завалялся ли в стеке пакет с таким же id из числа недавно принятых )
Но вообще-то пакеты желательно квитировать, чтобы передатчик знал, что отправленные данные не растворились в эфире как пук на ветру.
@@user-hp7gl6rm8e первый вариант предусматривает использование и передатчика и приемника на двух концах.
А второй способ действительно подходит
Если вьібранньіе радио модули умеют в приемо-передачу данньіх, то упрощенно алгоритм может бьіть таков:
- пробуем слушать єфир, если "тихо" - то можна посьілать "запрос на передачу" что-то типа "req#"и номер датчика.
- переключаемся на прием и ждем какой-то таймаут
- база например может ответить "разрешаю" или "нет". Или не ответить.
- если получили в ответ запрет - увеличиваем таймаут и повторяем попьітку.
- если получили "разрешение" со своим номером - производим передачу.
- так же можно после передачи запланировать ожидание получения пакета приемником и его "раскодирования".
Для "поучиться" можно почитать, как работают похожие алгоритмьі в "больших" сетях, например, как работают протокольі TCP/IP и смотреть передачу данньіх в сетях с совместньім использованием канала и разделением по времени.
Как пример - коаксиальньіе сети.
Я думаю при заказе на JLCPCB плата по виду размером менее 30 мм, поэтому можно было размножить их и уместить в дешевые габариты 100х100мм чтобы пришло не 5 платок, а аж 45 если не больше )
Отлично. Теперь, как изюминку на торте, ролик про RS485 и MODBUS. Спасибо за твой труд.
дааа , ждём с нетерпением! 485 в студию пожалуйста!!!!!
А может физический уровень CAN? RS485 при двух включенных передатчиках сгорает.
Вишенка, на торте вишенка!!! Не изюм! Запомните!
Класс ! Какраз хотел сделать радио датчики влажности почвы в домашних растениях, чтобы не тупо раз в неделю поливать, а когда требуется )
Спасибо. Впитываю ваши уроки как губка. Молодцы.
Спасибо за видео. Поддерживаю - было бы полезно определять уровень заряда батареи. Как в рамках данного урока, так и в качестве отдельной темы: как внутри автономного по питанию проекта на Ардуино определять уровень заряда батарейки или аккумулятора? Данная тема интересует сильно.
измерять напряжение, используя АЦП
воспользоваться датчиком напряжения, например, INA219
@@orkoteg09 Спасибо! Посмотрю.
@@orkoteg09 датчик сам жрет, делитель напруги проще имхо
@Galaktion NoName как варик напряжение через стабилитрон 1,8 в
Чё там определять? 4.2 вольта заряжен. 3.4 или 3.7 разряжен.
Спасибо за видео и советы ждём продолжения интересно
Супер! Не так много инфы по работе со сверхмалыми микроконтроллерами!
Кстати, для дополнительного продления жизни батарейки, хороршо бы поставить параллельно ей, небольшой конденсатор на несколько микрофарад. Все химические элементы, не любят резких скачков потребления. Конденсатор в таком включении, несколько компенсирует фронт потребления и немного продлит жизнь батарейки.
Все так, а еще он даст бросок тока который нахватает прожорливым устройствам.
Именно так,кондей танталовый на 10 мкф
attiny13 подорожала. Сравнялась с Attiny 84a . На 84а всего побольше, ножек, памяти. На ней проекты предлагаю сделать.
Спасибо за ваши идеи и труды
Молодцы. Ещё бы практического пояснения по больше. Так сказать для чайников (медных) "это сюда, от сюда туда... "
Для тех кто увлекся этим проектом. В качестве приемника, можно использовать не Ардуино нано, а ATTiny 85, заменив дефайны ног МК.
I don't speak Russian. So then I will be learning two things. I will be watching and listening to more of your Videos. Thanks
Спасибо за видео. Я модуль передатчика на 433Мгц применил не стандартно, собрал на нем брелок для отрывания шлагбаума )
Смысла 0. На алике брилок дубликатор стоит 150 рублей.
Спасибо, очень интересно и полезно!
Отличный урок )
Конденсатор то подрос, как диктор. 🖒
Спасибо за разбор.
Крутой и полезный материал!
Просьба запланируйте пожалуйста подобный ролик только на esp между базой и исполнительными устройствами с обратной связью.
Извните, но вы чем ролик сомтрели? Сказано же, что прошивка исполнительного устройства без обратной связи весить 800 байт про памяти аттини 13 1 килобайт? На обратную связть тупо не хватит памяти мк
Превосходно! Впрочем, как всегда 😁
Отлично, очень интересно, спасибо!
Маленький совет: Вместо *С как обозначения температуры в цельсиях красивее использовать °С, символ " ° " это сочетание алт+0176 .
0176 на нампаде?
@@Gureev_M.S. Да, совершенно верно.
Уверен, благодаря этой информации я буду иметь успех у женщин, спасибо
@@mihailsaiddler Продолжай лучше иметь успех у мужчин с нетрадиционной ориентацией... Не благодари...
@@MrOMEGARUS ♂♥♂?
Обожаю! Я новичок в электронике и мне очень помогает Ваш канал!
Подскажите, а что за прога для созадния электрических принципиальных схем?
Вот это полезняк попер!
Все по взрослому!
привет .вопрос . как подключить дисплей с кнопками к датчикам газ спирт мете . речь о ардуино
Что думаете об использовании конденсатора и небольшой солнечной панели вместо акумулятора?
Спасибо. Отличная реализация. Я делал нечто подобное на nrf24l01. Очень прожорливая штуковина.
У меня вопрос: можно ли подключить к ардуино несколько таких датчиков? Если да, то как?
Ну наконец то! Великолепный проект и его реализация, спасибо!
А можно ли в этом проекте применить другие популярные радиомодули на 433 МГц (имеется в виду на зелёных платах и с катушками на них)?
Если нет, то почему?
Объясните пожалуйста момент с 17.04 минуты для чего используется эти переключатели для чего собирается схема с Ардуино и кнопкой ?
У меня кнопка срабатывает но при удержании кнопки потребление не падает, а удерживается на уровне 3мА
для чего кнопка Ресет на передатчике?
Максимально по существу!!!! Я бы сказал можно использовать как учебник!!!
уже
Хорошее видео!
Собрал себе метеостанцию на esp8266, внешний датчик bme280 + esp8266, работает от АКБ 18650, 2600мА емкости хватает на 3 месяца работы (с интервалами пробуждений раз в 10 минут). Только для зимы нельзя использовать 18650 по известным причинам, никель кадмий и сам без нагрузки не плохо разряжается. :)
Причем тут никель кадмий?
@@kickdown1591Это для зимы, никелькадмиевые АКБ переносят морозы нормально, но сами разряжаются даже без нагрузки.
очень полезный видос
Очень нужное и информативное видео!!!!!!!!!!!!!!
с NRF передатчиками такое тоже можно исполнить? или они гораздо прожорливее?
Топ контент, супер, четко
подскажите как сделать чтобы в примере с пир датчиком посылалось кроме обнаружения движения еще и что движения нет? спасибо.
Подскажите пожалуйста как сделать так чтобы ds18b20 выводил дробные значение, а не только целое число? В видео термистор выводит дробную часть, а ds только целую
Спасибо за труды. Давно взял на заметку данную работу. Сейчас собираю датчик и столкнулся с проблемой : у Вас в примерах
Gyver433_TX tx;
а в библ
// === ПЕРЕДАТЧИК ===
Gyver433_TX tx;
Gyver433_TX tx;
// === ПРИЁМНИК ===
Gyver433_RX rx;
Gyver433_RX rx;
Gyver433_RX rx;
т.е. в передатчике буфер не указывается?
Такая же проблема всплыла...Спасибо за подсказку!
Спасибо за видео. Давно смотрел, сейчас как раз актуально. Вопрос только: можно ли на один датчик поставить два контроля? Остается ли свободная нога у МК? Я к тому, что мне помимо температуры, нужно контролировать уровень воды, и это все в одном месте. Еще не копал досконально в эту сторону, а стОит ли?
автор сказал, что у нас остается две ноги, но раз с R2R ЦАПом мы пролетаем, то у нас находится еще одна нога для наших нужд
Раз затронули тему умного дома и энергосбережения, было бы интересно, если бы что-нибудь сказали про Zigbee в будущих видео. Там много сложностей, конечно, чтобы подступиться, но технология активно развивается и устройства умного дома работают с этими чипами годами.
zegbee, как и loRa тоже самому интересно пощупать
Добрый день, молодцы, можете ли вы выпустить ролик с подробным рассказом как сделать приём и передачу данных по I2C между двумя ардуино надо?
Отличный урок, так держать! Хотелось бы увидеть уроки по есп8266. Если хотите я могу их вести) Все таки с есп8266 я тесно дружу ;)
От гувера к осени будут
Очень ждём)
Парни! Сделайте пожалуйста, урок по Modbus RTU. Много промышленных "железок" с RS-485 на борту. Было бы интересно.
у меня одна железяка работает по протоколу modbus ascii, причем длина слова - 7 бит, а не 8...
Для метеостанции подойдёт 280-й датчик влажности, температуры и давления. Можно такие датчики раскидать по отслнживаемым местам и выводить всё на один дисплей. В идеале е-инк и обновлять всю систему раз в минуту. Но тогда наверное лучше использовать nrf24l01. Там есть функция пробуждения по радиосигналу. Типа станция просыпается, посылает команду датчикам отправить данные, датчики просыпаются, отправляют данные и засыпают. После этого станция обновляет данные на дисплее и засыпает. Е-инк дисплей сохраняет изображение после отключения питания.
да что то бме-бмп все шлют нерабочими сейчас по цене огромной
@@nich1con652 получается я успел в последний момент заказать?
Если датчики в режиме слушания эфира они быстро разрядят аккумулятор. Или нужно модули типа LoRa использовать, они умеют в спящем режиме слушать эфир.
@@SIM31r Точно, Лору на ягу и посмотрим какая погода в Саратове)))
Нрф24 в режиме приема кушает немало, только на передачу и затем в сон.
Шикарный девайс!
А где ссылка на уроки по easyEDA?
весьма годное ! )
Спасибо за видео.
Было бы интересно посмотреть как организовать подобную проводную сеть. А именно способы организации двухсторонней связи между Arduino и несколькими Attiny13 по проводам. Чтобы "база" при инициализации проверяла доступность каждой Attiny13, могла отправлять запросы на получение данных и соответственно получать их.
Oneware вам в помощь, всё давно придумано и реализовано.
DIP переключатель если повесить на VCC, будет потреблять в режиме простоя, я бы зацепил на выход 433_VCC тиньки, я тоже обжигался с разводкой резистивного делителя для измерения напряжения на батарее, мерить напругу должно только при включенном девайсе
Приветствую. С момента выпуска видео прошло 1,5 года. Может, за это время на Али появилась какая-нибудь готовая связка микроконтроллер + радиомодуль с подобным мизерным потреблением и питанием до 5В (чтобы вместо таблетки можно было от лития 18650 запитать)?
Было бы очень интересно, если бы вы сделали видео о LoRa + Arduino. Как их вместе готовить и с чем употреблять. Спасибо!
Можно сделать устройство для приема сигналов от датчиков давления шин TPMS? Что для этого нужно
Как интересно годами работают всякие датчики от сяоми, акара и аякса? Можете разобрать их схемотехника?
Спасибо!
Немного не понял про "ESP не выйдет запитать напрямую от литиевого аккумулятора". Я запитываю и всё прекрасно работает
Отличное видео.
Не может ли радиомодуль сработать если вдруг у соседей дверной звонок на частоте 433mhz?
какая солнечная панелька справится с подзарядкой модуля?
Добра. А где можно герберы или исходники платки скачать, что бы самому попробовать?
Сам себе отвечу. Разобрался)))
Подскажите, хочу запустить на Аттини 85 скетч где реализован концевик двери.
Вроде все компилируется, но при нажатии кнопки ничего не происходит. Предполагаю, что не срабатывает прерывание
Разобрался сам.
для Аттини 85 надо
1. заменить в коде на следующую строчку
PCMSK |= 1
Аналоговый ввод можно просто опрашивать при первом запуске и отрубать питание после получения информации, разве нет?)
Если например у меня 1 база и например 3 датчика. И сделать так что если датчик хочет передать то он "спрашивает" свободна ли база 1 ли и если да передает если нет передает базе 2, потом базы между собой обмениваются что бы знать что там датчики нахрюкали. Это будет сложнее но интересно правильно ли я думаю или это полный бред?
Видос отличный. Спасибо но я непонял зачем высзаписали загрузчик в аттини ?
смотри урок по работе с программатором ruclips.net/video/qXS617cC6Bw/видео.html
А как все таки узнать уровень заряда собственной батареи? Если просто с питания подать на вход АЦП, всегда будем получать максимум. Как на attiny13 это реализовать?
На тини13 к сожалению нельзя измерить питание "изнутри", что доступно например на меге328. Тут как вариант - использовать делитель на резисторах и подключать его к VCC (лучше к пину и подавать на него VCC когда надо) а среднюю точку к пину с АЦП, а опорное устанавливать 1.1в. Ну а вообще тини13 больше не актуальна, изза своей цены.
На алике в продаже нет чистых ATTiny13, но много с суффиксом "А". Подскажите, такие МК подойдут для повторения вашего проекта?
они одинаковые
Лайк однозначно!!!
Каким образом можно заменить миллис, без использования micros, что бы сэкономить память?
На атиньке 13 фонари нужно сделать, для переделки китайских фонарей, с разными режимами!
А если питать от 18650 погрешности ацп не будет при разряде акума?
Будет ли библиотека таймер мс работать во сне?
Нет и нет
А если питанию помочь небольшой солнечной батареей? Как это делают на калькуляторах.
Очень интересно
Здорово !!!, А есть gerber для EsyEDA или готовые платы, я б купил.
В описании же
Как кнопки громкости + и - заменить на экодер?
Спасибо за Вашу работу и деление с многими! Я начинающий. С механикой, электроникой проблем нет. Видаки, камеры и телики лет 20 ремонтировал. Вопрос такой: можно отправлять данные о просядке таблеток? Думаю теплицы у себя сделаю с датчиками влажности, температуры и проветриванием. Или не заморачиваться и менять батарейки каждый сезон?
у него гдето был видос как мониторить напряжение, хз правда аттин там была или атмега.. и кстати датчики влажности на и2с обычно вроде, у 13тиньки его нету.
Это великолепно, но почему нельзя в описании бахнуть "на тине13"?
байт на комменты про нерабочий R2R клёвый, но понятное дело, что ключи должны быть пулл пуш. т.е. и принимать без падения напряжения и отдавать максимально требуемое напряжение
Вы так и не покаказали как исправить ошибку на плате. И если она не рабочая зачем собрали три штуки? Как эти платы заказать, по ссылке я попадаю на гравную страницу? Можно выводить данные на дисплей, а не экране компьютера?
если приемник подключить к ESP32, будет работать?
Это круто и очень полезно.
Идея для следующего выпуска. Вот если бы вы еще рассказали как несколько Ардуинок объединить в одну сеть. Как продолжение этой темы, одна Ардуинка работает с жменькой датчиков в одной комнате, а теперь соберём информацию из всех комнат дома.
при помощи хаба, которым выступает готовый софт типа openhab и подобные mqtt брокеры
Для отправки можно использовать структуры. Заполнил структуру, получил длину указатель на 1 байт и готов массив в нужном порядке
ну либа поддерживает передачу структур прямо, но когда данные всего с одного датчика это лишнее
@@nich1con652 зачем конденсатор между + питания и + питания но с ноги ардуины
а эсли рядом будет 4 комплекта таких приемника и передатчика ? вопрос с определением , кодировка , ложное срабатывание не от своего датчика ???
Так там изначально идентификатор идёт, ложного срабатывания не будет
Может, я что-то делал не так, но мой опыт работы с прерываниями на arduino nano негативен: огромное количество ложных срабатываний при включении света, при тряске, просто так. Подтяжки ставил, емкости ставил, не помогло. Делал проект счетчика импульсов счетчика воды, в котором внутри геркон. Когда стало понятно, что считает он что-то лишнее, добавил бузер на срабатывание прерывания, вот тут и стало понятно, пищало периодически вообще непонятно из-за чего. Кароче, в конечном итоге пришлось сделать через digitalRead каждые 10 секунд.
Но за видео спасибо, давно хочу как-то собирать данные с микропроектов
Странно конечно, если все притянуто вообще не замечал ложных сработок
Аналогичная проблема была, только с датчиком Холла. Решил проблему гальванической развязкой питания и датчика, через dc-dc приоброзователь.
Всем привет. А может кто-нибудь объяснить зачем между ногой питания Аттини13 и пином, от которого мы питаем радиомодуль стоит кондер?
Можно ли вместо атини использовать второй комплект ардуино с приемником?
Че
@@MrYbs-ie1jj у меня два ардуино, один хочу, чтобы был приемником, другой передатчиком и измерителем
Надо добавить субтитры для тех кто устал от ударения на окончании каждого слова.
Интересно, но как вариант чтобы экономно померить напряжение батарейки лучше выделить на это дополнительный порт. Посадить на него транзистор на который нагружен резистор. Хотим измерить напряжение, подаем сигнал на транзистор, он открывается и мы замеряем напряжение на резисторе. В закрытом состоянии транзистора ничего не потребляется.
А опроное напряжение для сравнения ты где возьмешь?
@@danilarusakov6479 Мое предложение ничем ни отличается от обычного измерения на резисторном делителе, просто плечо делителя проходит через транзистор которое открывается в момент проверки напряжения.
Библиотеку Gyver 433 не смог запустить на прием, radioHead заработала
Тут с проблемкой столкнулся...
Или я дурак или на дигиспарк гавер433 не заводится?
Как передать число с плавающей точкой типа float? никак не получается(
Вдруг кому пригодится, в библиотеке к датчику DS18B20 меняем return (DS_TEMP_TYPE) (data / 16 ); на return (DS_TEMP_TYPE) (data ); и уже при получении числа делим на 16 и соответственно число переводим в тип float
Можно было б сначала значение умножить на 100, а потом разделить на 100 с принимающей стороны, но памяти тиньки не хватает)
@@ignatshow6822 а зачем умножения? Просто перевести в массив байт напрямую