Передача измеренной температуры по радиоканалу. Связка NRF24L01+ и DS18B20
Небольшой проект с использованием радиомодулей NRF24L01. Задача проста - измерить температуру и отправить данные на приемник. Измерением температуры занимается цифровой датчик DS18B20. Измеренная температура, полученная на другой стороне приемником, выводится на ЖК дисплей. Хороший пример для демонстрации возможностей радиомодулей.
Передатчиком служит тестовая платка с atmega8, которая была собрана ранее. К ней дополнительно подключил датчик 18b20 к выводу PortC.0 с резистором подтяжки на 4,7 килоом
Схема передатчика:
Запитываться передатчик должен напряжением от 3 до 3,6 вольт (нижний предел 3 вольта для датчика температуры, а верхний - для NRF24L01). В моем случае все запитывалось подсаженным литий-ионным аккумулятором, в котором осталось 3,5 Вольт.
Приемник собран на макетке, схема подключения радиомодуля практически идентична, за тем исключением, что питание на него идет отдельно через понижающий стабилизатор на 3,3 вольта. Одно хорошо, что входы/выходы модуля толерантны к 5-и вольтовым уровням, поэтому схему согласования с контроллером делать не обязательно.
Схема приемника:
Вот как это выглядит в сборе у меня. Приемник расположен слева, передатчик-справа.
Что касается дальнобойности, то приемник "слышит" сигнал через 2 железобетонные стены (максимальное удаление по квартире). А вот третья стена его уже глушит (уносил передатчик на лестничную площадку), но тем не менее считаю что результат вполне неплохим, свою цену они отрабатывают на все 100%
И напоследок видео работы
Так как измеряюще/передающая часть работает автономно, запитываясь от аккумулятора, хорошо бы задействовать один из способов энергосбережения. Благо сам радиомодуль тоже умеет засыпать по команде. Но это пока только наметки на будущее.
Здравствуйте! Отличная статья. Делаю весы с передачей по радиоканалу, возник вопрос: нужно что бы четыре устройства работали рядом и не мешали друг другу, что нужно изменить в коде? Спасибо!
Собрал обе схемы. На передатчике светодиоды ведут себя как на видео. На приемнике светодиод только в начале моргает 2 раза, потом не горит. Видимо проблема в модулях NRF, но как понять в каком из них?
exersizze пришли модули. Не подскажите как проверить их работоспособность. И еще вопрос. есть ли вариант приемника с контролем температуры.Типа термостата.
В общем на данный момент ситуация мне понятна. Сейчас проблема с МК. Один почему то перестал работать когда передатчик был включен и последующая реанимация ничего не дала и залочил еще пару. Толи такие МК.Ну в общем закажу ( у нас магазина радиотоваров нет). Как придут, объявлюсь. У меня к вам вопрос,будут ли работать в этом проекте эти модули, NRF24L01 + PA + LNA беспроводные модули (с антенной). Мне нужно контролировать температуру в гараже.(овощи)
А на приемнике фьюзы тоже проверили? Если нет, тогда сделайте это. При нормальной скорости стартовая надпись на экране появляется на 2 секунды. Wi-Fi не должен влиять на эти модули, по крайней мере у меня никаких глюков не наблюдается.
Да, все таки это были фьюзы. Передатчик работает. Но теперь приемник при выключенном передатчике показывает всякую ерунду. есть видео. но самое главное отключаю модуль - все пропадает и остается исходная надпись. Выходит модуль ловит всякую ерунду, свой WIFI отключал не пропадают глюки, но это не факт, т.к смарт видит несколько соседских.Но один положительный факт есть(я думаю)значит модуль рабочий или как? жду совета. скорее всего неправильно прошивал.
Спасибо что откликнулись. менял кварц, ставил другой МК, проверил монтаж. Скажите, при отключенном модуле, работа передатчика не меняется? Я правильно понимаю, что Д2( светодиод)мигая указывает на передачу данных, а Д1 - что схема в рабочем состоянии, горит постоянно. У меня же цикл: при подаче питания загорается Д2, через 15-20сек. загорается Д1 и гаснет Д2. Затем периодически Д2 включается и выключается. Напряжения на выходах на радиомодуль. MISO,MOSI,SCN - 5v при нажатии reset- 2.4v. SCK,CE- 1.4mv reset-2,4v. IRQ- не меняется-2.4v. И еще, я не вижу нормальной осцилограммы на кварце, хотя если бы не запускался генератор МК бы не работал не мигали бы светодиоды. жду совета
pchelawas, надпись пропадет если приемник получит показания от передатчика. Похоже на передатчике модуль nrf24l01 не работает, фьюзы вроде верные. Хотя на пятой ноге светодиод должен гореть не больше секунды
Здравствуйте.Нужна ваша помочь.Собрал этот проект. Приемник после включения питания два раза мигает светодиод,гаснет и появляется надпись на индикаторе.Вопрос-строка avrproject.ru должна гаснутьсразуили только после того как появится информация с датчика? И второй вопрос-после вкл.пит. датчика два раза мигают оба светодиода,затем светодиод с 5 ноги горит с минуту, гаснет и загорается с 6 ноги и не гаснет. С 5 ноги циклы- 1 мин. горит, 20 сек. не горит. Фьюзы - low-FF, high-D9 программирую SinaProg. генератор выставляю -EXT спасибо за помощь
Да, нормально. Тогда проверяйте все поэтапно: микроконтроллер, дисплей, потом подключайте приемник. Чудес не бывает, если все живо, то дело в контакте.
Да я пересобирал раз 10.... все проверил.... что это может быть?((((( питание разные пробовал... когда радиомодуль отключаю показывает 255 гр это нормально?
Парни подскажите че делать 2ой день голову ломаю.... вобщем собрал я на макете все заработало температуру показывало... ночь простояла и в какйто момент сгулючело призапуске показывает 0 гр и очень быстро мерцает дисплей и светоддиод на приемнике... на передатчике вроде все в порядке индикаторы работают как надо... гляньте короткое видео если не трудно... http://videonv.ru/1111.mp4 спасибо...
По динамической индикации есть вот эта статья (может вы наверно уже ее видели) http://avrproject.ru/publ....2-1-0-9 Суть индикации будет заключаться в том чтобы принимать данные не когда данные придут от передатчика, а только после переключения, чтобы до следующего переключения индикатора успеть закончить чтение. Иначе из-за не согласования индикация будет сбиваться и появится моргание. Конкретней было можно было бы сказать если увидел вашу схему. Но советую все-таки сделать индикацию с буфером на 74hc595. http://avrproject.ru/publ/2-1-0-57 Тогда не придется бороться с мерцанием сегментов.
Да, можно. Приёмник будет перебирать адреса передатчиков и считывать информацию с каждого по порядку.
Передатчик №1 - адрес 'Подготовка к TX D_bytes(1) = &H30 'TX адрес D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H01
Передатчик №2 - адрес 'Подготовка к TX D_bytes(1) = &H30 'TX адрес D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H02
Передатчик №3 - адрес 'Подготовка к TX D_bytes(1) = &H30 'TX адрес D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H03 и так далее...
Приёмник будет перенастраиваться на каждый адрес передатчика и считывать информацию. Приёмник - ввод адреса 'Подготовка к Rx D_bytes(1) = &H2A 'RX адрес для pipe0 D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H01
считал с первого передатчика.
Приёмник - ввод адреса 'Подготовка к Rx D_bytes(1) = &H2A 'RX адрес для pipe0 D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H02
Скажи пожалуйста, а можно сделать так чтобы приемник показывал с нескольких передатчиков температуру? Если есть у тебя такое решение,дай схему или ссылку. За рание спасибо.
привет Всем! Хочу настроить модули на максимальную дистанцию, для этого выставил скорость - 250КБс/сек. А как сделать так чтобы передавать только один байт? Не могу разобраться в регистрах