Обзор на интересную вариацию на плату разработчика с Esp8266.
Именно тут можно посмотреть близкие фото, характеристики, тесты и конечно постройку
телеграмм бота!
Заказ был отправлен 17.10.2016г
Получен 31.10.2016г
Время в пути — 14 дней.
Доставка очень обрадовала, скорость просто удивительная!
Любителям треков ничего вскусного не будет, трек очень подробный и замазывать придется очень много =D
Внутри стандартного китайского пакета меня ждал очень плотный сверток.
В отличии прошлой посылки с бангуда, эта была упакована на много лучше, хотя имела меньшую
цену, да и ломать тут нечего.
Внутри свертка в антистатическом пакете лежала сама плата.
Кроме платы лежали штырьки типа мама и папа(2вида, с длинными контактами, и короткими контактами), при желании можно припаять любой тип и насаживать плату на шилды. По дефолту штырьки не распаяны.
Главой модуля является модуль Esp8266 ESP-12.
12 версия есп имеет обновленную разводку, улучшенную антенну и систему питания и светодиод который перенесли на GPIO2, но
к сожалению на нем нет разъема под антенну, что слегка сужает возможный круг применения платы.
Для прошивки и питания устройства на плате присутствует порт MicroUSB.
Разъем имеет длинные лапки вставленные и впаянные в отверстия на плате, что прилично добавляет надежности.
Сзади платы находится USB COM конвертер, реализованный на микросхеме CH340g.
Из спорных моментов можно приметить микро кварц, как показывает практика с arduino, они имеют низкую надежность, но при работе и экспериментах с данной платой, проблем выявлено не ыбло.
Подсистема питания имеет защиту от переплюсовки в виде диода по линии 55, преобразованием 5в в 3,3в занимается линейный стабилизатор RT9013, из интересного стоит отметить очень низкое потребление (0,7мкА) и достаточно большой запас мощности — до 500мА. Благодаря такому сетапу появляется возможность использовать есп8266 с питанием от батареи, не боясь больших потерь на преобразовании напряжения.
Так же снизу можно увидеть кнопку RESET, позволяющую сбросить и перезагрузить модуль, но при этом отсутствует кнопка FLASH, конечно с наличием авто сброса нужда в ней отпадает, но если понадобится прошить через внешний адаптер, придется подпаивать провода и замыкать GPIO вручную.
Еще из интересностей платы, есть делитель напряжения на ADC в виде двух резисторов.
Так же для платы есть шилды.
Из интересных стоит отметить OLED дисплей, контроллер заряда и преобразователь для аккумулятора, и датчик dht22.
Распиновка модуля представлена на картинке ниже, шелкография сделана под LUA, при работе с Arduino ide придется обращаться к этому изображению.
Ну и перейдем к самой интересной части.
Первым делом я решил подружится с API телеграма, но случайно наткнулся на
ЭТУ библиотеку, в которой уже большинство функций реализовано!
Программировать есп будем в Arduino ide, как настроить ее под ESP8266 можно посмотреть
ТУТ
После чего скачиваем Библиотеку
Можно тут ибо на гитхабе поч-то нет кнопки скачать.
и устанавливаем ее в Arduino IDE
Выбираем такие настройки (ком порт у каждого будет свой)
Дальше можно пойти в папку сэмплов и попробовать прошить предложенные примеры, но они не работают, в данном обзоре мы напишем свой скетч, скачать сразу можно
тут
Ну что же теперь?
Теперь логинимся в телеграм на телефоне, а лучше в
веб версии
После чего потребуется отписать батюшке =D. В поиске вбиваем @botfather и открываем с ним чат.
Напишем батюшке:
/newbot
Батюшка создал бота и запросил для него имя, я написал MyskuESPBot
Батюшка принял и попросил юзернейм для бота, я написал MSEsp_bot (приставка _bot обязательна)
Батюшка одобрил мой выбор и дал токены для работы.
Вводим имя, юзернейм и токен в сэмпл скаченный ранее
Не забываем ввести данные от WIFI сети
Прошиваем скетч и открываем монитор порта, если все сделано правильно, мы получим такую картину в сериал
При заходе в чат, автоматом отправляется /start, и бот ответит нам так
Так же можно помигать диодом через команды /ledon /ledoff
(диод висит на 13 порте, для d1 mini это пин D7)
Добавим пару плюшек нашему роботу!
Шаблон обработки команды
if (bot.message[i][5] == «Тут команда на которую будет реагировать бот») {
Тут выполняем все что душе угодно
Можно заставить бота что то отписать этой функцией
Для получения STRING из числа, можно использовать такую конструкцию String(тут любые числа)
bot.sendMessage(bot.message[i][4], текст в виде STRING, "");
}
Данный шаблон надо прописывать в функции Bot_ExecMessages()
Выдадим боту кубик с числами, и по команде /dice выдает случайно число от 1 до 6
if (bot.message[i][5] == «dice») { //Функция Dice без слеша
bot.sendMessage(bot.message[i][4], String(random(1, 6)), ""); //в ответ бот шлет число полученное через random в пределах от 1 до 6
}
А теперь поговорим о отправке сообщений по событию.
Бот штука разносторонняя, он может иметь сразу несколько чатов, поэтому банальной
BOTSENDMESSAGE(MSG), тут нет.
Дабы отправить сообщение в определенный чат, нам нужно получить его ID.
Грузим скетч, открываем чат с ботом, отправляем сообщение боту и видим в мониторе порта строку
{«update_id»:523513434,
«message»:{«message_id»:41,«from»:{«id»:30012xxxx,«first_name»:«Tirarex»},«chat»:{«id»:30012xxxx,«first_name»:«Tirarex»,«type»:«private»},«date»:1482609396,«text»:«some text»}}]}
Где есть «chat»:{«id»:30012xxxx,
Собсно это и есть ID нашего чата
Теперь, когда мы знаем ID нашего с ботом чата, мы можем написать нам сообщение через
bot.sendMessage(«ID чата», «сообщение», "");
Добавим датчиков!
Цепляем PIR датчик движения на A0.
Для удобства дебага я добавил в обработчик команду adc, на нее бот ответит уровнем adc
if (bot.message[i][5] == «adc») {
bot.sendMessage(bot.message[i][4], String(analogRead(A0)), "");
}
В сетапе инициализируем аналоговый порт.
pinMode(A0, INPUT);
Далее в цикле добавим такой код
между
bot.getUpdates(bot.message[0][1]); // launch API GetUpdates up to xxx message
if (analogRead(A0) >=50) Если A0 >50 то напишем в чат — ALARM
{
bot.sendMessage(ChatID, «ALARM», "");
}
и
Bot_ExecMessages(); // reply to message with Echo
При нахождении движения, наш бот отпишется в чат
от так
А еще можно подключить кнопку, и отправлять алерты по ее нажатию
Ну вот, в принципе все! Кроме обзора я постарался раскрыть тему телеграмм бота на Esp8266, с помощью которого вы можете получать оповещения, данные и управлять устройствами.
Продублирую ссылку на скетч
В моем случае желтый девбоард на есп сменится на этого малыша, добавится датчик ds18b20 для отслеживания температуры батареи в доме ( и отсылания алертов при отключении котла), а так же получит реле для перезагрузки котла через интернет.
Плюсы
- Компактные размеры (меньше NodeMCU)
- Возможность подключения готовых модулей
- Автоматический сброс при перепрошивке
- 4M памяти
- Линейный стабилизатор с низким потреблением
Минусы
- Нет кнопки прошивки
- Нет разъема под антенну
Вывод, очень интересная разновидность платы с esp8266, есть готовые модули которые можно подключить без макетных проводов и получить интересный функционал, начиная от компактного экрана и заканчивая датчиком температуры и влажности.
К покупке рекомендую.
Будучи на работе я не могу знать, работает ли котел, либо дом уже остывает.
Тут же при понижении температуры батареи ниже 20 градусов, бот сообщит мне в чат о внештатной ситуации ( с уведомлением на телефон и вибрацией браслета через секунду), а дальше я попробую перезапустить котел командой и если все хорошо то дальше работать, либо если перезапуск не помог, я могу приехать домой и начать решать проблему.
Из других вариантов — народный мониторинг, но там ужасный интерфейс, ограничение по кол-ву смс в день, большой интервал между отправкой данных ( постоянные уведомления если данные не пришли), приложение тоже не очень.
Так что мое решение имеет право на жизнь.
Каждому свое, но мне такие решения не приемлимы.
Старая версия есп привязанная к народному мониторингу работает уже около года и черт возьми 0 зависаний!
За инет забывали платить, свет вырубали, но есп работает.
Данный бот работает на API телеграма, а там обычный запрос на сервер с токеном юзернеймом и сообщением которое я хочу послать (1в1 как у народного мониторинга но там без юзернейма).
Ломаться тут тупо нечему, а с учетом опыта прошлого датчика, в этом я уверен.
В коде это решается одним условием.
А при большом желании можно еще и пароль накинуть.
отправил /reboot
Бот запросил пароль
Отправил ему пароль
бот спросил 2+4=?
Отправил ему 6
он перезагрузил котел
PROFIT
Я лучше спать.
Сам телеграм очень хорошо защищен, ваш наезд на сею технологию мне не понятен.
Какие проекты по мониторингу, системам безопасности и серверам вы реализовывали?
Это я спрашиваю для того что бы понять вашу квалификацию и что именно вы делали. Спасибо.
По поводу Вашего поста ниже — я много чему доверяю и много чему не доверяю. Про когда и где попить пивка можно и в соцсетях да мэссенджерах обсудить. А управлять отоплением дома через них не стоит. Сообщать — да, возможно, управлять — нет.
Вы вправе делать как вам удобнее, проще и как считаете правильным. Лично я так не сделаю никогда.
Модуль вместе с ботом и есть система мониторинга.
В данном случае бот телеграмма это система получения информации( её можно заменить на jabber, mail, icq, skype, viber, или другую ересь, к примеру GSM). Так же этот канал возможно использовать для обратной связи.
А если вы не доверяете тому что будет передаваться через телеграмм, то в вашем случае я бы вам не советовал бы вообще пользоваться интернетом, потому что данные передаются через сторонние сервера ;) ( это сарказм)
Всем добра :)
Но смысл сообщения был о том что нужно наблюдать за любыми процесами и по возможности иметь рычаг управления, что и предлагает автор.
Мониторинг — это тупо наблюдаем, что и с чем происходит.
Как только появляется задача управления — это уже не мониторинг, а Система Управления.
Систему управления можно реализовывать разными способами — через телеграм-бота или же через создание закрытого сегмента сети с поднятием своего собственного сервера. В одном случае — за безопасность отвечают сторонние дяди, которые даже и не догадываются за что отвечают вопрос взлома — дело времени, в другом случае — вы сами в ответе за свою безопасность. Для одних — потеря управления над объектом это критически важно, для — других — нет. Выбирать вам.
Тут давеча, нож кухонный обозревали, дак им никак не получится лося разделать на охоте.
Но это дорого, долго и не зимой точно =D
1. Знакомые. Он автокостоправ и по основной работе механик, хз как правильно, в общем вертолеты починяет. Лет ему… 50 будет. В общем тухнет у них котел. Малейшее моновение ветра и тухнет. Вызывают они катловых дел мастера и ему (хозяин мастеру) констатирует, мол тухнет, котел уг, надо новый. Ну тот не дурак, копейка светит и впаривает им новый за 30 тыр с установкой (хозява то уже сами решили и морально готовы, чего париться, тут чистая копейка без забот). А он опять тухнет, а мастер занят сильно. В общем как-то заехал я к ним, свечку зажег перед котлом, через 3 минуты потухла, ок, смотрим внимательно и видим как свечка перед тем как потухнуть меняет свое направление от «к котлу» (тяга) на «от котла». Ага. Значит тяга обратная и походу большая, вот и сдувает пламя. Нанял он кран, купил трубы нужного диаметра и удлинил ее на 1 метр. Бабка отшептала.
2. У родителей тухнет котле. Вызвали нормального мастера, то сам все прошестрил, позаглядывал, ага говорит, да тяги до хера. переделами вентиляционные отверстия и все заколосилось.
А суть истории такова — у меня котел чугунный, как купили дом зимой платили по 7 тысяч. Пахан как тот мужик его учил проверил тягу, сделал пластину дополнительную и платить стали 5 тысяч. Установили насос и краны отсекающие (в кухне холодно, в доме жарко). Платить стали по 4 тысячи.
Кент проделал все тоже самое после меня, но добавил нормальные батареи, а не как у меня регистры, так он платит еще на тысячу меньше. А еще есть знакомый, тот экономил лишь на том что котел с таймерами и просто днем он на запальнике стоял считай, а горел только ночью. И все. А котел новый он купил, копеек стоит адовых, 3 раза вентилятор менял. экономии у него с новым котлом меньше чем мороки. Если делать прям прям совсем с головой, то только под давлением. Там реально экономия, но затраты сразу велики и поиск утечки… кент 2 недели ищет утечку, где-то травит, а где хз.
Тяга нормальная, даже в дикий ветрище котел не задувает, кроме своего притока воздуха через выхлопную трубу (а там есть спец полость) в котельной есть пара отверстий вентиляции и почти всегда открыты двери в дом.
А Теперь к проблемам, иногда замерзает датчик тока воздуха!
Хотя его уже перевесили ближе к камере сгорания, иногда проблема присутствует.
Скачет давление. Дефолтное давление для нашего контура 1,7 и по идее при работе должно компенсироваться баком сзади котла, но в работе давление скачет до 2,2 а после остывание до 0,9. Подкачивание и стравливание того бака не помогает.
Воздух, откуда он берется в трубах, не знает никто, но он появляется и приходится стравливать его очень часто.
Это основные проблемы, есть еще странные и ситуативные которые почти всегда лечится перезагрузкой.
А так, профилактика перед каждым сезоном проводится ( чистка, проверка соединений).
Альтернативный вариант — отсылать сообщения с какой-нибудь «старой нокии» имхо более независим от капризов постороннего дяди, но более затратен в реализации.
Кстати, не в курсе, какие входы притянуты 10кОм резисторами (чтобы лишние детали не паять)? Вроде D3, но его лучше не трогать.
Схема платы
Проблема первой была в питании дешевым бп который сжег флешку, вторая померла безвозвратно от 5в логики =(
А штатная антенна у него — керамическая, и памяти много.
www.wemos.cc/product/d1-mini-pro.html
Устанвил среду разработки, настроил как указывалось по ссылке , скачал предложенный скетч, делаю проверку — ругается на отсутствие заголовочных файлов .h, полез к Гуглу спрашивать, что это такое: почему их вдруг нет (в статье не указывалось, видимо у автора прошло всё гладко). В общем нашел — пришлось скопировать из одной папки необходимые файлы в другую (ссылка ). Последняя ошибка на #include <ESP8266TelegramBOT.h>, файла которого нет, поэтому заменил на файл из библиотеки #include <TelegramBot.h>. Вроде всё скомпилировалось, зашил. Создал бота. Захожу в чат с ботом — никакой реакции. Пишу /start — никакой реакции. В serial как я понимаю всё нормально
В общем ничего не работает ). пробую кнопку из примера. Замыкаю проволочкой 5В и A0, видно, что хоть что-то делается, по крайней мере пытается
В общем куда копать? )
При каждом отслеживании движения увеличивать счетчик.
Можно и на ардуине, но потребуется экран докупить, дабы видеть счетчик. Еспешке можно простую веб страницу сделать и смотреть счетчик там.
У меня вообще целый сайт на есп висит tirarex.myddns.me/
Будет количество пересечений. Делите на 2 — вот и количество посетителей. ( Честно подсмотрел в соседнем супермаркете)
Будет столько ложных срабатываний и несработок на людей которые идут парами, что насчитает он погоду на Марсе.
Кроме того, надо делить поток на входящих и выходящих. В некоторых видеокамерах есть такая опция, но даже там сложности, хотя камера распознает стороны куда идет человек.
Как дешевое решение начального уровня вполне сойдет
Потому как реакцию на датчик движения можно считать измерением с ооочень большой натяжкой.
Делить на входящих/выходящих — это делить на 2. А если хочется более точно, то надо ставить 2 датчика на некотором отдалении. Если заходят, то условно срабатывают датчики А-Б, а если выходят, то Б-А.
Правильно, только не датчики движения, которые могут срабатывать как им хочется.
В автоматических воротах сделано именно так.
Кроме того в фотоприемнике есть отсечка постоянной засветки и АРУ.
Ну и как вариант, можно купить готовое, но если фирменное, то цена не обрадует.
шлеш какой код и принимаеш его, если прием прервался, то датчик перекрыт
— совместим с ардуино.
— чувствительность регулируется. 3-80 см.
— выход с открытым коллектором(можно дублировать).
— герметичный корпус.
один минус- $3 дороговато для датчика.
с перламутровыми пуговицамичтобы ардуино совместимое что-то и умело притворяться midi-устройством при подключении по USB?MIDI контроллер на Arduino leonardo
www.youtube.com/watch?v=tz7tK7O42Tw
Изначально мне было интересно, существует ли плата, на которой бы разместились одновременно ардуино и esp, чтобы не городить огород из шилдов.
https://ru.aliexpress.com/store/product/UNO-WiFi-R3-ATmega328P-ESP8266-8Mb-memory-USB-TTL-CH340G-Compatible-for-Arduino-Uno-NodeMCU-WeMos/1950989_32739934767.html
https://aliexpress.com/item/item/32412519453/32412519453.html
(from AliExpress Android)
В поддержании Wifi соединения 20мА
Во сне мне удалось понизить потребление до уровня >1ма ( не могу точно измерить ибо нет хорошего мультиметра)
Но хорошим людям www.youtube.com/watch?v=6SdyImetbp8 удавалось снизить потребление до 20-60 мкА
Обсуждение сна есп на хабре geektimes.ru/post/255550/
Таблица от эсприфа
До этого был уверен что esp жрёт слишком много, а с таким потреблением — вполне реально использовать esp8266 для всяких датчиков и прочих приблуд :)
Автору спасибо за обзор, позновательно! Как говорится, еще одна вариация на тему автоматизации.
Да и Блинк разработан для работы за НАТами изначально. Прямой доступ к серверу только нужен, но у внешних серверов он и так прямой.
Управляемым устройством может быть почти любое компьютероподобное устройство чуть сложнее калькулятора с подключением к сети (ардуинки, малинки, апельсинки, еспешки, обычные десктопы). Управление со смартфона. Работает все через внешний сервер. При желании можно запустить и локальный сервер на любом устройстве с поддержкой Явы, только нарулите доступ к серверу самостоятельно.
Ну и да, интерфейс будет гораздо симпатичнее и информативнее, нежели общение с ботом.
Давай зайдем с верной стороны что бы дальше не было разговра
Иначе не вижу ни какого интеререса заводить еще какой-то приложение. У меня уже стоит телеграм и я успешно пользуюсь их ботами.
Я не глумлюсь. Это действительно один из вариантов построения сети устройств.
Если же нужен доступ к серверу извне, то прокиньте порты до сервера и пользуйтесь. Или поднимите ВПН до этой сети.
Если же вы разместили сервер за натом и не можете / не умеете до него достучаться, то КССЗБ.
Кстати, аптайм серверов Блинка с момента запуска 100.0%. Подавляющее большинство пользователей вообще не парятся своим сервером, ибо по аналогии с телеграмом «у них подняты супернадежные серваки и я успешно пользуюсь ими».
У меня сложилось подозрение, что вы не имеете представления об обсуждаемом предмете. «Пастенака не читал, но осуждаю!»
Моему прову все равно на ваши аббревиатуры ) Просто нат и сосай ) vpn юзал, дорого. Есть у меня 2 интернет канала с белыми ip там где я размещал свой впн сервер, но там стабильности нет. Делал на микротике переключалку чтобы с сервера на севрер, но потом все меня задрало и я отказался. Ах, еще был get/post сервер. т.е. я скажем поднимал определенный «сайт» на бесплатном домене и время от времени клиент за натом постом слал инфу и гетом забирал какие я ему отпарвил команды.
Я бы не был так уверен. 100% там кластера и посему визуально 100% аптайм.
Ну если честно, то да, я первый раз, вру второй раз за этот проект услышал и не крутил его ибо оно мне не надо, но наши расхождения скорее всего сказываются с моей не досказанностьью, и вашей не додуманностью ) Без оскорблений.
А месенджеры всегда хорошо работают
Примерна на 95 процентах, когда в среде ползёт шкала прошивки, нажимаем кнопку reset и всё прошивается.
Проверено и не раз.
Ну а так не дорогой модуль, добавил на дальнейшее.
Я к таким беру модуль зарядки лития от USB литий 18650, хватает на работу в течении 2-х суток.
Вывожу данные на
narodmon.ru
и
thingspeak.com
А если надо мониторить температуру, то есть девайс заточеный под это со звонком по заданому номеру по достижении заданого предела. Никаких смс только GPRS и отправка данных на тот же народмонитор при желании. Потребление заметно ниже чем у огорода с вафлёй, что актуально для дачи. radiokot.ru/circuit/digital/home/214/ Это для тех кто хочет сам делать ссылка, детали в форуме. Для тех кто желает потратить больше и просто купить, всё есть готовое как и на народмониторе, так и на сайте творца этой штуки.
Поскольку нет зависимости от карманых гаджетов постоянно желающих кушать, пользуюсь обычным телефоном и информация в виде звонка при проблемах мне удобнее всего.
А еще, по вашей ссылке голая есп а тут обвязка +юсб конвертер с авто ресетом
Не все на дачах держат роутер включеный. Если серьёзно делать, то умный дом с бесперебойным питанием и свой сайт для контроля. А вязаться с кривыми мессенджерами, это даже не детский сад.
Еще я не могу понять, почему ТС так хочет отдать управление своим котлом дяде. За телеграмом стоят грамотные кодеры? Не смешите меня — недавно был прецендент очередной с их «грамотностью», а всего таких прецендентов у него — вагон и маленькая тележка. Или Вы Пашу так любите и так верите? Исходников нет — значит Ваши данные лежат черти-где и с ними может произойти черти-что. Причем даже не по замыслу и умыслу телеграмовцев.
Самое главное — в вашем случае сделать все защищенно еще проще, чем телеграмм-бота писать. Полно либ с готовыми веб-серваками. Больше и не надо. Дома врубили его в сетку своего роутера, на роутере подняли openvpn (ddwrt, tomato, zyxel — из коробки идет) — и все.
Откуда угодно и с любой системы (смарт, комп, андрюша, иос, линь, вонь) — подняли туннель и оказались в своей уютной сетке — и просто открыли в браузере ip (или имя, если охота, чтобы красиво было — dns на любом роутере можно сейчас перебиндить). Еще и интерфейсик можно удобный, красивый и тачевый сделать.
А вместо этого у Вас — текстовый квест и котел у дяди :)
-Шеф у нас дыра в безопасности!
-Ну хоть что-то у нас в безопасности!
Веселят меня люди, которые так свободно и абсолютно глупо отдают все в чужие руки, веря что там «спецы».
А на деле там такие-же говнокодеры, пишущие код за еду. Просто пафоса больше :D
P.S. Ну и если котел падает в ошибки — лучше бы Вы им занялись — ибо в нормальном состоянии ничего такого с ним быть не должно.
благодаря текстовому интерфейсу, «дядя» понятия не будет иметь, что он хакнул)
(отдаю себе отчёт, что мы обсуждаем пять процентов комплексной проблемы, — просто пусть разговор свернёт и в эту сторону:)
Веб-сервак проще и быстрее, в том числе и для текстовых команд — ибо есть готовые веб-консоли.
Благодаря базе данных, куда уходит все, что Вы пишите боту и что он пишет Вам, дядя не только будет прекрасно разбираться в командах, он еще и баги поправить сможет ;)
По сути получил готовую инфраструктуру с защитой от ddos итд, ну и как уже писал, я могу запрашивать в чат перед перезагрузкой.
В данный момент у меня TL-WR740N, впн на нем не поднять.
Кроме того что мне придется менять роутер либо докупать мини сервер для поднятия впн, еще и потребуется возится на девайсе с настройками, тут же все из коробки, так при добавлении пары ступеней защиты, проблема безопасности отпадает…
На девайсе не надо будет возится — ставите OpenVPN и даете ему просто сертификат (ну или / и) пароль.
А дальше все просто — ткунли — впн запустился и все — пока он активен Вы у себя в подсетке.
Ну и DDOS Вам тоже никакой не страшен.
Ну и OpenVPN отлично ставится на WR740N под ddwrt — спросите гугль.
Какие решения данной проблемы?
Использовал: ESP-01
Так и оставили пустыми?
Ещё штуки три библиотеки пробовал — никак.
Кто скачал скетч, киньте мне пожалуйста, а то по ссылке не доступен.
Спасибо.
ваш код не скачать. использую этот:
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.