Telegram бот на плате разработчика Wemos D1 MINI


Обзор на интересную вариацию на плату разработчика с 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, есть готовые модули которые можно подключить без макетных проводов и получить интересный функционал, начиная от компактного экрана и заканчивая датчиком температуры и влажности.

К покупке рекомендую.

Бонус


Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.
Планирую купить +111 Добавить в избранное +105 +188
+
avatar
  • melvin
  • 25 декабря 2016, 01:00
+1
Зависить фиг знает от чьего чата… Ну незнаю… Поиграться да, но зачем?
+
avatar
  • tirarex
  • 25 декабря 2016, 01:21
+14
Ну смотри, у меня есть частный дом который отапливается котлом, котел зараза очень чуткая, и любой чих приводит его к ошибке и отключению.
Будучи на работе я не могу знать, работает ли котел, либо дом уже остывает.

Тут же при понижении температуры батареи ниже 20 градусов, бот сообщит мне в чат о внештатной ситуации ( с уведомлением на телефон и вибрацией браслета через секунду), а дальше я попробую перезапустить котел командой и если все хорошо то дальше работать, либо если перезапуск не помог, я могу приехать домой и начать решать проблему.

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

Так что мое решение имеет право на жизнь.
+
avatar
  • melvin
  • 25 декабря 2016, 01:40
0
Конечно имеет, но смотри — есть у тебя дом, в нем колье за 500м$, в нем сигналка привязанная к боту. У бота баг и дали ему команду 100500сигналкувыключи500100. Ты приехал в дом, колье нет, бот глаза потупил типа я ничего не знаю.
Каждому свое, но мне такие решения не приемлимы.
+
avatar
  • tirarex
  • 25 декабря 2016, 01:45
+12
Ты так говоришь будто бот зависнет как только я глаза закрою.
Старая версия есп привязанная к народному мониторингу работает уже около года и черт возьми 0 зависаний!
За инет забывали платить, свет вырубали, но есп работает.

Данный бот работает на API телеграма, а там обычный запрос на сервер с токеном юзернеймом и сообщением которое я хочу послать (1в1 как у народного мониторинга но там без юзернейма).
Ломаться тут тупо нечему, а с учетом опыта прошлого датчика, в этом я уверен.
+
avatar
  • melvin
  • 25 декабря 2016, 01:49
+1
Я где-то что-то сказал про зависания? Вроде ни слова? Или где? Я говорил про безопасность. А отсылание команды по срабатыванию нужно делать на свой и только на свой сервер. но если хочется, конечно, то и со всем миром можно поделиться.
+
avatar
  • tirarex
  • 25 декабря 2016, 01:55
+5
Ну так что мешает получать команды ТОЛЬКО от моего аккаунта телеграма?
В коде это решается одним условием.

А при большом желании можно еще и пароль накинуть.
отправил /reboot
Бот запросил пароль
Отправил ему пароль
бот спросил 2+4=?
Отправил ему 6
он перезагрузил котел

PROFIT
+
avatar
  • melvin
  • 25 декабря 2016, 01:59
-7
+
avatar
  • tirarex
  • 25 декабря 2016, 02:10
+2
А что не так? Либа спокойно открывается блокнотом, там Ip сервера телеграма (который можно поменять на 1 из 4х серверов)

Сам телеграм очень хорошо защищен, ваш наезд на сею технологию мне не понятен.
+
avatar
  • melvin
  • 25 декабря 2016, 02:31
+1
Вы просто не сталкивались со взломами телеграма и других подобных систем и смотрите глазами обычного пользователя которому надо следить за котлом. Другие люди, в силу своей пряморукости, вешают более серьезные задачи на подобные сервисы и имеют потом очень не мало проблемм. Я вас переубеждать не буду, но обработчик на своем сервере(пусть и на самом дешевом хостинге) в разы надежнее,
+
avatar
  • tirarex
  • 25 декабря 2016, 02:44
+11
Взломать можно любую систему, но вот загвоздка, за телеграмом стоят профессиональные кодеры, а за домашним сервером будет стоят рукожоп не знающий всех аспектов данной темы, и шанс взлома такой домашней системы явно выше.
+
avatar
  • melvin
  • 25 декабря 2016, 02:55
+2
Как скажете, вам лучше знать.
+
avatar
0
Просто ответьте на такой вопрос:
Какие проекты по мониторингу, системам безопасности и серверам вы реализовывали?
Это я спрашиваю для того что бы понять вашу квалификацию и что именно вы делали. Спасибо.
+
avatar
  • melvin
  • 26 декабря 2016, 01:34
+5
Безопасность, аудит, мониторинг ИП сетей, промышленный мониторинг. Зачем вам моя квалификация? Я пишу о том, что управление через стороннюю сеть/сервис в принципе жизненно важными узлами дома это, мягко говоря, не то решение которое стоит воплощать в жизнь. Ниже писали об этом-же. Сходите у того человека еще спросите его квалификацию.
По поводу Вашего поста ниже — я много чему доверяю и много чему не доверяю. Про когда и где попить пивка можно и в соцсетях да мэссенджерах обсудить. А управлять отоплением дома через них не стоит. Сообщать — да, возможно, управлять — нет.
Вы вправе делать как вам удобнее, проще и как считаете правильным. Лично я так не сделаю никогда.
+
avatar
  • sir0ta
  • 25 декабря 2016, 06:09
+1
Ну ты реально херню несешь. Если тебя послушать, то лучше сразу удавиться и не жить. А по делу я согласен, проблемы с котлом надо решать с котлом, а не ботом телеграма.
+
avatar
+6
Вы что-то слышали о таком словосочетании «система мониторинга» и для чего они применяются?
Модуль вместе с ботом и есть система мониторинга.
В данном случае бот телеграмма это система получения информации( её можно заменить на jabber, mail, icq, skype, viber, или другую ересь, к примеру GSM). Так же этот канал возможно использовать для обратной связи.

А если вы не доверяете тому что будет передаваться через телеграмм, то в вашем случае я бы вам не советовал бы вообще пользоваться интернетом, потому что данные передаются через сторонние сервера ;) ( это сарказм)

Всем добра :)
+
avatar
  • sir0ta
  • 25 декабря 2016, 14:17
0
Я ему зеленое, он сладкое.
+
avatar
+1
Сори, второй абзац предназначался в сообщение выше :(

Но смысл сообщения был о том что нужно наблюдать за любыми процесами и по возможности иметь рычаг управления, что и предлагает автор.
+
avatar
  • newcss
  • 10 октября 2017, 13:10
0
У вас понятия смешались… Разделите для себя понятия — мониторинга и управления.
Мониторинг — это тупо наблюдаем, что и с чем происходит.
Как только появляется задача управления — это уже не мониторинг, а Система Управления.
Систему управления можно реализовывать разными способами — через телеграм-бота или же через создание закрытого сегмента сети с поднятием своего собственного сервера. В одном случае — за безопасность отвечают сторонние дяди, которые даже и не догадываются за что отвечают вопрос взлома — дело времени, в другом случае — вы сами в ответе за свою безопасность. Для одних — потеря управления над объектом это критически важно, для — других — нет. Выбирать вам.
+
avatar
  • newcss
  • 10 октября 2017, 13:03
0
Свой сервер нужно содержать и так же заниматься его защитой. Взломают сервер и вуаля — все доступы получены… Телеграм-бот бесплатно, а за свой сервер еще и платить нужно).
+
avatar
  • Parsek
  • 25 декабря 2016, 09:28
+5
Конечно, такие решения, не подходят для охраны ваших колье за миллионы баксов. Вообще возникает вопрос адекватности вашей оценки применимости технических решений.
Тут давеча, нож кухонный обозревали, дак им никак не получится лося разделать на охоте.
+
avatar
  • sir0ta
  • 25 декабря 2016, 06:05
+7
отапливается котлом, котел зараза очень чуткая, и любой чих приводит его к ошибке и отключению
Так вы херней занимаетесь! Займитесь котлом лучше!
+
avatar
  • tirarex
  • 25 декабря 2016, 11:58
+4
сам котел уже морально и физически устарел, в следствии чего проявляет целый комплекс проблем, которые вместе решить достаточно трудно, на много проще будет заменить его полностью.
Но это дорого, долго и не зимой точно =D
+
avatar
  • Oregu
  • 25 декабря 2016, 14:31
+2
Такая же ситуация с котлом свершилась у соседей по работе. Котел мощный, на офис, но старый, и менять его очень дорого выходит. Если вовремя котел не перезапустить — замерзнет вся система. Хозяин котла живет в 300 м от офиса, но не бегать же ночью через 3 часа котел контролировать. Кстати он и бегал, пока я ему не собрал такую же приблуду, как у автора обзора, только она через GSM смс шлет. Теперь хозяин старого котла спит спокойно.
+
avatar
  • sir0ta
  • 25 декабря 2016, 15:21
+3
Расскажу 2 истории. первая Ваш случай.
1. Знакомые. Он автокостоправ и по основной работе механик, хз как правильно, в общем вертолеты починяет. Лет ему… 50 будет. В общем тухнет у них котел. Малейшее моновение ветра и тухнет. Вызывают они катловых дел мастера и ему (хозяин мастеру) констатирует, мол тухнет, котел уг, надо новый. Ну тот не дурак, копейка светит и впаривает им новый за 30 тыр с установкой (хозява то уже сами решили и морально готовы, чего париться, тут чистая копейка без забот). А он опять тухнет, а мастер занят сильно. В общем как-то заехал я к ним, свечку зажег перед котлом, через 3 минуты потухла, ок, смотрим внимательно и видим как свечка перед тем как потухнуть меняет свое направление от «к котлу» (тяга) на «от котла». Ага. Значит тяга обратная и походу большая, вот и сдувает пламя. Нанял он кран, купил трубы нужного диаметра и удлинил ее на 1 метр. Бабка отшептала.
2. У родителей тухнет котле. Вызвали нормального мастера, то сам все прошестрил, позаглядывал, ага говорит, да тяги до хера. переделами вентиляционные отверстия и все заколосилось.
А суть истории такова — у меня котел чугунный, как купили дом зимой платили по 7 тысяч. Пахан как тот мужик его учил проверил тягу, сделал пластину дополнительную и платить стали 5 тысяч. Установили насос и краны отсекающие (в кухне холодно, в доме жарко). Платить стали по 4 тысячи.
Кент проделал все тоже самое после меня, но добавил нормальные батареи, а не как у меня регистры, так он платит еще на тысячу меньше. А еще есть знакомый, тот экономил лишь на том что котел с таймерами и просто днем он на запальнике стоял считай, а горел только ночью. И все. А котел новый он купил, копеек стоит адовых, 3 раза вентилятор менял. экономии у него с новым котлом меньше чем мороки. Если делать прям прям совсем с головой, то только под давлением. Там реально экономия, но затраты сразу велики и поиск утечки… кент 2 недели ищет утечку, где-то травит, а где хз.
+
avatar
  • tirarex
  • 25 декабря 2016, 15:40
0
Котел chaffoteaux maury MX2 CF
Тяга нормальная, даже в дикий ветрище котел не задувает, кроме своего притока воздуха через выхлопную трубу (а там есть спец полость) в котельной есть пара отверстий вентиляции и почти всегда открыты двери в дом.

А Теперь к проблемам, иногда замерзает датчик тока воздуха!
Хотя его уже перевесили ближе к камере сгорания, иногда проблема присутствует.

Скачет давление. Дефолтное давление для нашего контура 1,7 и по идее при работе должно компенсироваться баком сзади котла, но в работе давление скачет до 2,2 а после остывание до 0,9. Подкачивание и стравливание того бака не помогает.

Воздух, откуда он берется в трубах, не знает никто, но он появляется и приходится стравливать его очень часто.

Это основные проблемы, есть еще странные и ситуативные которые почти всегда лечится перезагрузкой.

А так, профилактика перед каждым сезоном проводится ( чистка, проверка соединений).
+
avatar
  • sir0ta
  • 25 декабря 2016, 16:03
+1
Как я рад своему старому чугунному котлу ) Зажег считай 2 месяца назад и не захожу туда )
+
avatar
  • rn3qbh
  • 26 февраля 2017, 18:08
0
Все эти проблемы решает одно устройство, придуманное лет сто назад, при том оно ещё и автоматическое))) Тягопрерыватель называется.
+
avatar
  • AddWin
  • 25 декабря 2016, 10:29
+3
В принципе, тут задача не управление, а оповещение, а если и не оповестит — то и ничего страшного. Поэтому такой наколенный вариант с передачей данных через «доброго дядю» вполне работает. Пока дядя жив, здоров (незабанен по какой-либо причине), и у него не щёлкнуло в голове всё переиграть.
Альтернативный вариант — отсылать сообщения с какой-нибудь «старой нокии» имхо более независим от капризов постороннего дяди, но более затратен в реализации.
+
avatar
+1
" а дальше я попробую перезапустить котел командой и если все хорошо то дальше работать, либо если перезапуск не помог, я могу приехать домой и начать решать проблему." А если перезапустить не получится? Как ты узнаешь, что котел запустился? Сколько времени пройдет, пока батарея вновь нагреется? Какой гистерезис у датчика температуры? Нет, не дело это — отслеживать работу котла по датчику температуры батареи.
+
avatar
  • Flesh
  • 27 декабря 2016, 00:47
+2
Очень странный и неразумный пример. Можно подумать, что если бота убрать, то колье не пропадет. На самом же деле все эти кустарные сигналки на есп и ардуинах взломать невозможно практически. Ибо нестандарт. Ибо они кустарные и каждый городит как ему вздумается.
+
avatar
  • Jury_78
  • 25 декабря 2016, 01:02
+2
выявлено неыбло
Опечатка.
+
avatar
  • tirarex
  • 25 декабря 2016, 01:16
0
Очепятка поправлена, как и пара грамматических ошибок =D
+
avatar
+3
Ошибка-то где? Ну, выявили очередное «неыбло», бывает. Мало их разве?
+
avatar
  • Alax
  • 25 декабря 2016, 01:04
+2
Ко мне два таких модуля идут, буду мастерить удаленное снятие показаний водосчетчиков.
Кстати, не в курсе, какие входы притянуты 10кОм резисторами (чтобы лишние детали не паять)? Вроде D3, но его лучше не трогать.
+
avatar
  • viperet
  • 25 декабря 2016, 01:08
+1
Интересно, а как именно будете узнавать показания?
+
avatar
  • Alax
  • 25 декабря 2016, 01:10
0
Счетчики с импульсными выходами, импульс (замыкание/размыкание геркона) соответствует 10-ти литрам.
+
avatar
  • tirarex
  • 25 декабря 2016, 01:14
+1
В этом модуле ничего особо паять не надо, подтянуты gpio 0 2 15
Схема платы
+
avatar
  • Kirillm
  • 25 декабря 2016, 01:04
0
Ето не Вемос и старая плата, подделка, покупайте только у производителя их
+
avatar
  • vanenzo
  • 25 декабря 2016, 01:08
0
espressif делает готовые платки? поделитесь, а то у официального производителя видел только wroom за невнятные деньги и то на тао. Если Вы про ai-thinker, так и они нифига не офф. производитель
+
avatar
  • tirarex
  • 25 декабря 2016, 01:12
0
Ессесно не вемос, но схематика та же, отличие только одно — нет логотипа вемос на нижней части платы.
+
avatar
  • Kirillm
  • 25 декабря 2016, 01:17
0
Не знаю кто им делает, но такие имменно брал там где ТС сначало на их странице било там написано и фото лого верное, обе со временем ушли в вечний мусор в терминале и горением синего диода, пришлость вскрить и перепаивать флеш но на одной так и не заработало. Хоть вернули деньги за не Вемос.
+
avatar
  • tirarex
  • 25 декабря 2016, 01:28
0
У меня так же 2 есп померли с мусором в терминал, и одну из них я тоже спас.
Проблема первой была в питании дешевым бп который сжег флешку, вторая померла безвозвратно от 5в логики =(
+
avatar
0
У меня 2 платы esp-12E умирали с мусором и горящим светодиодом и потом успешно воскрешались. Тут главное не паниковать. Я тоже поначалу думал это конец, но переборкой скоростей прошивки и разными прошивальщиками излечивались. Я туда заливал 4 Мбайта файл с 00 или FF штатным способом через UART, вот только в прошивку перевести модуль получилось после манипуляций с последовательностью старта прошивальщика и зажатием кнопок не с первого раза. Но у меня так умирали модули и неоднократно воскрешались, и они сейчас прекрасно работают! Питание подпаять, а не на макетке перемычками и прошить.
+
avatar
  • AFCrio
  • 27 декабря 2016, 03:39
0
У меня «умерло» 3 шт esp-01. На одной помогло только перепаивание флеша (заодно расширил до 4МБ), на двух — перезапись сначала пустышкой, потом нормальной прошивкой. Именно на esp-01 сильно удобней делать с помощью XTW100 и клипсы. Настолько, что с esp12 я сначала сдувал металлическую крышку и лишь перед тем, как оставить на постоянку, возвращал ее на место.
+
avatar
  • pumv
  • 25 декабря 2016, 01:05
+1
Разъем под антенну есть у старшенького — D1 mini pro.
А штатная антенна у него — керамическая, и памяти много.
www.wemos.cc/product/d1-mini-pro.html
+
avatar
  • viperet
  • 25 декабря 2016, 01:06
+2
После чего скачиваем Библиотеку Можно тут ибо на гитхабе поч-то нет кнопки скачать.
Кнопка «Скачать» на гитхабе
+
avatar
  • tirarex
  • 25 декабря 2016, 01:11
0
только либу под есп скачать нельзя, а замедлять запуск иде лишними либами не очень хочется.
+
avatar
  • sir0ta
  • 25 декабря 2016, 06:10
+1
Качать надо весь гит.
+
avatar
  • tirarex
  • 25 декабря 2016, 13:11
0
В гите данного юзера пара бесполезных либ и куча мусора, не вижу смысла ставить все это добро, поэтому дал свою ссылку.
+
avatar
  • Eudg
  • 18 января 2017, 22:07
0
Подскажите, что я делаю не так? )
Устанвил среду разработки, настроил как указывалось по ссылке , скачал предложенный скетч, делаю проверку — ругается на отсутствие заголовочных файлов .h, полез к Гуглу спрашивать, что это такое: почему их вдруг нет (в статье не указывалось, видимо у автора прошло всё гладко). В общем нашел — пришлось скопировать из одной папки необходимые файлы в другую (ссылка ). Последняя ошибка на #include <ESP8266TelegramBOT.h>, файла которого нет, поэтому заменил на файл из библиотеки #include <TelegramBot.h>. Вроде всё скомпилировалось, зашил. Создал бота. Захожу в чат с ботом — никакой реакции. Пишу /start — никакой реакции. В serial как я понимаю всё нормально
GET Update Messages 
.... connected to server
Sent Update request up to message: 203330273
no new messages

В общем ничего не работает ). пробую кнопку из примера. Замыкаю проволочкой 5В и A0, видно, что хоть что-то делается, по крайней мере пытается
SEND Message 
.... connected to server
.... connected to server
.... connected to server
.... connected to server
.... connected to server
.... connected to server
.... connected to server
.... connected to server
.... connected to server
.... connected to server
Message not delivered
GET Update Messages 
.... connected to server
Sent Update request up to message: 203330273
no new messages


В общем куда копать? )
+
avatar
  • tirarex
  • 21 января 2017, 01:31
0
Я хз что за библиотека у вас, та что используется у меня, залита на дропбокс и ссылка на скачивание дана, ванговать почему он не отправляет мне трудно…
+
avatar
  • Eudg
  • 21 января 2017, 12:47
+2
Всё скачивал от сюда. Но если выполнять пошагово как здесь написано — ругается. Заработало из другой статьи на этом сайте: статья
+
avatar
  • undead
  • 25 декабря 2016, 01:25
0
А мне уже два таких модуля заказанных у разных продавцов в разное время так и не пришли, что за напасть…
+
avatar
  • tirarex
  • 25 декабря 2016, 01:26
0
Ну бангуд выслал и пришло все за 14 дней, цены выше но и доставка с упаковкой вне конкуренции.
+
avatar
  • undead
  • 25 декабря 2016, 02:04
0
Вру. Год назад не пришли две NodeMcu от продавца Shenzhen CAIZHIXING — деньги вернули, и одна D1 MINI заказанная 26 сентября (кстати, щас посмотрел, тоже от этого продавца), открыл спор… жду… Очень интересно… За все время пришла только одна подобная плата — NodeMcu Lolin от продавца MT Technology. Ребят, кто-нибудь покупал у Shenzhen CAIZHIXING?
+
avatar
  • 1nSane
  • 25 декабря 2016, 01:32
0
Так… датчик движения? А можно ли замутить на основе данного девайса счетчик посетителей? Т.е. повесить на дверь магазина, и он бы при проходе считал количество срабатываний? Что еще придется докупить? (в Ардуино и прочем я 0)
+
avatar
  • tirarex
  • 25 декабря 2016, 01:34
0
есп и датчик движения, более ничего и не надо.
При каждом отслеживании движения увеличивать счетчик.

Можно и на ардуине, но потребуется экран докупить, дабы видеть счетчик. Еспешке можно простую веб страницу сделать и смотреть счетчик там.
У меня вообще целый сайт на есп висит tirarex.myddns.me/
+
avatar
  • 1nSane
  • 25 декабря 2016, 01:39
0
да меня очень даже устроит Телеграм ;) там ботов для заявок с сайта уже давно использую вместо почты. И какой датчик движения использовать?
+
avatar
0
я бы предложил лазерную указку на двери. (в идеале инфракрасную что бы не было заметно)
Будет количество пересечений. Делите на 2 — вот и количество посетителей. ( Честно подсмотрел в соседнем супермаркете)
+
avatar
  • 1nSane
  • 25 декабря 2016, 14:33
0
В теории я тоже много чего могу придумать, а вот с воплощением в жизнь сложно, я РНР программист, а не инженер-конструктор ;) и связать все это воедино, как бы просто это не выглядело, мне сложно.
+
avatar
  • kirich
  • 25 декабря 2016, 01:41
+3
есп и датчик движения, более ничего и не надо.
При каждом отслеживании движения увеличивать счетчик.
Если бы все было так просто…

Будет столько ложных срабатываний и несработок на людей которые идут парами, что насчитает он погоду на Марсе.

Кроме того, надо делить поток на входящих и выходящих. В некоторых видеокамерах есть такая опция, но даже там сложности, хотя камера распознает стороны куда идет человек.
+
avatar
  • tirarex
  • 25 декабря 2016, 01:47
+1
Ну для точного измерения конечно надо пару датчиков, а лучше камеру + сервер + opencv для слежения за таргетами, а самую высокую точность будет иметь специально нанятый человек =D

Как дешевое решение начального уровня вполне сойдет
+
avatar
  • kirich
  • 25 декабря 2016, 02:00
+1
Ну для точного измерения
Не совсем точно, для хоть какого нибудь измерения.
Потому как реакцию на датчик движения можно считать измерением с ооочень большой натяжкой.
+
avatar
  • 1nSane
  • 25 декабря 2016, 01:47
0
зависит от того, насколько он чувствительный, двое в стандартную пластиковую дверь одновременно не пройдут. Также вариант с бегающими детьми, с ходящим к витрине продавцом — это я все понимаю, но даже так лучше, чем никак.
Делить на входящих/выходящих — это делить на 2. А если хочется более точно, то надо ставить 2 датчика на некотором отдалении. Если заходят, то условно срабатывают датчики А-Б, а если выходят, то Б-А.
+
avatar
  • kirich
  • 25 декабря 2016, 02:01
0
Делить на входящих/выходящих — это делить на 2
Не факт.

А если хочется более точно, то надо ставить 2 датчика на некотором отдалении. Если заходят, то условно срабатывают датчики А-Б, а если выходят, то Б-А.
Правильно, только не датчики движения, которые могут срабатывать как им хочется.
+
avatar
  • melvin
  • 25 декабря 2016, 01:46
+1
и будет считать сколько раз перед ним руками махали :)))
+
avatar
  • 1nSane
  • 25 декабря 2016, 01:48
0
планировал прикрепить снизу, чтобы считал взмахи ногами ;) Только тут нужды в увеличении числа нет, наоборот, продавцы будут рады, если счетчик будет показывать цифру ниже 0, чтобы оправдать свое ничегонеделание.
+
avatar
  • melvin
  • 25 декабря 2016, 01:50
+1
эммм простите, но… а если шотландец в кильте он его за полтора посчитает?
+
avatar
  • 1nSane
  • 25 декабря 2016, 01:53
0
такие цифры могут быть только в землекопах ;)
+
avatar
  • Alber
  • 25 декабря 2016, 01:49
0
cloudflare.com спасет ESP от лишнего напряжения :)
+
avatar
  • tirarex
  • 25 декабря 2016, 02:14
0
на мой сайт заходят полтора человека, не думаю что такая защита нужна.
+
avatar
0
Кстати, стоит анплогичная задача. Нужен фотоэлемент на ворота шириной 5 метров. Если кто в проеме, что бы ворота останавливались. Что посоветуете?
+
avatar
  • tirarex
  • 25 декабря 2016, 02:28
0
+
avatar
0
Штука интересная. Но у неё диапазон срабатывания от 6 м. Мне же до 6 надо. Плюс в комментариях пишут, что не всегда стабильно работает
+
avatar
  • wadamir
  • 25 декабря 2016, 02:33
+1
ИК приемник и передатчик на уровне 0,5 метра
+
avatar
0
Для уличной установки пойдет? Мне кажется солнце будет забивать на 5м сигнал слабенького светодиода.
+
avatar
  • kirich
  • 25 декабря 2016, 13:11
+1
Зависит от тока через светодиод.
В автоматических воротах сделано именно так.

Кроме того в фотоприемнике есть отсечка постоянной засветки и АРУ.

Ну и как вариант, можно купить готовое, но если фирменное, то цена не обрадует.
+
avatar
  • kalobyte
  • 25 декабря 2016, 05:44
+1
хватит ик светодиодов + тсоп какой + скетч ардуины со словами ir control
шлеш какой код и принимаеш его, если прием прервался, то датчик перекрыт
+
avatar
0
Мысль. Какой светодиод посоветуете, что бы на 5 метров в солнечный день мог добивать?
+
avatar
  • tirarex
  • 25 декабря 2016, 13:05
0
Лазер какой не?
+
avatar
  • kirich
  • 25 декабря 2016, 13:12
+1
А лазер там зачем? Обычный ИК светодиод.
+
avatar
0
Посоветуйте кит какой-нибудь, с уже встроенной фильтрацией постоянной составляющей. Комплект излучатель-приемник с тупо логическим выходом: есть препятствие, нет препятствия. Можно, конечно самому собрать, но схемотехника не мой конек, я больше по программированию
+
avatar
0
Заказал такую штуку. Заказал, посмотрим что приедет
+
avatar
  • Jon2016
  • 26 декабря 2016, 10:28
0
Вот классический ИК датчик:
— совместим с ардуино.
— чувствительность регулируется. 3-80 см.
— выход с открытым коллектором(можно дублировать).
— герметичный корпус.

один минус- $3 дороговато для датчика.
+
avatar
  • fundorin
  • 25 декабря 2016, 02:27
0
А есть такое же, только с перламутровыми пуговицами чтобы ардуино совместимое что-то и умело притворяться midi-устройством при подключении по USB?
+
avatar
  • tirarex
  • 25 декабря 2016, 02:45
0
www.instructables.com/id/Custom-Arduino-MIDI-Controller/
MIDI контроллер на Arduino leonardo
+
avatar
  • fundorin
  • 25 декабря 2016, 02:53
0
Как с ардуино дело обстоит, мне понятно. Интересно было скрестить именно сабж. Впрочем, закажу и разберусь самостоятельно, пожалуй.
+
avatar
  • tirarex
  • 25 декабря 2016, 02:58
+1
Сабж не имеет юсб стэка, конечно энтузиаст завел его, но там все в зачаточном состоянии
www.youtube.com/watch?v=tz7tK7O42Tw
+
avatar
  • fundorin
  • 25 декабря 2016, 03:03
0
Вряд ли я осилю шесть часов. Имелось в виду, подключение по usb через ардуино, а беспроводные функции через ESP.
Изначально мне было интересно, существует ли плата, на которой бы разместились одновременно ардуино и esp, чтобы не городить огород из шилдов.
+
avatar
  • serenya
  • 25 декабря 2016, 12:39
0
На али встречал варианты про мини/микро с esp-03 на борту. Но в силу малого спроса стоит не мало.
+
avatar
  • tirarex
  • 25 декабря 2016, 13:08
0
У RobotDyn есть ардуина с есп на борту, но стоимость высоковата.
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
+
avatar
  • serenya
  • 25 декабря 2016, 13:28
0
Я про это. Кактус Micro Rev2 Esp8266 ESP-03 для Arduino Совместимый Разъем Заголовок WI-FI чип esp8266 FZ1682 ESP8266 WI-FI модуль для arduino
aliexpress.com/item/32412519453/32412519453.html
(from AliExpress Android)
+
avatar
  • fundorin
  • 25 декабря 2016, 14:37
0
Спасибо. Размеры тоже нескромные.
+
avatar
  • Alber
  • 25 декабря 2016, 03:06
0
Digispark великолепно выступит HID-интерфейсом для ESP
+
avatar
  • wadamir
  • 25 декабря 2016, 02:48
0
Благодаря такому сетапу появляется возможность использовать есп8266 с питанием от батареи, не боясь больших потерь на преобразовании напряжения.
А можно подробнее про потребление самой esp8266 в активном режиме и в режиме сна?
+
avatar
  • tirarex
  • 25 декабря 2016, 02:56
+3
В активном режиме (передача данных, подключение к Wifi) до 71мА
В поддержании Wifi соединения 20мА
Во сне мне удалось понизить потребление до уровня >1ма ( не могу точно измерить ибо нет хорошего мультиметра)

Но хорошим людям www.youtube.com/watch?v=6SdyImetbp8 удавалось снизить потребление до 20-60 мкА
Обсуждение сна есп на хабре geektimes.ru/post/255550/

Таблица от эсприфа
+
avatar
  • wadamir
  • 25 декабря 2016, 03:26
0
Спасибо за наводку! Подписался на Andreas Spiess. 425 дней на 2АА батарейках!
До этого был уверен что esp жрёт слишком много, а с таким потреблением — вполне реально использовать esp8266 для всяких датчиков и прочих приблуд :)
+
avatar
0
У меня ESP-шки порой не уходят в сон, а зависают вместо этого. Затем выжирают в ноль батарейку и привет. Хотя иногда неделями работают без проблем.
+
avatar
  • Davinci
  • 25 декабря 2016, 03:03
0
А можно gsm модуль использовать и поставить на даче, к примеру? Как вам идея для следующего поста?)
+
avatar
  • tirarex
  • 25 декабря 2016, 03:06
0
Идея хорошая, но финансирования пока нет =D
+
avatar
  • sir0ta
  • 25 декабря 2016, 06:12
0
Так gsm модуль стоит копейки. Я себе 2 заказал, валяютсяются.
+
avatar
  • Gdemon
  • 25 декабря 2016, 06:23
+3
По моему, гораздо проще, надёжнее и практичнее использовать Blynk для подобных задач. А если поднять свой сервер на какой-нибудь завалявшейся Малинке или Апельсинке, то и безопаснее. И возможностей гораздо больше. Да и в качестве оконечного устройства можно использовать ту же Малинку.
+
avatar
0
Проще и надежней, да! Но тут п.18, надо об этом товаре писать ))
Автору спасибо за обзор, позновательно! Как говорится, еще одна вариация на тему автоматизации.
+
avatar
  • sir0ta
  • 25 декабря 2016, 07:48
+1
Если ты за натом, то «забудь ее, забудь!»
+
avatar
  • Gdemon
  • 25 декабря 2016, 08:34
+1
С чего бы это? Вы видели хоть один мессенджер, который за Натом не работает? Да кто им пользоваться станет?

Да и Блинк разработан для работы за НАТами изначально. Прямой доступ к серверу только нужен, но у внешних серверов он и так прямой.
+
avatar
  • sir0ta
  • 25 декабря 2016, 08:54
0
Я тебе за блинк и за все сервисы на малинках и прочем. Акстись!
+
avatar
  • Gdemon
  • 25 декабря 2016, 09:25
0
Налицо нестыковки в терминах. Блинк отлично работает, даже если и смарт и управляемое устройство находятся за непробиваемыми провайдерскими НАТами, причем за разными.
Управляемым устройством может быть почти любое компьютероподобное устройство чуть сложнее калькулятора с подключением к сети (ардуинки, малинки, апельсинки, еспешки, обычные десктопы). Управление со смартфона. Работает все через внешний сервер. При желании можно запустить и локальный сервер на любом устройстве с поддержкой Явы, только нарулите доступ к серверу самостоятельно.

Ну и да, интерфейс будет гораздо симпатичнее и информативнее, нежели общение с ботом.
+
avatar
  • sir0ta
  • 25 декабря 2016, 10:19
+2
Еще раз, если сервер блинка разместить за натом, то как быть?
Давай зайдем с верной стороны что бы дальше не было разговра
А если поднять свой сервер на какой-нибудь завалявшейся Малинке или Апельсинке, то и безопаснее
Иначе не вижу ни какого интеререса заводить еще какой-то приложение. У меня уже стоит телеграм и я успешно пользуюсь их ботами.
+
avatar
  • Gdemon
  • 25 декабря 2016, 10:38
0
Если вы сервер блинка разместили за натом, то у вас наверняка были на то причины. И пользоваться вы им собираетесь за тем же натом, чтобы ни один байт вашей сверхценной информации о температуре батарей в доме не просочился наружу, даже по протоколу https, так ведь? И вообще, в этом случае лучше полностью отключить выход в инет той сети, где расположен сервер, управляющие и управляемые устройства.
Я не глумлюсь. Это действительно один из вариантов построения сети устройств.

Если же нужен доступ к серверу извне, то прокиньте порты до сервера и пользуйтесь. Или поднимите ВПН до этой сети.

Если же вы разместили сервер за натом и не можете / не умеете до него достучаться, то КССЗБ.

Кстати, аптайм серверов Блинка с момента запуска 100.0%. Подавляющее большинство пользователей вообще не парятся своим сервером, ибо по аналогии с телеграмом «у них подняты супернадежные серваки и я успешно пользуюсь ими».

У меня сложилось подозрение, что вы не имеете представления об обсуждаемом предмете. «Пастенака не читал, но осуждаю!»
+
avatar
  • sir0ta
  • 25 декабря 2016, 10:59
0
Так вот понимаешью. буквально парой комментов выше хз на сколько уважаемый товарищ melvin упирался за безопасность. Так что зачитав про свой сервер я сразу прикинул хер к носу что тут про тоже.
А если поднять свой сервер на какой-нибудь завалявшейся Малинке или Апельсинке, то и безопаснее
Если же вы разместили сервер за натом и не можете / не умеете до него достучаться, то КССЗБ.
Моему прову все равно на ваши аббревиатуры ) Просто нат и сосай ) vpn юзал, дорого. Есть у меня 2 интернет канала с белыми ip там где я размещал свой впн сервер, но там стабильности нет. Делал на микротике переключалку чтобы с сервера на севрер, но потом все меня задрало и я отказался. Ах, еще был get/post сервер. т.е. я скажем поднимал определенный «сайт» на бесплатном домене и время от времени клиент за натом постом слал инфу и гетом забирал какие я ему отпарвил команды.
Кстати, аптайм серверов Блинка с момента запуска 100.0%
Я бы не был так уверен. 100% там кластера и посему визуально 100% аптайм.
У меня сложилось подозрение, что вы не имеете представления об обсуждаемом предмете
Ну если честно, то да, я первый раз, вру второй раз за этот проект услышал и не крутил его ибо оно мне не надо, но наши расхождения скорее всего сказываются с моей не досказанностьью, и вашей не додуманностью ) Без оскорблений.
+
avatar
  • tirarex
  • 25 декабря 2016, 11:55
+1
Пробовал блинк, не понравился, задержки большие, как таковых, уведомлений нормальных нет.
А месенджеры всегда хорошо работают
+
avatar
  • AlekseyM
  • 25 декабря 2016, 09:57
0
Так же снизу можно увидеть кнопку RESET, позволяющую сбросить и перезагрузить модуль, но при этом отсутствует кнопка FLASH, конечно с наличием авто сброса нужда в ней отпадает, но если понадобится прошить через внешний адаптер, придется подпаивать провода и замыкать GPIO вручную.
Вполне справляется кнопка reset/
Примерна на 95 процентах, когда в среде ползёт шкала прошивки, нажимаем кнопку reset и всё прошивается.
Проверено и не раз.

Ну а так не дорогой модуль, добавил на дальнейшее.
Я к таким беру модуль зарядки лития от USB литий 18650, хватает на работу в течении 2-х суток.
Вывожу данные на
narodmon.ru
и
thingspeak.com
+
avatar
  • mike888
  • 25 декабря 2016, 14:42
0
Как бы подешевле aliexpress.com/item/1PCS-ESP-12F-ESP-12E-upgrade-ESP8266-Remote-Serial-Port-WIFI-Wireless-Module/32714088769.html
А если надо мониторить температуру, то есть девайс заточеный под это со звонком по заданому номеру по достижении заданого предела. Никаких смс только GPRS и отправка данных на тот же народмонитор при желании. Потребление заметно ниже чем у огорода с вафлёй, что актуально для дачи. radiokot.ru/circuit/digital/home/214/ Это для тех кто хочет сам делать ссылка, детали в форуме. Для тех кто желает потратить больше и просто купить, всё есть готовое как и на народмониторе, так и на сайте творца этой штуки.
Поскольку нет зависимости от карманых гаджетов постоянно желающих кушать, пользуюсь обычным телефоном и информация в виде звонка при проблемах мне удобнее всего.
+
avatar
  • tirarex
  • 25 декабря 2016, 15:00
0
У меня дома есть розетка и wifi, смысла городить модем и батарейку я не вижу.

А еще, по вашей ссылке голая есп а тут обвязка +юсб конвертер с авто ресетом
+
avatar
  • mike888
  • 25 декабря 2016, 15:44
+1
На кой вся эта обвязка? Всё равно колхозить питание надо. Уж тогда проще готовый девайс от сонофф, прошить можно по вкусу под локал, чтобы не связываться с китайским серваком.
Не все на дачах держат роутер включеный. Если серьёзно делать, то умный дом с бесперебойным питанием и свой сайт для контроля. А вязаться с кривыми мессенджерами, это даже не детский сад.
+
avatar
-1
Беру тут 4Mb, какая в обзоре — так и не понял (на банге нет инфы, ибо есть еще 8Мб), если такая-же, то на али существенно дешевле.

Еще я не могу понять, почему ТС так хочет отдать управление своим котлом дяде. За телеграмом стоят грамотные кодеры? Не смешите меня — недавно был прецендент очередной с их «грамотностью», а всего таких прецендентов у него — вагон и маленькая тележка. Или Вы Пашу так любите и так верите? Исходников нет — значит Ваши данные лежат черти-где и с ними может произойти черти-что. Причем даже не по замыслу и умыслу телеграмовцев.

Самое главное — в вашем случае сделать все защищенно еще проще, чем телеграмм-бота писать. Полно либ с готовыми веб-серваками. Больше и не надо. Дома врубили его в сетку своего роутера, на роутере подняли openvpn (ddwrt, tomato, zyxel — из коробки идет) — и все.
Откуда угодно и с любой системы (смарт, комп, андрюша, иос, линь, вонь) — подняли туннель и оказались в своей уютной сетке — и просто открыли в браузере ip (или имя, если охота, чтобы красиво было — dns на любом роутере можно сейчас перебиндить). Еще и интерфейсик можно удобный, красивый и тачевый сделать.

А вместо этого у Вас — текстовый квест и котел у дяди :)

-Шеф у нас дыра в безопасности!
-Ну хоть что-то у нас в безопасности!


Веселят меня люди, которые так свободно и абсолютно глупо отдают все в чужие руки, веря что там «спецы».
А на деле там такие-же говнокодеры, пишущие код за еду. Просто пафоса больше :D


P.S. Ну и если котел падает в ошибки — лучше бы Вы им занялись — ибо в нормальном состоянии ничего такого с ним быть не должно.
+
avatar
  • abyrwalg
  • 25 декабря 2016, 15:57
+1
Вы демонстративно не замечаете разницы между «можно сделать» и «сделано за пять минут, с использованием ранее полученных универсальных навыков»

текстовый квест и котел у дяди :)
благодаря текстовому интерфейсу, «дядя» понятия не будет иметь, что он хакнул)

(отдаю себе отчёт, что мы обсуждаем пять процентов комплексной проблемы, — просто пусть разговор свернёт и в эту сторону:)
+
avatar
0
Разницу я не замечаю, потому что четко представлю ее :)
Веб-сервак проще и быстрее, в том числе и для текстовых команд — ибо есть готовые веб-консоли.

Благодаря базе данных, куда уходит все, что Вы пишите боту и что он пишет Вам, дядя не только будет прекрасно разбираться в командах, он еще и баги поправить сможет ;)
+
avatar
  • tirarex
  • 25 декабря 2016, 16:03
0
Беру тут 4Mb, какая в обзоре — так и не понял (на банге нет инфы, ибо есть еще 8Мб), если такая-же, то на али существенно дешевле.
4MB, в конце обзора написал

Еще я не могу понять, почему ТС так хочет отдать управление своим котлом дяде. За телеграмом стоят грамотные кодеры? Не смешите меня — недавно был прецендент очередной с их «грамотностью», а всего таких прецендентов у него — вагон и маленькая тележка. Или Вы Пашу так любите и так верите? Исходников нет — значит Ваши данные лежат черти-где и с ними может произойти черти-что. Причем даже не по замыслу и умыслу телеграмовцев.
По сути получил готовую инфраструктуру с защитой от ddos итд, ну и как уже писал, я могу запрашивать в чат перед перезагрузкой.

Причем, в вашем случае, сделать все защищенно еще проще, чем телеграмм-бота писать. Полно либ с готовыми веб-серваками. Больше и не надо. Дома врубили его в сетку своего роутера, на роутере подняли openvpn (ddwrt, tomato, zyxel — из коробки идет) — и все.
В данный момент у меня TL-WR740N, впн на нем не поднять.

Откуда угодно и с любой системы (смарт, комп, андрюша, иос, линь, вонь) — подняли туннель и оказались в своей уютной сетке — и просто открыли в браузере ip (или имя, если охота, чтобы красиво было — dns на любом роутере можно сейчас перебиндить). Еще и интерфейсик можно удобный, красивый и тачевый сделать.
Кроме того что мне придется менять роутер либо докупать мини сервер для поднятия впн, еще и потребуется возится на девайсе с настройками, тут же все из коробки, так при добавлении пары ступеней защиты, проблема безопасности отпадает…
+
avatar
0
4MB, в конце обзора написал
Ага, увидел. Ну тогда тем более смысла покупать на банге не вижу, ибо на али почти в два раза дешевле.

На девайсе не надо будет возится — ставите OpenVPN и даете ему просто сертификат (ну или / и) пароль.
А дальше все просто — ткунли — впн запустился и все — пока он активен Вы у себя в подсетке.
Ну и DDOS Вам тоже никакой не страшен.

Ну и OpenVPN отлично ставится на WR740N под ddwrt — спросите гугль.
+
avatar
  • quges
  • 26 декабря 2016, 19:31
0
Здравствуйте, у меня проблема с чтением сообщения. Вместо команды в строке ничего:



Какие решения данной проблемы?

Использовал: ESP-01


/*******************************************************************
    this is a basic example how to program a Telegram Bot
    using TelegramBOT library on ESP8266
 *                                                                 *
    Open a conversation with the bot, you can command via Telegram
    a led from ESP8266 GPIO
    https://web.telegram.org/#/im?p=@FlashledBot_bot
 *                                                                 *
    written by Giancarlo Bacchio
    Edited by tirarex
 *******************************************************************/

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <ESPTelegramBot.h>


// Initialize Wifi connection to the router
char ssid[] = "WIFI_WLAN_55";              // your network SSID (name)
char pass[] = "asdandrey";                              // your network key



// Initialize Telegram BOT

#define BOTtoken ""
#define BOTname ""
#define BOTusername ""

TelegramBOT bot(BOTtoken, BOTname, BOTusername);

int Bot_mtbs = 1000; //mean time between scan messages
long Bot_lasttime;   //last time messages' scan has been done
bool Start = false;

String ChatID="";



/********************************************
   EchoMessages - function to Echo messages
 ********************************************/
void Bot_ExecMessages() {
  for (int i = 1; i < bot.message[0][0].toInt() + 1; i++){
    bot.message[i][5] = bot.message[i][5].substring(1, bot.message[i][5].length());
    Serial.println("---------------------");
    Serial.println(bot.message[i][5]);
    Serial.println("---------------------");
    if (bot.message[i][5] == "ledon") {
      digitalWrite(2, HIGH);   // turn the LED on (HIGH is the voltage level)
      bot.sendMessage(bot.message[i][4], "Led is ON", "");
    }
    if (bot.message[i][5] == "ledoff") {
      digitalWrite(2, LOW);    // turn the LED off (LOW is the voltage level)
      bot.sendMessage(bot.message[i][4], "Led is OFF", "");
    }

    if (bot.message[i][5] == "dice") {
      bot.sendMessage(bot.message[i][4], String(random(1, 6)) , "");
    }

    if (bot.message[i][5] == "start") {
      String wellcome = "Wellcome from FlashLedBot, your personal Bot on ESP8266 board";
      String wellcome1 = "/ledon : to switch the Led ON";
      String wellcome2 = "/ledoff : to switch the Led OFF";
      bot.sendMessage(bot.message[i][4], wellcome, "");
      bot.sendMessage(bot.message[i][4], wellcome1, "");
      bot.sendMessage(bot.message[i][4], wellcome2, "");
      Start = true;
    }
  }
    
  bot.message[0][0] = "";   // All messages have been replied - reset new messages
}


void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, pass);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());


  bot.begin();
  pinMode(2, OUTPUT);
}



void loop() {
  if (millis() > Bot_lasttime + Bot_mtbs)  {
    bot.getUpdates(bot.message[0][1]);   // launch API GetUpdates up to xxx message
    Bot_ExecMessages();   // reply to message with Echo
    Bot_lasttime = millis();
  }
}


+
avatar
  • tirarex
  • 26 декабря 2016, 19:52
0
На команды реагирует? При входе в чат отписало чего?
+
avatar
  • quges
  • 27 декабря 2016, 04:14
0
В том то и дело, что на команды не реагирует. Ничего в строке нет — не с чем сравнивать.
+
avatar
  • quges
  • 27 декабря 2016, 04:17
0
Проблема в самой обработке строки. К примеру, если я отправляю только число, то в строке это число есть, а вот другие символы не получается обрабатывать.


    bot.message[i][5] = bot.message[i][5].substring(0, bot.message[i][5].length());
    Serial.println("---------------------");
    Serial.println(bot.message[i][5]);
    Serial.println("---------------------");
    if (bot.message[i][5] == "5") {
      bot.sendMessage(bot.message[i][4], "okay", "");
    }




......
Connected to WIFI_WLAN_55
IP address: 192.168.1.10
GET Update Messages 
.... connected to server
Sent Update request up to message: 0
no new messages

GET Update Messages 
.... connected to server
Sent Update request up to message: 0
no new messages

GET Update Messages 
.... connected to server
Sent Update request up to message: 0
{"update_id":225545013,
"message":{"message_id":55,"from":{"id":136177231,"first_name":"Andrew","last_name":"Varfolomeev","username":"andrewvarf"},"chat":{"id":136177231,"first_name":"Andrew","last_name":"Varfolomeev","username":"andrewvarf","type":"private"},"date":1482801263,"text":"5"}}]}

---------------------
5
---------------------
+
avatar
  • tirarex
  • 27 декабря 2016, 14:05
0
Что то с кодировками что ли
+
avatar
0

// Initialize Telegram BOT

#define BOTtoken ""
#define BOTname ""
#define BOTusername ""


Так и оставили пустыми?
+
avatar
  • quges
  • 27 декабря 2016, 04:22
0
Нет, макросы я заполнил, и бот функционирует. Только не может обрабатывать другие символы, кроме цифр. Смотрите выше.
+
avatar
  • 4ishops
  • 08 января 2017, 22:26
+1
Есть и более навороченная библиотека для ботов — Universal-Arduino-Telegram-Bot , поддерживает кнопочки и многое другое
+
avatar
0
Вот только её и смог запустить. И ещё blynk.

Ещё штуки три библиотеки пробовал — никак.
+
avatar
  • ruswest
  • 15 февраля 2017, 15:33
0
Можно ли еще раз перезалить файлы, а то ссылки не открываются.
+
avatar
  • tirarex
  • 27 февраля 2017, 00:41
0
К сожалению временно нету доступа к тому аккаунту дропбокса =(
+
avatar
0
Добрый день!
Кто скачал скетч, киньте мне пожалуйста, а то по ссылке не доступен.
Спасибо.
+
avatar
0
успешно добыл?
+
avatar
  • nikola75
  • 06 августа 2017, 09:20
0
Поделитесь пожалуйста скетчем, если скачали.
+
avatar
  • van4uk
  • 08 октября 2017, 20:15
0
Поделитесь и со мной пожалуйста
+
avatar
  • nikola75
  • 02 августа 2017, 08:43
0
Добрый день. Обновите пожалуйста ссылку на скетч. Или скиньте кто качал ранее.
+
avatar
0
Так же интересна ссылочка, скиньте у кого есть
+
avatar
0
Здравствуйте. никак не могу запустить бота, выдает:
Connected to R5+
IP address: 192.168.43.137
GET Update Messages 
failed to update
GET Update Messages 
failed to update
GET Update Messages 
failed to update
GET Update Messages 

ваш код не скачать. использую этот:
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <ESP8266TelegramBOT.h>

char ssid[] = "R5+";              // your network SSID (name)
char pass[] = "akmS78492";                              // your network key

#define BOTtoken ".....................-........"
#define BOTname "....._bot"
#define BOTusername "......_bot"
TelegramBOT bot(BOTtoken, BOTname, BOTusername);

int Bot_mtbs = 1000; //mean time between scan messages
long Bot_lasttime;   //last time messages' scan has been done
bool Start = false;
String ChatID="";

void Bot_ExecMessages() {
  for (int i = 1; i < bot.message[0][0].toInt() + 1; i++){
    bot.message[i][5] = bot.message[i][5].substring(1, bot.message[i][5].length());
    Serial.println("---------------------");
    Serial.println(bot.message[i][5]);
    Serial.println("---------------------");
    if (bot.message[i][5] == "ledon") {
      digitalWrite(2, HIGH);   // turn the LED on (HIGH is the voltage level)
      bot.sendMessage(bot.message[i][4], "Led is ON", "");
    }
    if (bot.message[i][5] == "ledoff") {
      digitalWrite(2, LOW);    // turn the LED off (LOW is the voltage level)
      bot.sendMessage(bot.message[i][4], "Led is OFF", "");
    }
    if (bot.message[i][5] == "dice") {
      bot.sendMessage(bot.message[i][4], String(random(1, 6)) , "");
    }
    if (bot.message[i][5] == "start") {
      String wellcome = "Wellcome from FlashLedBot, your personal Bot on ESP8266 board";
      String wellcome1 = "/ledon : to switch the Led ON";
      String wellcome2 = "/ledoff : to switch the Led OFF";
      bot.sendMessage(bot.message[i][4], wellcome, "");
      bot.sendMessage(bot.message[i][4], wellcome1, "");
      bot.sendMessage(bot.message[i][4], wellcome2, "");
      Start = true;
    }
  }    
  bot.message[0][0] = "";   // All messages have been replied - reset new messages
}

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, pass);
  Serial.println("");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  bot.begin();
  pinMode(2, OUTPUT);
}

void loop() {
  if (millis() > Bot_lasttime + Bot_mtbs)  {
    bot.getUpdates(bot.message[0][1]);   // launch API GetUpdates up to xxx message
    Bot_ExecMessages();   // reply to message with Echo
    Bot_lasttime = millis();
  }
}