По сути это Arduino Nano V3.0 на ATmega328P с интегрированным модулем NRF24L01+ на 2.4ГГц для построения собственной беспроводной сети. Ценник самый низкий в али, может кому пригодится.
Под катом подробные характеристики
Характеристики
Микроконтроллер: ATmega328P + Nrf24L01 + 2.4G
Архитектура: AVR
Рабочее напряжение: 5 В
Флэш-память: 32 КБ, из которых 2 КБ используется загрузчиком
SRAM: 2 КБ
Тактовая частота: 16 МГц
Аналоговые контакты ввода/вывода: 8
EEPROM: 1 КБ
Постоянный ток на контакты ввода / вывода: 40 мА (контакты ввода / вывода)
Входное напряжение: 7-12 В
Цифровые контакты ввода/вывода: 22
Выход ШИМ: 6
Потребление: 19 мА
Размер платы: 48 х 18 мм
Вес: 7 г
Характеристики модуля NRF24L01
Частота передачи/приема: 2.4ГГц;
Расстояние передачи/приема: до 100м, в помещении — до 30 м;
Скорость передачи: 250kbps, 1Mbps и 2Mbps;
Модуляция: GFSK;
Чувствительность приемника: -82 dBm;
Максимальная выходная мощность: 0 dBm;
Коэффициент усиления антенны: 2dBm;
Количество каналов: 126;
Интерфейс: SPI;
Напряжение питания: 3.3В.
Даташит
Пример использования радиомодуля
Перейти в магазин
Добавить в избранное
Рейтинг купона или акции:
+26
Изучать мануалы придется полюбому если вы собрались этот модуль программировать и использовать а не ставить на полку. Ну и если припайка 6 проводков у ас занимает час, то поверьте, вам не нужен никакой модуль, ни с нрф ни без.
4pda.ru/forum/index.php?s=&showtopic=820121&view=findpost&p=97843222
в отличии от вас я уже не одну собрал и не в одной модификации… а не докапываюсь к чужим постам не по делу, если что…
есть что показать и что рассказать, а не комментировать то, что понятно по умолчанию ;)))))
так что обращайтесь если что — помогу…
А что вы там повторили… Это вообще смешно.
но вы правы… просто смешно ))))))))
хоть можно понять по разному… в меру своей буквальность ;)
если что — минусы не мои, но вы можете отомстить мне ;))
Удачи.
Открытие номер два. Не у всех лента расположена прямо возле компа. У некоторых она с другой стороны комнаты, а бывает и в другой комнате тоже. И не всем охота тянуть 5В провод с 3-4А нагрузкой через всю комнату вместе с сигнальным. Они подключают блок питания тут рядышком к соседней розетке, а вместо сигнального используют радиоканал.
Сколько открытий чудных!
Скажите, а не попадались вам дешёвые китайские наушники на «две волосины»?
При большом желании, можно доказать, что 2+2=5, но вообще язык и, в частности термины, люди изобрели для понимания. И так уж сложилось, что «провод» — это монокабель, т.е. 1-но или многожильный провод, по которому одновременно можно пропустить только 1 электрический сигнал. Кабель — это в свою очередь несколько индивидуально изолированных проводов в общей изоляции или же просто переплетеных.
И по нему же, кабель может иметь одну проводящую жилу — проводник. Вполне законно. Грубо говоря, провод в усиленной изоляции становится кабелем.
Не всё то провод, что имеет только одну жилу. Не всё то кабель, что содержит проводники с разным потенциалом.
Нет, вы не подумайте чего, я люблю ардуино… но как ни крути — за меньшие деньги ESP предлагает намного лучшие параметры и просто вагон памяти (по сравнению с ардуиной):
80 мГц 32бит проц
до 220мА нагрузка на пины
до 20В питание
4 мегабайта памяти
… итд.
Если нужно энергоэфективное решение — это не ардуино
Если нужно высокостабильное решение — это не ардуино
Если не нужно ничего из вышеперечисленного — это не данная связка
Если бы оно стоило при этом максимум 2$ — оно бы нашло свою нишу, за цену даже 3$ — уже не рентабельно, т.к. ESPшка лучше во всех сценариях, в которых относительно разумно использовать ардуину
Я ничего не писал про «ATmega328+nRF24L01», а писал про «ардуино» и про «данную связку», т.е. обозреваемый модуль. Который имеет в себе, как уже заметили ниже, конвертер USB-TTL, который не умеет спать за < 4 мкА ;)
Ну и конкретно к стабильности ардуино (как готовых решений) и к китайским ATmega328 у меня большие претензии — потому что оно глючное! Когда «изобретаешь» что-то для себя из разряда мусорки с автоматически поднимаемой крышкой — это не страшно, но я не могу доверить ардуине ничего в долгосрочной автономной перспективе — например полив домашних растений или кормление домашних животных на отрезке времени > 3 дней, т.к. неоднократно имел негативный опыт. И это не проблема программирования, ватчдог спасает от зависаний, но не спасет от фантомных значений в еепром, например.
Правда чип ЛАрдуино (брал из-за 12битного АЦП), но особой роли не играет, т.к. и то и это — поделие китайпрома, рулетка с неизвестными «бонусами»
Девайс — банальный амперметр с усилителем шунта на ОУ со смешением входа для избежания околонулевых нелинейностей.
Скетч — простой как гвоздь:
float mA = 0;
float kma = 0.37;
float x = 0; // пробовал и int — картину не меняет
float ofset_ma = 0; // пробовал и int — картину не меняет — это значение смещения ОУ, в программе либо задаётся константой, либо определяется при включении автоматически.
void setup()
analogReference(INTERNAL2V048);
pinMode(mA_PIN, INPUT);
void loop()
{
x = 0;
for(int i = 0; i < 500; i++) x += analogRead(mA_PIN);
mA = (x/500 — ofset_ma)*kma;
// скетч с выводом значения на дисплей и прочую мишуру — не писал, дабы не загромождать, суть это не меняет, проверял
}
А теперь самое интересное.
В первый цикл — программа считает значение АЦП (в зависимости от смещения ОУ) например 624.
При чем не важно где и сколько поставить Delay, не важно сколько раз усреднять значение, не важно сколько операций делать в первом цикле — первый цикл ВСЕГДА считает как надо.
НО начиная со второго цикла Loop (и все последующие) оно считает это значение на 20 единиц больше. При чем — потенциал реально увеличивается на ноге АЦП. Т.е. в самом контроллере что-то происходит, что оно даёт наводку на ногу АЦП.
Я делал паузы в первом цикле до 2 минут, я делал 4 подцикла с опросом с усреднением по 5000 раз и записывал результат в 4 разных переменных — в первом цикле значение всех X, во втором и последующих X+20...25
Оффсет считался в сетапе, т.е. перед Loop, а, б и ц — на первой фотке — первый цикл программы, на второй — соответственно второй цикл программы. Усреднение — 500 опросов
Выводы, являющиеся аналоговыми входами, могут также использоваться как цифровые выводы под именем A0, A1 ». Это типа наводки — куда копать и какой лопатой.
— в Сетап — точно такая же формула считает первичное значение — правильно
— в первом цикле — тоже считает правильно
— начиная со второго — появляется наводка
Т.е., если мы берем 5000 усреднений — то мы 20.000 раз дёргаем триггер ноги АЦП — и всё нормально, но стоит только пойти Loop на второй цикл — как сразу становится «все не так?» :D Это смешно…
(PS если возникнут вопросы по поводу «триггер у тебя в программе ничего не дергает» — это не так, у меня так же опрашивается еще 1 канал АЦП, и нет, его включение/отключение на результат не влияет)
Брак попался = И попадается он часто, рандомно, не предсказуемо, и не редко «проявляется» уже в готовом проекте во время эксплуатации, когда что-либо менять уже весьма проблематично.
К тому же я так и не услышал ответ на вопрос — почему это вдруг ваш волшебный триггер глючит ТОЛЬКО со второго круга цикла, но прекрасно работает в сетапе и на первом кругу? Есть объяснение?
Еще раз
получаемый результат — стабилен, он стабильно и одинаково глючит, ВСЕГДА, это означает только одно — внешние причины — не играют роли. Референс не может «гулять» всегда со второго круга и никогда с первого, Триггер не может глючить только со второго круга, как и референс — они либо глючат всегда, либо никогда, либо рандомно.
То, что в 12битном «не самом лучшем» контроллере последний разряд а то и два пляшут как хотят — это факт, для этого и берем выборку с 500 опросами и усреднением, и это работает. Но опять -же, оно не может работать «правильно» в первый цикл и «не правильно» во второй. Ну никак! это даже от программы не зависит (в данном случае — там тупо просто нечему «набегать»).
Можно конечно сказать, что это мол «прогрев железа» — но это тоже не так. Я ставил паузы перед/после сетапа, перед/после Loop(а), внутри цикла перед/после каждой пачки опроса входа для своей переменной, я даже ставил паузу внутри подцикла опроса, т.е. задержка между каждым фактическим опросом ноги ацп — это не дало ровным счетом ничего. Суммарно паузы были от 0.1с до 5с на цикл. Так же я вводил в цикл «лишнюю математику» просто для «прогрева на частоте» — это тоже ничего не изменило.
Т.е. какой бы вы ни придумали повод — оно обязано вести себя одинаково и в 1 и в последующие итерации цикла. И все эти погрешности и наводки в данном случае просто компенсируются приравниванием к нулю при инициализации или из еепром при первичной калибровки. Но тут — просто бред. Оно не-мо-жет! так работать — но работает. Это явный глюк. Который будет совершенно не заметен при проектировании чего угодно, что не требует точного АЦП. И тогда человек утверждает — что ардуины — стабильны и безпроблемны. К сожалению в моём проекте это не так, и я вынужден ставить в программу костыль с дополнительной единоразовой калибровкой нуля после второго цикла программы. И, повторюсь, это только 1 из неудачных проектов. Были проблемы с еепромом, когда значения в нём иногда произвольно изменялись. Про зависания даже писать не буду, благо на это хотя бы есть универсальный костыль — ватчдог.
При чем тут компилятор, если несколько разных скетчей записанных в 1 плату — одинаково глючат, а любой из них (пробовал 2) записанных в другую плату — работают как надо? И я об этом уже писал.
Думаю на этом нужно заканчивать, по крайней мере я не вижу смысла и дальше месить эту глину — никому это не интересно. Я привел этот пример только для того, чтобы показать — китайские ардуины, как и китайские МК — не подходят для построения требовательных устройств, о чем я и писал в старттопике этого треда.
Меж тем, десятки поделок на ATMega328 и 168 (китайские ProMini) работают у меня годами, и проблем с ними я не встречал.
И да, вы так и не показали свой код. Код в loop привели, а код из setup — спрятали :) Мы должны поверить вам на слово, что в том коде нет ошибки?)) однако, нет: «слова ничего не стоят, покажите код!»
Весь код. Иначе это разговор ни о чем.
На счет кода — я привел всё относящееся к тому, что вызывает баг, что зашивал кроме стандартных библиотек и это уже приводило к описанному результату
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
В остальном — я никому ничего не должен, а полный код изделия увидите когда будет полноценный обзор того, что я делаю. Когда это будет — не знаю, может через неделю, месяц, год… сейчас занят другими проектами.
у Вас — https://aliexpress.ru/item/item/32918576689.html — NODEMcu V3 Lua — CH340/CH2102 — 2.94ё+1.94ё
также
https://aliexpress.ru/item/item/32893723423.html — NODEMcu V3 Lua — CH340/CH2102 — 2.00ё+1.37ё=3.37ё
https://aliexpress.ru/item/item/4000302470390.html — 10шт — NODEMcu V3 Lua — CH340/CH2102 — 20.43ё+б/д
Но смысла в данной поделке я тоже не вижу, когда есть nrf52832 на порядки мощнее, современней и дешевле.
А вы читать умеете?
Кстати, есть готовые платы на алиэкспрессе на nrf52832?
И при этом предлагаете ради одного датчика температуры брать ESP и пытаться ужимать потребление до одной CR2032 (оно вообще хоть раз запустится?)
https://aliexpress.ru/item/item/4000467425667.html
Вроде то же самое, $4.18 с доставкой в Россию. Только нераспаяны пины.
Ну вы хотя бы сами перечитывайте что пишите…
LILYGO®TTGO T-OI ESP8266
А так получается пост для поста… Хотя кому-то даже понравился…
⚡️
А сделать можно всё что угодно, там даже Grove разъём есть.
Wiking, Если идей нет, выставьте на авито/юла/olx