MQTT по-быстрому

Записал для вас коротенькое видео, как быстро подключиться к серверу по протоколу MQTT.
Элегантность решения в том, что настроек и программирования - минимум.
Просто берешь реле, esp, кабель - и готово. Я не стал врезать в видео кадры с подтверждением успешности, можете поверить на слово.

https://youtu.be/xm8D2fqlKWM

Пока вы смотрите, хочу поругаться на esp-01. Хотел сделать на его базе маячок для проекта умных ворот.
Впечатления такие: за 80 рублей экономии ты получаешь гемморой с питанием, проблемы с программированием, трудности с прошивкой. По-моему я сжег два чипа за один день, но это не точно, т.к. esp8266 не умирает сразу - он просто начинает глючить. Или они у меня глючат не от предсмертных корчей, а из-за кривого кода. Одним словом, трата времени и комплекс неполноценности в подарок 😏
Как управлять ESPEasy "в лоб" со смартфона

Пока готовлюсь к реализации проекта автоматических ворот, решил поделиться своеобразным лайфхаком.

Устройством с установленным на нем ESPeasy можно управлять и без сервера с настроенным MQTT. Дело в том, что большинство команд доступны через запросы http, например:http://192.168.0.123/control?cmd=GPIO,12,1 Где 192.168.0.123 это адрес вашей esp8266.

Формат команд совпадает с командами вкладки rules.

Вам будут доступны только команды, связанные с GPIO, сервоприводами, а также ШИМ.

Примеры команд:
http://<espeasyip>/control?cmd=GPIO,12,1 - делает вывод 12 HIGH

http://<espeasyip>/control?cmd=PWM,13,500 - устанавливаем на 13-й ноге значение ШИМ 500

http://<espeasyip>/control?cmd=Servo,1,2,90 - устанавливаем сервопривод 1 на 2-й ноге на угол в 90 градусов.

Понятное дело, что просто насоздавать закладки в браузере - это не решение проблемы, особенно для смартфона. Никакой оперативности.

Я для себя использую и вам рекомендую прогу с исходным кодом для андроид, которая в русском переводе называется "Ярлыки HTTP".

https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts

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

При этом можно передавать определенное значение - например, настроить переменную и с помощью ползунка определять угол открытия сервопривода, например.

Надо сказать, что у ESPEasy есть собственный веб-интерфейс именно для изменения параметров подключенных GPIO, http://192.168.0.123/dashboard.esp, но он все еще в стадии экспериментального. Он отображает только те модули, которые у вас прописаны во вкладке Devices. А управление командами по прямой ссылке позволяет управлять устройством даже если оно не прописано нигде (правда, раз оно не прописано, то и изменение статуса отслеживать не получится)

Главный минус такого подхода - в том, что это все будет работать только в домашней сети. То есть, только если ваш мобильник подключен в ту же WiFi сеть, что и esp8266.

Еще одна сложность в том, что надо постараться обеспечить IP адрес устройства неизменным. Это делается с помощью настроек роутера - лучше просто добавить адрес в исключения.

Когда встает вопрос о том, как управлять через одно устройство другими - то тут поможет только добавление в Devices модуля Switch Input, и связать его с нужным GPIO. Тогда, подавая команду извне, вы будете инициировать системное событие, которое можно будет обработать внутри устройства на вкладке Rules и уже оттуда "дернуть" подчиненные esp8266.
​​Автоматические ворота

Подошли вплотную к реализации проекта ворот, которые открываются сами при приближении хозяина.

Надо учесть следующие моменты:
1. Ворота должны не только автоматически открываться при приближении, но и закрываться, когда хозяин уходит

2. При закрытии замка на воротах - проверять, закрылись ли, ничего не помешало ли

3. Температурный режим, как водится, до -40

4. Обходные программы на случай пропадания энергии - какая-нибудь система аварийного открывания.

5. Индикация, оповещение о состоянии ворот.

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

Реализовывать все буду на esp8266.

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

В качестве ключа будет применяться Wemos D1 mini, может - esp-01.
Контролировать факт закрытия ворот можно герконом, можно датчиком холла, в крайнем случае - поставить концевик.

Главная проблема здесь - безопасность, поскольку знающий человек может просто на телефоне сделать точку доступа с нужным названием и всё. Можно сделать так, чтобы ворота и ключ по WiFi соединялись и обменивались парольными фразами, но это удлиняет процесс распознавания. Само по себе сканирование на предмет нахождения ключа рядом и так не мгновенное, секунд пять, и зависит от количества WiFi сетей в округе.

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

Вот такой фронт работ. Начинаем?
​​Безопасность ваших устройств

Британские ученые решили законодательно закрепить следующие моменты:

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

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

— Производители IoT-устройств должны четко указать минимальный период, в течение которого устройство будет получать обновления безопасности и каким образом это будет происходить.

Перекладывая на российские реалии, где большинство народу выбирает пароль 11111111 или любой другой из самых взламываемых, я хочу дать неожиданный совет:
не держите ваши домашние устройства и ваши умные устройства на одном роутере.

Дело даже не в том, что эти устройства легко взломать. Нет. Дело в том, что к этим устройствам легко получить физический доступ. Как пример: стоит у вас на столбе или в машине обычная WiFi камера, с алиэкспресс, за косарь денег. Хороший девайс, спору нет. И вдруг у вас эту камеру воруют. Скачать прошивку с нее с помощью программатора - пять минут делов. А там - пароль от вашего домашнего WiFi. В котором целый рассадник всякого, раз уж ты такой продвинутый пользователь гаджетов, да еще и без пароля. Так что - вы поняли меня.

По секрету еще добавлю, что если вы попытаетесь взломать сайт росгвардии из корпоративного WiFi, то очень скоро на пороге этой конторы появятся представители ФСБ, которые в лучшем случае выпишут штраф от 1 до 15 тыс рублей, в худшем - заберут все оборудование на проверку на 3-5 дней. Это случай из реальной практики, с другой стороны демонстрирующий важность защиты вашего пароля от WiFi.

Ладно, страшилки страшилками, а как реально работать с двумя сетями? Неужели надо будет на смартфоне переключаться на "умную" сеть, чтобы что-то сделать?
На самом деле - нет.
1. Ваш второй роутер вы втыкаете в любой свободный (не интернет!) порт основного роутера.
2. Фиксируете для "умного" роутера IP адрес на основном, например, 192.168.0.100, а сеть умного роутера настраиваете так, чтобы третья цифра отличалась от третьей цифры на основном роутере. То есть, если у вас на основном 192.168.0.хх, то надо сделать 192.168.1.хх
3. На "умном" роутере делаете перенаправления на умные устройства (обычно это во вкладке "межсетевой экран - виртуальные серверы"). Внешний порт указываете любой, но лучше начинающийся с тысячи. Например, "имя: полив, интерфейс: все, протокол: TCP, внешний порт: 1001, внутренний порт: 80, внутренний IP: 192.168.1.5")
4. Подключаемся смартфоном к основному WiFi роутеру, и получаем доступ к умным устройствам по адресам: 192.168.0.100:10001 - первый, 192.168.0.100:1002 - второй и так далее.

Если объяснил непонятно - не стесняйтесь, давите кнопку с глазом 👁 под постом. Десять голосов - и я запишу видео, как настроить два роутера под данный сценарий.
​​Автоматические ворота. Мозги

Итак, близится к завершению проект автоматических ворот. Как всегда, от заказчика море пожеланий, пофигу, что бесплатно ему это ставлю. В частности, начиналось все как проект с сервером, а в итоге уговорил меня на реле для подсветки и дисплей. И чтоб никакого интернета. Начитался разного, боится за безопасность 😆
Все получилось на ESPEasy кроме той части, которая засов на калитке отодвигает. Потому что ESPEasy, конечно, умеет сканировать WiFi сети, но только для совсем уж своего пользования.

В итоге имеем:
1. "Головную" esp8266, с LCD дисплеем, четырехканальным реле и пищалкой. Дисплей - четырехстрочный 2004A+igc. Несмотря на то, что работать он якобы может с любой пары контактов, нормально завелся только на GPIO-5(D1) и GPIO-4(D2). На дисплей ушло два провода питания 5В. Реле и пищалку разместил, куда попало, не особо задумываясь.
2. Двое ворот с герконами. Ничего особенного, геркон замыкает GPIO-14(D5) и контакт с землей по соседству. Просто, чтобы два провода из одного места шло.
3. Баня. У нее помимо ворот есть датчик температуры. Взял Dallas DS18b20 с метровым проводом. У него три контакта - синий это сигнал, красный - +3 вольта, черный - минус. Чтобы работал нормально, надо между красным и синим проводом еще сопротивление какое-нибудь воткнуть. У меня было 10 КОм, подошло. Почему они сразу его внутри не придумали - не знаю.
4. Роутер. Поставил на eps8266 прошивку https://github.com/martin-ger/esp_wifi_repeater Работает замечательно, 6 подключений обслуживает влёт. Единственное, прошивка идет из двух кусков, поэтому при прошивке будьте внимательны. Если возникли проблемы - пишите мне, подскажу как надо.
5. Автоматический замок. Тут пришлось кодировать на Arduino IDE.

Безопасность реализована в рамках самой же ESPEasy - если "голова" теряет связь с воротами, она об этом выводит на экран.

Какие рабочие нюансы мне встретились:
1. ESPEasy сравнительно хорошо работает в рамках собственной P2P сети. По сути, надо лишь выставить везде одинаковые UDP во вкладке Tools-Advanced, и будет счастье.
2. Номер устройства (Unit Number) не должен быть нулем, иначе на него ничего не отправить.
3. Телеметрию (проверку устройств на доступность) лучше делать по принципу один таймер = одно устройство.
4. Не забывайте в Tools - Advanced ставить галочку напротив "Tolerant last parameter" иначе не работают команды SendTo и SendToHTTP (через которые и происходит обмен данными между устройствами)
5. В ESPEasy нет часов!!!!! В смысле - я пока не понял, как подключить RTC (это интернето-независимое время). Можно получать через NTP, то есть с серверов времени, но а как быть, если у меня изолированный сегмент? По сути, часы мне придется как-то вешать на замок (раз уж он у меня на самописном коде) и поднимать ntp сервер на нем. Пока еще не сделал, поэтому код замка еще не выкладываю.

Общая смета проекта пока не превысила 2000 рублей по ценам алиэкспресс )

Скачать параметры и наборы правил для устройств можно в архиве:
https://roboruchka.ru/gate.zip

Если надо полные схемы подключения (ну, вдруг) - жмите на глаз 👁, 20 человек отреагируют - нарисую для вас схемы и продублирую их фото.
​​Сразу про телеметрию

В обычной жизни проверить доступность сетевого устройства легко: отправляем на него ping, если прошел - значит "живой".
ESPEasy пинговать не умеет.

Поэтому единственное удобное решение - это чтобы все подчиненные устройства слали на "голову" сигнал о том, что живы, а "голова" бы регулярно забывала этот факт до следующего подтверждения. Тут хорошо, что таймеры в ESPEasy сначала ждут, а только потом запускаются, так мы можем оставить еще один шанс подчиненным устройствам "ожить". Схема работы выглядит так:
1. Подчиненное устройство включается. Каждые 9 секунд оно посылает на "голову" сигнал, что оно живо.
2. На голове мы создаем Dummy Device (в ESPEasy это единственный способ хранить переменные) и принятые сигналы сохраняем в нем.
3. Раз в 50 секунд мы проверяем, все ли подчиненные живы. Если какой-то отвалился - ставим таймер тревоги, с задержкой в 10 секунд (чтобы дать шанс, ну вы поняли)
4. Таймер тревоги еще раз проверяет, жив ли подчиненный, и если нет - выводит предупреждение и перезапускает себя.
5. Если таймер тревоги обнаруживает, что подчиненный ожил, он ничего не делает. То есть, отрубается.

Во вкладке Rules это выглядит так:

//запускаем таймер телеметрии со стартом системы
On System#Boot do
timerSet,1,10
endon

On Rules#Timer=1 do
if gateway#gw1=0
timerSet,5,10
endif
TaskValueSet 3,1,0
timerSet,1,50
endon

On Rules#Timer=5 do
if gateway#gw1=0
GPIO,12,1
timerSet,2,0
LCD,1,4,-!NE--RABOTAET!--
timerSet,5,1
endif
endon

Команда TaskValueSet отвечает за запись переменных в Dummy Device. Тот что отвечает за ворота - третий по счету, параметр - первый по счету, а записываем 0, то есть "не работает". Вот и получилось TaskValueSet 3,1,0
LoRA под угрозой.

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

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

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

Поскольку LoRA невероятно приятен в городской и сложной среде из-за очень устойчивого к помехам сигнала, на него переводят инфраструктуру ЖКХ, например. Умные светофоры всякие, разные системы внутри аэропортов, счётчики всего и вся.

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

Что же, ждём, когда мне в квартиру поставят "умный" счётчик воды, с защитой от магнитов, протечек, дурости и жадности. Посмотрим, может ли его взломать простой человек с программатором 🤠
Ссылка на новость на английском: https://www.iottechnews.com/news/2020/feb/04/new-research-shows-how-easily-lorawan-smart-devices-networks-can-be-hacked/
Обещанная схема подключения логической части
​​Засов на автоматические ворота
Наконец-то доделал.

Я, конечно, хотел бы обойтись без Arduino IDE, но не смог. Но тем не менее, в общую схему включил )

Возможности:
1. Настройка WiFi через встроенную точку доступа, данные о настройках хранятся в EEPROM. Если настроек нет - можно выбрать любую доступную сеть, ввести пароль. Если подключение удалось - то из локальной сети можно зайти на устройство и очистить настройки

Адрес устройства без настроек- 192.168.4.1

2. Посылает изменение статуса (открыл/закрыл засов) на головное устройство по HTTP. В моем случае это голова на ESPEasy с адресом 192.168.1.150

3. Реагирует на появление около себя WiFi ключа с заданным SSID. Дополнительных мер безопасности не принято, поэтому будьте осторожны.

4. Реализован антидребезг ворот )) После того, как ключ исчезнет из поля зрения замка, он сначала 5 секунд будет ждать, что ворота стабильно закрыты (концевик, геркон, ИК дальномер - на ваше усмотрение) и только потом закрывает замок.

5. Сервопривод взят MG996R. Поворачиваю его на 90 градусов, плавно (с задержкой в 15мс между командами).

Сервопривод управляется с ноги D5, геркон на D6.
Исходный код прокомментировал весь, чтобы новичкам было легче.
​​ESP NOW: передача данных без WiFi

Между тем, ESP32 может передавать данные на частоте 2.4 Ггц на другое устройство без создания WiFi точки доступа. Хотя это и делается при помощи WiFi модуля, сам процесс напоминает "спаривание" компьютерной мыши со своим контрольным USB-устройством.

Для работы надо только знать MAC-адреса обоих устройств. На устройстве-приемнике достаточно прописать MAC-адрес передатчика и никаких дополнительных паролей не надо.
Конечно же, MAC-адреса можно "подсмотреть", если это устройство создаст точку доступа, поэтому это еще одна потенциальная дыра в безопасности, но я не об этом.

Главное то, что данный метод передачи данных очень энергоэффективен. За раз можно пересылать только 250 байт данных, реализовано что-то вроде контроля целостности, дальность при прямой видимости около 200 метров.

На видео пример того, как данные с тепловизора на базе ESP32 передаются на другое ESP32 с дисплеем. Скорость достойная.

Ко мне же наконец дошла пара новых устройств на базе ESP32-pico, из разряда "угадай, сколько телевизоров у меня в кулаке". Постараюсь к среде потестировать, насколько удобен данный протокол в работе.
​​Спрос на специалистов по IoT растет

Читал очередную забугорную новость про опыт внедрения "Промышленности 4.0".
Исходные данные: согласно CISCO, 85% компаний в ближайшее время будут внедрять у себя на производстве технологии интернета вещей, при этом 64% тех, кто уже внедрил, считают, что лишь поверхностно заценили технологии интернет вещей.

При этом основные беды внедрения (У них) схожи с бедами внедрения у нас: внутри самих компаний нет специалистов, которые бы имели достаточно опыта для работы с IoT, и поиск талантов - ключевая задача. Мало интеграторов технологий, а те, что есть - берут большие деньги и работают медленно. Поэтому даже западные компании до сих пор считают, что вкладывать деньги в интернет вещей - это долгосрочная инвестиция.

Еще один факт для осмысления: 74% компаний, связанных с разработкой и внедрением IoT обанкротилась. Проблемы здесь те же, что и у нас: не хватило денег на окончательную реализацию, неправильно рассчитали сроки внедрения для заказчика, не смогли обеспечить совместимость с имеющимся парком старой техники и существующих систем автоматизации.

Зачем вообще внедрять интернет вещей на предприятиях?
1. Снижение операционных затрат
2. Минимизация рисков за счет систем автономного принятия решений
3. Сбор и преобразования опыта клиентов - то есть пересылка метрик на свои сервера.

Так-то в MS Windows, например, даже калькулятор шлет телеметрию, что для конечного пользователя выливается в то, что механические калькуляторы образца конца прошлого века остаются востребованным товаром.

Лично меня радует, что нет такого стандарта передачи данных, который бы не поддерживался микроконтроллерами на базе ESP: шустрые китайцы с разной степенью кривости интегрировались во все проводные и беспроводные протоколы. Обратная сторона медали - документации нормальной нет, и часто сталкиваешься с необходимостью покупать "более другое" оборудование, потому что быстрее дождаться, пока оно придет из Китая, чем разобраться с тем, как заставить работать то, что уже купил.

Осталось надеяться, что реальный спрос на профессию в России произойдет позже, чем я закончу разработку своей образовательной программы ))))
​​2,5 см счастья

Мне не хватало этих девайсов, это факт. Я про M5Stack Atom и Atom Lite.
Это сверхкомпактные устройства с ESP 32 Pico D4 внутри.

Оба имеют по 6 GPIO в виде дырок для стандартных проводов-перемычек, ещё два на шлейфе Grove интерфейса.
Естественно, WiFi и Вluetooth. На каждом по кнопке сброса и кнопке управления, каждый зачем-то с инфракрасным LED, на каждом обратная связь в виде RGB.
Только на Atom Lite это один светодиод, а на "полноразмерном" - матрица 5х5.
Ещё в полноразмерном Atom есть акселерометр.
Один стоит 600 рублей, другой 400.

В комплекте нет никаких проводов, в качестве USB интерфейса стоит Type-C.
Программируется он через Arduino IDE, в ближайшем времени обещают доделать поддержку визуального программирования через UIFlow.

Что может эта кроха - специалистам уже понятно. Электронщикам тоже - кстати, не настолько он и дороже классического решения от Wemos, зато компактнее и уже в корпусе.

А вот учителям скажу: пропала последняя причина колебаться, брать Micro:bit или ESP 32 для обучения.
Подумайте сами: если брать официальную цену последнего в 1900, то даже с учётом доставки, можно взять три микроконтроллера вместо одного. Прощай, Британия, Китай тебя и тут победил.

Как и обещал, завтра-послезавтра попробую их сконнектить через ESP NOW.

P.S.: кто хочет сэкономить на доставке - пишите в личку, расскажу один секрет.
This media is not supported in your browser
VIEW IN TELEGRAM
Собственно, так может выглядеть реализация дверного замка без повреждения двери.
Берем литровую пластиковую банку, сервопривод за 300 рублей, мозги с кнопками за 1800.....
На мой взгляд - уродливая конструкция 😝 Но рабочая и даже популярная.

Из плюсов:
- легкий монтаж/демонтаж
- мозги можно снять и использовать где-то еще по ходу
- какая-никакая автономность (аккумулятор в комплекте, хватит перенести в другую комнату)
- вместо геркона можно поставить другой похожий датчик без программирования
- совместимость почти со всеми дверями
- исчерпывающие логи относительно того, кто, куда, во сколько (а если ИК датчик поставить - то и с кем)

Минусы:
- надо все-таки что-то думать с питанием (чтобы провод вот так не висел)
- толстый дизайн, заденешь - упадет и будет обидно
- дорогие "мозги", можно было обойтись в два-три раза дешевле
​​ESP NOW в работе

Удобная технология, хотя пример из Arduino IDE оказался несколько перегружен.
Механизм таков:
1. Поднимаем на мастере (инициатор) и слейве (получатель) WiFi точку доступа.
2. Мастер сканирует WiFi сети на предмет наличия слейва (название придумываем сами)
3. Отправляем на слейв запрос о синхронизации
4. Слейв принимает его или отклоняет, как я понял методами защиты служат авторизация по MAC, по имени точки доступа, по паролю.
5. Если все нормально, то мастер может слать данные, а слейв их принимает.

Данные он шлёт очень резво - у меня на видео крестик из LED мигает не потому, что я специально так задумал, а потому что сигналов посылается уйма, буфер забивается и даже после прекращения действия слейв некоторое время "переваривает" его. Поэтому на срабатывание GPIO от датчика, например, лучше ставьте флаг или таймер.
Слейв принимает сигнал в виде отдельного прерывания, то есть loop() на нем пустой.

Я в примере не использовал никакой авторизации, пересылал только цифры. Как код маленько причешу и прокомментирую - выставлю.
​​Всё как сервис: новая антиутопия

Есть такая тема: программа как сервис (SaaS). Идея в том, что незачем платить за полную версию программы, например, 10 000 рублей, лучше взять абонентку в косарь ежемесячно. Мол, нужна прога - платим деньги, не нужна - не платим.
Это, конечно, выгодно производителям. Особенно развлекательных сервисов. И если те, кому за 30, ещё выбирают собственность вместо аренды, то молодежь по всему миру уже начинает жить по подписке.
Это и каршеринг, и аренда жилья, не говоря уже об информационных сервисах.

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

Причем, впервые программы как сервис предложили продавать ещё в 60-х. Прошло более полувека, прежде чем у нас везде появились операционные системы, которые без вашего спроса обновляются, меняют состав компонентов, навязывают одни услуги и лишают других, привычных. Даже поменять эту систему трудно.

Про автопром молчу, там все ещё печальнее.

В обозримом будущем цифровые технологии придут к вам в дом так же плотно, как винда с Яндексом на ноут.

Единственное, пока зло в мировом масштабе не победило, можно заплатить за свою свободу повышением своего IQ: напрячься и отказаться от Яндекса с Гуглом в пользу duckduckgo, от винды - в пользу линукса (либо вручную отключить встроенные сервисы, которые типа не отключаются), от навязанных услуг - планированием потребностей.

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

Поставите 20 лайков - напишу, что опасного можно сделать, имея esp8266 (или ESP32)
​​esp32 и гадкий я

Как и обещал, подготовил подборку нестандартных применений ESP. Чип интересен тем, что дает полный контроль над своими аппаратными ресурсами.

Первое, что в нем есть - это UART, даже три. Это как минимум значит, что вытащив два провода из GPIO и воткнув их в порт USB мы сможем увидеть на компе какое-нибудь примитивное устройство типа клавиатуры, которое на самом деле будет управляться нами. Варианты применения:

1. BadUSB - посылаем в компьютер сочетание кнопок, которое нам вздумается. Полезно, если вы на рабочем месте любите поиграть, а среагировать и свернуть игру можете не успеть. Тогда датчик на двери может послать сигнал на ваше хитрое устройство, которое тупо пошлет Alt-Tab в систему и свернет игру. Вариантов много.
2. Клавиатурный шпион. Тут тоже все просто: клавиатуру подлкючаем к ESP, a ESP - к компьютеру. Все кнопки, нажатые человеком, заботливо передаются и на комп (чтобы было не понять, что вас ловят) и на сервер. Таким образом, все пароли - ваши.
3. Экстренное вырубание компьютера Достаточно замкнуть с помощью чипа плюс и минус, и на блоке питания сработает защита, полностью вырубив комп. Зачем это надо? Вам виднее.
4. А еще знаете, есть такие аппаратные ключи для всяких желтых программ... Ну, вы поняли

Следующий источник радости - это WiFi. Тут все сравнительно просто. Мы можем:

1. "Забивать" сигнал любого устройства на такой же частоте, тем самым блокируя работу недорогих камер видеонаблюдения (например)
2. Сканировать окружение на наличие МАС-адресов от включенных телефонов или иных устройств. Потом эта информация замечательно идет в качестве аудитории для таргетированной рекламы
3. Можно быстро создавать и удалять точки доступа без шифрования. Телефоны будут реагировать на них, предлагая подключиться. В чем профит? Назовите свою точку доступа "в ларьке №13 джинсы за полцены предьявителю" и маркетинговый эффект на лицо
4. Можно перехватывать "пролетающие мимо" пакеты с данными и даже пытаться их видоизменять. Это не очень полезно для начинающего хакера, потому что все равно все сайты уже используют самостоятельное шифрование, так что проку будет мало. Но все равно, приятно

Блютус. Тоже источник для бесконечных шуток:

1. Можно сделать вид, что ты - iBeacon и подпортить кому-то навигацию внутри здания
2. ...а можно перехватить управление каким-нибудь устройством от Xiaomi, например. В интернете есть пара заметок на этот счет.
3. Гарнитуры и некоторые датчики работают на блютус. Умный город работает на блютус. Блютус - всадник апокалипсиса.

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

Используемая периферия для чипов ESP тоже радует потенциалом.

1. ИК-передатчик. Конечно, управлять тем же кондиционером по ИК-порту это, может, и фуфло, НО большинство камер снимают в ИК диапазоне. Посмотрите на пульт от телевизора через камеру телефона. То есть если у вас, грубо говоря, на очках будет стоять мощный ИК-диод (а лучше 5), то попытки заснять ваше лицо будут несколько неудачными. Рекомендую попробовать.
2. 433Мгц радио. Тут, конечно, не обойтись без определенного задротства, но после пары бессонных ночей вы сможете быстро находить и подделывать сигнал от любых подобных устройств. Обычно это беспроводные датчики от разных китайских сигнализаций. Проку не очень много, но ложных срабатываний вы можете сделать гору.
3. CAN-шина. Самое популярное применение - чип-тюнинг автомобилей в обход компьютера, так сказать. Занятие сложное, долгое (ибо никто вам документации не даст), но результат должен порадовать
4. Все, что связано с электричеством. Самое простое - поиск спрятанной проводки в стенах, самое сложное - создание наведенных помех для слабозащищенных устройств. К сожалению, здесь надо быть более профессиональным физиком, чем я, но вот наличие процессора реального времени позволит вам реализовать любую грязную фантазию без проблем.
5. Другие стандарты передачи данных по проводам. В принципе, ничего такого, но дальнобойщикам будет легче сливать соляру, к примеру.
​​M5CAMERA - ESP32-CAM в заводской упаковке

Приветствую, друзья!
Долго не писал, потому что обстоятельства отвлекли от всевозможных "сделай сам".
Сейчас попался заказ на программирование шлагбаума с разпознаванием номера автомобиля.

Для этого предполагается что камера будет слать данные на сервер, где они будут в режиме реального времени обрабатываться распознавалкой (я остановился на iANPR) и в случае срабатывания - подъем и через некоторое время опускание.

Сам шлагбаум уже есть, мне надо только дать сигнал на открывание, дальше он уже сам со своими настройками.
Для передачи информации на сервер я выбрал FTP. Не знаю, почему меня заусило именно этот протокол, а не лить в HTTP или по MQTT.
В качестве интернета - WiFi роутер, недавно на алишке нашел недорогой, с симкой.

Трудности в том, что стандартный пример из Arduino не видит камеру а FTP может отваливаться и при этом камера "зависает". Предложенные примеры в интернете пестрят ошибками, например нет очистки буфера камеры, что приводит к смерти.

В итоге, после красноглазой ночи получился код, который очень стабильно шлет набор картинок на сервер и перезагружает девайс если что-то подзависло. Работает ТОЛЬКО на M5CAMERA, если хотите ESP32-CAM то надо заменить блок cameraconfigt config на тот, что есть в стандартном примере
ftp-cam.ino
4.1 KB
Код, отправляющий фото в с камеры M5CAMERA на FTP
Приветствую, друзья!

Благодаря тому, что недавно crosser_bot в моем канале взбесился и выложил непотребства, я вспомнил о том, что у меня вообще есть этот канал 😁

А вчера я внезапно стал обладателем относительно новой китайской паяльной станции. Вот никогда же в руках паяльник не держал и тут опять 😆
Ну и отказ от западного в пользу китайского....

Короче, я решил. что все как бы намекает на то, что мне надо продолжить однажды начатое.

Формат немного изменится - я буду писать чуть больше про мобильную разработку, иногда делиться важными (на мой взгляд) новостями, ну и постараюсь не писать слишком длинные тексты 😂

Может быть как-нибудь осмелею и сделаю трансляцию, поговорим вживую...

...в любом случае, буду рад, если мои знания помогут кому-то в решении текущих вопросов.
2024/04/27 07:10:35
Back to Top
HTML Embed Code: