LINUX.ORG.RU

Хочу сделать wi-fi градусник на esp8266. Что мне нужно для этого?

 


0

3

Опыта в микроконтроллерах и схемотехнике практически нет (был давно), занимаюсь «большим» программированием на C++. Хотел сделать wi-fi градусник на сабже, статью на хабре читал. Но там предлагают скачать готовую прошивку и зарегистрироваться на существующем веб-сервисе.

Хочу научить устройство возвращать текущую температуру по примитивному самодельному UDP-протоколу. Не хочется тратить батарейку на adruino, используя esp через AT-команды, а хочется работать прямо внутри esp. Почему бы и нет, там ведь есть микроконтроллер и 1-wire?

Что мне понадобится помимо самого модуля esp? Какой из модулей лучше взять? Какой-нибудь USB-UART конвертер? Какой? Как не убить девайс многочисленными тестовыми перепрошивками?

Ну и если можете, дайте ссылку на правильного продавца на aliespress.

Спасибо.

1. Даташит. Самое важное.

2. Программатор. Из твоего текста я понял, что программируется через UART. Тут единственное, о чём нужно беспокоиться - не перепутать уровни напряжения (не подавать 5в, если девайс рассчитан на 3.3в.

3. Компилятор

4. Паяльник, чтобы припаять температурный датчик, UART и питание.

Pythagoras ★★ ()
Последнее исправление: Pythagoras (всего исправлений: 1)

Какой из модулей лучше взять? Какой-нибудь USB-UART конвертер? Какой?

Мне типа таких нравятся. Я у этого продавца покупал, но он кажется лот перевыставил. Там напряжение логического уровня регулируется. Как бонус получишь FT232RL - крутой чип. Он умеет ножками по USB дёргать. А ножек этих распаяно много, так что можно хоть программатор запилить. Или датчик к компу подключить. Если всё это не нужно, есть там модули раза в 4-5 дешевле.

Как не убить девайс многочисленными тестовыми перепрошивками?

Работать с несколькими девайсами, чередуя. Или запоминать количество прошивок и не превышать какой-то лимит. На выходе получится несколько девайсов, а не один. Недостаток - бюджет больше нужен. Но зато, если у тебя несколько подопытных, то чувствуешь себя увереннее, когда то ли конкретный девайс, то ли софт глючит.

gogi ()
Ответ на: комментарий от gogi

Вот тему создал (см. ссыль ниже). Там советуют другой usb, говорят FT232RL не тянет esp8266.

У вас какой модуль esp? Спрошу у того чела какой у него, который не тянется.

А вы сами прошивку пишете или готовые юзаете?

http://esp8266.ru/forum/threads/kakoj-modul-luchshe-dlja-napisanija-svoej-pro...

kiverattes ★☆ ()
Последнее исправление: kiverattes (всего исправлений: 1)
Ответ на: комментарий от kiverattes

У меня esp8266 пока нет(но хочу поиграться), я FT232RL для других задач с другими девайсами использую. Но как-то странно там написано «не тянет».

gogi ()
Ответ на: комментарий от kiverattes

Тут на ЛОРе кто-то уже вкратце пояснял что будет с точкой доступа если на неё пяток таких устройств подвесить.

anonymous ()
Ответ на: комментарий от anonymous

Тут на ЛОРе кто-то уже вкратце пояснял что будет с точкой доступа если на неё пяток таких устройств подвесить.

А можно ссылку?

gogi ()
Ответ на: комментарий от gogi

А можно ссылку?

В результате вспомнил, что дело было не на этом лоре :) Вот с этого поста и до конца ветки обсуждения посмотри: http://habrahabr.ru/company/coolrf/blog/235881/#comment_7939255

Попутно, насчёт программирования этого устройства: «Умный» дом. На чём строить? (комментарий)

anonymous ()
Ответ на: комментарий от gogi

Кстати, нашёл ещё дешевле вариант: микроконтроллерная платка, совместно с приёмо-передатчиком обойдётся в 1,9$

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

anonymous ()
Ответ на: комментарий от gogi

микроконтроллерная платка,

лучше пол-бакса переплатить и мини-про купить

совместно с приёмо-передатчиком

Если верить этому. 6 пинов подключить приёмо-передатчик, 2 питания... один остался. Где библиотека для работы tiny с этим передатчиком?

arson ★★★★★ ()

кастани ncrmnt, он наверняка что-то посоветует

smilessss ★★★★★ ()
Ответ на: комментарий от anonymous

Ну передатчик около компа конечно нужен, но он один.
А вот устройств собирающих информацию может быть много. Тут важно минимизировать цену этих устройств.
Я вот чего думаю, микроконтроллер с радиоканалом, батарейкой, датчиком, засунутый в пластиковый корпус и работающий много месяцев или даже лет - это очень крутая вещь. Так как датчики могут быть какие угодно. И не только датчики, но и исполнительные устройства.

gogi ()
Ответ на: комментарий от arson

лучше пол-бакса переплатить и мини-про купить

Ну это зависит от назначения/датчика. Если справится более дешёвый контроллер, то зачем нужен дорогой?

Где библиотека для работы tiny с этим передатчиком?

Вся прелесть в том, чтобы написать её самому.

gogi ()
Ответ на: комментарий от gogi

Если справится более дешёвый контроллер, то зачем нужен дорогой?

С чем он справится одной ногой то (и то не факт)?!
Mini pro за лишних 29 центов в четыре раза больше ног и памяти, arduino-совместимо.

Вся прелесть

Ну напиши и опиши эту прелесть.

arson ★★★★★ ()
Ответ на: комментарий от arson

С чем он справится одной ногой то (и то не факт)?!

Дык 1-wire же. Или канал АЦП для оцифровки чего-нибудь.

Mini pro за лишних 29 центов в четыре раза больше ног и памяти, arduino-совместимо.

Но и габариты больше, наверное и жручесть.

Ну напиши и опиши эту прелесть.

Тебе не интересно потрахаться? Тогда зачем ты на ЛОР ходишь?

gogi ()
Ответ на: комментарий от gogi

Дык 1-wire же.

Ну ты и эконом, даже один датчик с лихвой перекроет всю твою экономию несколько раз.

Или канал АЦП

К какой ноге ты собираешся его подключать?

Тебе не интересно потрахаться?

Я смотрю свои мозги ты держишь в девственной чистоте, не то что чтением даташитов, даже визуальным осмотром, того что предлагаешь не заморачиваешься.

arson ★★★★★ ()
Ответ на: комментарий от arson

Ну ты и эконом, даже один датчик с лихвой перекроет всю твою экономию несколько раз.

Ты посмотри на это с другой стороны. На готовое устройство со стабилизацией напряжения и в корпусе нужно от 10-12$.
700 руб. - не до фига ли? Кажется те же китайские цифровые термометры с LCD можно дешевле купить.
На то чтобы померить температуру, ещё столько же на то, чтобы померить давление, влажность и т.д. Я во всяком случае думаю не об одном датчике, а о том, чтобы контролировать кучу параметров. И не факт, что к одному контроллеру нужно/придётся кучу датчиков цеплять.
Если заниматься этим серьёзно, то всё это вылезет в копеечку. Поэтому там, где возможно, нужно экономить. У меньшего контролера будет к тому же меньший более дешёвый корпус.
В некоторых случаях он подойдёт.

Я смотрю свои мозги ты держишь в девственной чистоте, не то что чтением даташитов, даже визуальным осмотром, того что предлагаешь не заморачиваешься.

Да узбагойся уже. Нужно тщательно взвешивать все за и против. А на это может не один день уйти.

gogi ()
Ответ на: комментарий от gogi

Слишком много букв. Ты предложил конкретное решение, оно не рабочее.

Нужно тщательно взвешивать все за и против. А на это может не один день уйти.

Ну так взвесь, почитай, посчитай. Потом предлагай. Зачем газифицировать то?

arson ★★★★★ ()
Ответ на: комментарий от arson

Слишком много букв. Ты предложил конкретное решение, оно не рабочее.

Чего не рабочее?

Attiny       nRF24L01
PB2          SCK
PB1          MISO
PB0          MOSI
PB3-PB5      CSN
-            CE (const Tx или любой pin из PB3-PB5)
PB3-PB5      IRQ      

Даже pin может остаться в результате.

gogi ()
Последнее исправление: gogi (всего исправлений: 2)
Ответ на: комментарий от gogi

На плате всего 6 пинов, включая usb (http://digistump.com/products/1#product_resources). Ты использовал все на подключение модуля.

Ты не сможешь его даже отладить.

arson ★★★★★ ()
Последнее исправление: arson (всего исправлений: 1)
Ответ на: комментарий от arson

Я подозреваю, что USB используется только во время программирования/отладки в системе. Зачем он нужен при автономной работе?

gogi ()
Ответ на: комментарий от arson

Ты не сможешь его даже отладить.

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

gogi ()
Ответ на: комментарий от arson

Ты не сможешь его даже отладить.

Даже можно ещё сделать так: делаем попытку передачи данных, выключаем с помощью CSN nRF24L01, включаем USB, выводим отладочную информацию.

gogi ()
Ответ на: комментарий от arson

На оставшийся. Связь будет симплексная. Но зачем измерителю что-то большее?

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

gogi ()

Если к этой фигне четырехбаксовую макетку на STM32 присобачить (или вообще залутить свою платку), то явно будет проще.

// что-то я не натыкался на истории успеха по перепрошивке этих модулей из-под линукса

Eddy_Em ☆☆☆☆☆ ()

И как ты по вайфаю собрался часы механические настраивать? Прибор для измерения температуры называется термометр.

kombrig ★★★ ()
Ответ на: комментарий от gogi

На оставшийся. Связь будет симплексная.

IRQ — выход прерывания. Когда все пучком, то нога находится прижатой к питанию (высокий уровень). Но как только что нибудь произошло, например их космоса/в космос поймали/отправили байт, или байт не отправился, то этот пин сразу падает на землю. Как тока он упал, надо все бросить и считать регистр STATUS. И в этом регистре уже конкретно видно что произошло. Это видно из трех битов-флагов — RX_DR, TX_DS, MAX_RT. Что они означают выше прокомментировано. Как только стало ясно какие биты равны значению 1, их тут же надо сбросить, записью 1. Иначе нога IRQ всегда будет лежать на земле. Причем сбросить надо только те биты в которых значение 1. Те в которых 0 писать ничего ненадо, ну 0 можно записать, но не 1. Иначе IRQ опять упадет на землю.

CE — вход. Если модуль в режиме приема, то СЕ прижимаем к питанию. Если режим передачи, то СЕ лежит на земле. И когда надо передать байт, СЕ поднимаем к питанию не менее чем на 10 мксек, потом снова прижимаем к земле. Байт улетел в пространство.

CSN — вход. Всегда находится прижатым к питанию. Если надо что то записать/считать в радио модуль, то перед началом любых телодвижений прижимаем к земле. Записали/считали — прижимаем снова к питанию.

CSK, MOSI, MISO — пины SPI интерфейса. Подключаются к одноименным выводам МК. MISO определяем на вход, MOSI, CSK на выход. Все это делаем ручками, так как при включения интерфейса SPI эти выводы сами по себе не переопределяются по назначению.

Какой сигнал лишний?

arson ★★★★★ ()
Ответ на: комментарий от arson

Ну если CE не получается заюзать, то остаётся MISO:


Most slave devices have tri-state outputs so their MISO signal becomes high impedance (logically disconnected) when the device is not selected. Devices without tri-state outputs cannot share SPI bus segments with other devices; only one such slave could talk to the master.



Я проверил по даташиту nRF24L01 - это именно такой девайс.

В крайнем случае SPI можно ещё реализовать дёрганьем ног, если будут какие-то проблемы с их параллельным использованием. Или поискать ещё SPI датчик и его slave select сделать инверсным к CSN аппаратным инвертором(ещё какая-нибудь крошечная платка, всё равно всё же в корпусе одном будет).

Я думаю задача решаемая на практике, но не в обсуждении.

gogi ()
Последнее исправление: gogi (всего исправлений: 2)
Ответ на: комментарий от anonymous

У нас на точках доступа висит по 100500 макбуков и всё ништяк.

kiverattes ★☆ ()
Ответ на: комментарий от gogi

Кстати, нашёл ещё дешевле вариант: микроконтроллерная платка, совместно с приёмо-передатчиком обойдётся в 1,9$

А чё за физический протокол связи? А не будет мешать всем остальным на 2.4 гхз?

kiverattes ★☆ ()
Ответ на: комментарий от kombrig

Ты считаешь, что невозможно настроить по wi-fi механические часы? Я собрался настраивать их так: запилить мегаточный механический манипулятор с точностью позиционирования 0.000001 мм в 100500 степенях свободы и расшарить интерфейс управления этого манипулятора через IP-сеть. А IP просовывается через Wi-Fi элементарно!

kiverattes ★☆ ()
Ответ на: комментарий от gogi

то остаётся MISO

MISO - не аналоговый вход, 1-wire - дорого (в данном контексте)

Я думаю задача решаемая на практике

Когда думаешь это теория, а не практика.

arson ★★★★★ ()

Почитал — тоже стало интересно…

Deathstalker ★★★★★ ()
Ответ на: комментарий от kiverattes

А чё за физический протокол связи?

ЕМНИП, вроде что-то проприетарное.

А не будет мешать всем остальным на 2.4 гхз?

Частотное разделение каналов же обычно есть. Эти 2.4 гхз - не совсем 2.4 гхз, что у других.

gogi ()
Последнее исправление: gogi (всего исправлений: 1)
Ответ на: комментарий от arson

MISO - не аналоговый вход, 1-wire - дорого (в данном контексте)

Ну с терморезистором всяко проще будет и дешевле.

gogi ()
Ответ на: комментарий от arson

С терморезистором на аналоговом компараторе?

Там же ADC куча есть. Если передатчик отключается, есть из чего выбрать.

gogi ()

Я себе для питания заказал:
- Батареек cr2032 на 3v
- Держателей для них
- Понижающих DC-DC преобразователей

Думаю соединить 2 батарейки последовательно, а потом 6 В снизить с высоким КПД до 3,3 В. Батарейки высосет под ноль. Плюс, их всё же 2, а не 1 - должно энергии хватить на долго.
Правда придётся платку для батареек отлутить. Хотя изначально не хотелось этого делать, т.к. при таких ценах платы делать оправдано только при серийном производстве или особом желании.
Стоимость узла питания будет по комплектующим 0,2$ x 2 + 0,06$ x 2 + 0,7$ = 1,22$ плюс ещё немного на ЛУТ.

Корпус обойдётся в 3,42$. Дороговато для такой поделки, но ничего дешевле не нашёл и зато он качественный и разбирается без отвёртки (у меня в таких корпусах ibeacon'ы есть).

gogi ()
Ответ на: комментарий от arson

Кем, от чего, в каком состоянии при этом его вх/вых?!

Поставить ключ по питанию для передатчика. Питание на передатчик идёт, только когда он slave select'ом выбран. Для ключа платка нужна, но дык и стабилизатор питания для девайсов тоже нужен. Я выше предлагал стабилизатор из 2-х батареек, на этой же платке питания можно этот ключ разместить.

gogi ()
Ответ на: комментарий от gogi

стабилизатор питания для девайсов тоже нужен

Даже твоя платка идет со стабилизатором.

Поставить ключ по питанию для передатчика. ... Для ключа платка нужна

Выходишь из бюджета :)

arson ★★★★★ ()
Ответ на: комментарий от arson

Даже твоя платка идет со стабилизатором.

Да я разные варианты смотрю. И с esp8266 и c digispark. Может даже выпаять стабилизатор или припаяться к его выходу? Но не хочется колхозить сильно, ибо тогда плату с нуля делать проще со всем необходимым.

Выходишь из бюджета :)

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

gogi ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.