Pull to refresh
den26 @den26 read⁠-⁠only

User

Send message

ESP-NOW — альтернативный протокол обмена данными для ESP8266 и ESP32. Основные понятия

Reading time 8 min
Views 33K


Технология ESP-NOW — это упрощенный протокол связи WiFi с передачей коротких пакетов между парами сопряженных устройств, разработанный и выпущенный Espressif в 2016.07 для микроконтроллеров ESP8266 и ESP32. При этом дополнительные процедуры, связанные с поддержкой протокола WiFi не используются, что ускоряет процесс обмена пакетами.

ESP-NOW может применяться в Интернете Вещей для управления интеллектуальными источниками света, реле, розетками, другими устройствами дистанционного управления, получения информации от датчиков и других приложений.

ESP-NOW поддерживает следующие функции


  • Зашифрованная и незашифрованная связь между сопряженными парами устройств.
  • Смешанные зашифрованная и незашифрованная связь между сопряженными устройствами.
  • Передача до 250 байт полезной информации.
  • Настройка функции обратного вызова для информирования прикладного уровня, в частности, об успешности или сбое передачи.

Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 13

Пара распространённых заблуждений про радиоканалы RFID и Wi-Fi (и RFID как точки Wi-Fi)

Reading time 7 min
Views 42K

RFID-метка для пациентов, чтобы их было видно на карте больницы

— А можете каждому строителю чип в голову вшить?
— Теоретически да, но, может быть, объясните, зачем вам это нужно?
— Они у нас стройматериалы воруют. Прямо во время работ. А так каждого будет видно, куда он там зашёл, куда не надо.

Проект решился вшиванием в форменную одежду RFID-метки, разделением стройки на зоны и дальше тем, что делается в сети при построении периметра. То есть построением профиля «белого» трафика — кто, куда и когда ходит. А потом — как на файрволле — запретили строителям всё остальное. Кражи сразу сократились. Прораб получил потустороннюю силу и видел почти каждый косяк.

А дальше каждый чёртов раз, когда я рассказываю про RFID-решение, люди начинают махать руками и путать эти метки с Wi-Fi, Bluetooth и пассивными резонирующими контурами. Одна из причин — некоторые RFID-метки действительно работают по Wi-Fi 802.11. Давайте расскажу, как это используется на практике в разных странах.
Читать дальше →
Total votes 54: ↑53 and ↓1 +52
Comments 73

Интеграция PostgreSQL с MS SQL Server

Reading time 3 min
Views 31K

В предыдущей статье мой коллега Дмитрий Васильев описал настройку интеграции PostgreSQL с MySQL и описал, как более эффективно выполнять некоторые запросы.


Интеграция PostgreSQL с MS SQL Server


В этой статье я хотел бы описать настройку подключения PostgreSQL, работающего под управлением Linux, к MS SQL Server. А также, как импортировать все таблицы определенной схемы базы данных MS SQL Server в PostgreSQL без описания структуры каждой таблицы.

Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Comments 11

Универсальный скрипт переключения 2-х каналов интернета Mikrotik

Reading time 8 min
Views 65K
Около 2,5 лет назад писал статью на тему автоматического переключения канала Интернет на резервный. Скрипт, конечно, и по сей день работает «на отлично», но его внешний вид и некоторые нюансы…

Итак, встала задача улучшить скрипт, максимально устранив побочные эффекты. Что ж, приступим.

image
Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Comments 34

Компактная ОС для ARM процессоров

Reading time 5 min
Views 38K
“Кажется, что совершенство достигается не тогда, когда нечего более добавить, а тогда, когда нечего больше убрать."

(Антуан де Сент-Экзюпери)

image


По теме изучения программирования встроенных систем, ОС реального времени, Ассемблера и С позвольте представить очень простую операционную систему StartOS.

Предназначение:

— если вам необходимо создать устройство, начинающее работать через 1-2 секунды после включения питания и способное реагировать на сигналы из внешнего мира в течение микросекунд;
— для быстрого создания систем управления объектами с выводом данных в Интернет;
— отработка идей, алгоритмов, изготовлении прототипов устройств;
— приобретение опыта программирования встроенных систем на языках C и Assembler;
— получение полного доступа к «железу» компьютерного устройства, например, для разработки самомодифицирующихся программ.

Некоторые свойства системы:

Время готовности после включения питания: < 1 сек
Объем двоичного кода программы: < 40 kB
Читать дальше →
Total votes 46: ↑43 and ↓3 +40
Comments 40

Asterisk: Обеспечим VIP-клиентам первое место в очереди звонков, а так же свяжем клиента с конкретным оператором на заданное время

Reading time 7 min
Views 11K
Asterisk — это fun!
Каждый раз сталкиваясь с какой-то нестандартной задачей я радуюсь, радуюсь возможности снова погрузиться с головой в это чудесное состояние творчества, работы мысли. В последнее время такие задачи появляются часто и это здорово.
Обозначенные в заголовке были реализованы и работают, а значит пришло время поделиться с сообществом своими решениями.

Расскажу немного подробнее о каждой.

1. Организовать список номеров телефонов VIP-клиентов.
Звонки от VIP-клиентов должны попадать на первое место в очереди Asterisk, для скорейшей обработки именно их обращения. Так же нужно иметь возможность удобно добавлять и удалять контрагентов из этого списка.

2. Связать звонок клиента с конкретным оператором очереди на заданное время.
Настроить Asterisk так, чтобы в его «памяти», на какое-то заданное время, оставалась информация о том, какой из операторов очереди принял вызов. Позвонил человек с номера 8913*75*5*0 и попадает к оператору очереди Алёна и нужно сделать так, чтобы в течение, например суток, входящие звонки с этого номера принимала только Алёна и никто другой.
Но это еще не все, если клиент не хочет общаться с Аленой, то он может нажать клавишу * на своем телефоне и в следующий раз попадет уже к другому оператору.

С вступлением на этом заканчиваю, немного Python, MySQL и хитрого dialplan ждут вас под катом.
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 11

Bash скрипт для создания архива данных

Reading time 12 min
Views 19K
На днях озадачился резервным копированием данных в облако. Нашёл подходящий сервис попробовал, и понял, что существует необходимость в сжатии бэкапа перед отправкой (думаю нет необходимости объяснять зачем). Не стал заморачиваться в поиске готовых решений и решил сам написать скромный скриптик для этой цели. Исходные файл или папка жмутся в .tar.xz с уровнем сжатия 9, что позволяет сохранить права и выдаёт хорошую компрессию на выходе (у меня снэпшот системы сжимается 4 раза). Результатом остался доволен, думаю для малого бизнеса, да и для личных целей многим пригодиться.

Возможности скрипта:
  • гибкая настройка
  • проверка на доступность ресурсов (источник, директория назначения, рабочая директория)
  • проверка на файл блокировки (предотвращает выполнение если источник еще создаётся)
  • вывод информации о сжатии (размер источника, размер архива, соотношение этих размеров)
  • логирование и дебагинг (вывод дополнительной информации о процессе выполнения)
  • возможность менять вывод (как в консоль и лог-файл, так и только в лог-файл)
  • сохраняет и ротирует предыдущие архивы
  • возможность форматирования текста вывода
  • отправка e-mail-а в случае успешного и/или неуспешного завершения

Читать дальше →
Total votes 20: ↑13 and ↓7 +6
Comments 22

Домашний медиа-сервер на основе Ubuntu Server 12.04 LTS

Reading time 8 min
Views 354K
Привет, Хабр! В ходе обсуждения одной статьи про «идеальную» домашнюю сеть, возник спор, что лучше, аппаратный NAS или мини-компьютер с Linux дистрибутивом. Автор предлагал использовать аппаратный NAS, т. к. якобы он проще в администрировании, не требует знаний Linux, да и вообще NAS тихий. Но при этом, для просмотра на DLNA-телевизоре видео, который он не поддерживает, предлагал включать ноутбук с транскодирующим DLNA. Меня это, мягко говоря, удивило, т. к. в идеальной сети такого быть не должно. Поэтому хочу представить своё видение одного из ключевых компонентов домашней сети — централизованного хранилища данных, и основано оно будет на мини-ПК с ОС Ubuntu Server.
Читать дальше →
Total votes 112: ↑99 and ↓13 +86
Comments 76

Как настроить iOS-устройство и RAD Studio XE8 (Delphi, C++ Builder)

Reading time 4 min
Views 19K
Сегодня мы “подружим” или настроим реальное iOS-устройство и RAD Studio XE8 (или Delphi, или C++ Builder, или Appmethod).

В итоге мы сможем запускать наши приложения не только в среде Window, Android, OS X, iOS-симуляторе, но и на реальных iOS-устройствах из одного и того же исходного кода.

План действий:
— настройка макбука + developer.apple.com;
— настройка RAD Studio XE8;
— запуск своего приложения на iOS-устройстве.

Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 1

Программирование ARM на Pascal

Reading time 7 min
Views 23K
Однажды, вдруг совершенно неожиданно и без объявления войны, появилась идея. И требовалось для этого написать и запрограммировать кристалл STM32.

А собственно в чем проблемам? stm32vldiscovery лежала на полке и дожидалась своего часа, программирование знаю и частенько пишу “на заказ”. С железом дружу хорошо.

Первым делом возник вопрос “на чем писать”? Сред программирования много, но язык только “Си”. Без вариантов. Ассемблер не рассматриваю в принципе. Светодиодом помигать можно, но что-то сложнее требует огромных трудозатрат.

Но я не знаю Си! Вообще. Всю жизнь писал только на Pascal/Delphi. Учить язык? Вы пробовали учить язык, когда вам более 40 лет возраста? Когда работа, семья и минимум свободного времени. Когда ум уже не так остр, как в молодости. Да и затевать все это ради одного проект смысла не более, чем учиться на права и покупать машину ради поездки в булочную в соседнем доме.

Выходом послужил найденный “mikroPascal PRO for ARM” от MikroElektronika. Если честно, я уже работал с “mikroPascal PRO for PIC” на пике популярности PIC чипов. Впечатления остались не очень хорошие. Компилятор “со странностями”, оболочка тоже не отличалась стабильностью и дружественным интерфейсом.

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

И так, что мы имеем на руках:
  • Плату stm32f4discovery;
  • mikroPascal PRO for ARM с лицензионном ключем (взято у товарища. потом придется вернуть). Без ключа — ограничение в 2 КВ на размер кода;
  • Инженер, которого в ВУЗе учили исключительно Pascal.

Задача: освоить программирование микроконтроллера без единой строчки Си кода.

Итак приступим…
Читать дальше →
Total votes 19: ↑16 and ↓3 +13
Comments 20

Производительность VMware vSphere 5.5 и 6.0 — настройки, соображения. Perfomance Best Practices

Reading time 8 min
Views 58K

Проштудировав документы Perfomance Best Practices for vSphere 5.5 и Perfomance Best Practices for vSphere 6.0, не выявил особых расхождений в настройке, как и чего-то дополнительно специфичного для vSphere 6.0.

Большая часть написанного умещается в стандартные рекомендации формата «используйте совместимое и сертифицированное оборудование» и «при сайзинге ВМ выделяйте ресурсы (vCPU, vRAM) в объёме не более необходимого».

Тем не менее, базовые вещи решил оформить отдельным постом, немного переструктурировав, избавив от «воды» и некоторых отсылок и замечаний, которые являются слишком специфичными и для большинства реализаций являются скорее вредными чем полезными. В сухом остатке остались рекомендации, советы и соображения, проверенные и протестированные на практике и применимые для 90% инфраструктур VMware vSphere и standalone ESXi. Разбавленные общими соображениями и дополнениями.
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 28

Геолокация без GPS (часть 2)

Reading time 4 min
Views 23K
wifi Здравствуйте!
После предыдущей статьи (часть 1) я получил много отзывов о работе открытого API геолокации по WiFi и вышкам мобильных сетей.
В этот раз я хочу представить свои исправления, лицензирование проекта, геопозиционирование по нескольким точкам доступа, кейсы использования и самое главное — текущие проблемы
Узнать больше
Total votes 16: ↑13 and ↓3 +10
Comments 8

Ребята, которые делают говорящего робота для умного дома, раздают платы

Reading time 2 min
Views 20K
Добрый день, хабражители!

vk.com/rtrg?r=MyfvmSagVGcKoVRPBQ92U5CfxIhCPah9BpgCNi*VQ5Z*GZClBfq8O6Xqoc4FgyLmY/t2xfXW*b/pLNakil70J2BgItRALRcbqLdyvvbQaL48Y3InrmCX91lp3jlslzoTrQWAQ2odZccwu06QSKcDISHi4yplYcjlvQQqCvYweCs-&pixel_id=1000020818
Как видно из нашего профиля — наша компания занимается разработкой и производством интеллектуального домашнего помощника Лекси.

За полтора года работы у нас накопилось немного лишнего железа, которое мы уже не используем и оно нам не нужно. Мы хотим отдать его для опытов в хорошие руки.

image
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Comments 51

Как определить лицо на фотографии с помощью PHP

Reading time 3 min
Views 39K
Определение лиц используется в соцсетях, фото-редакторах, видеочатах, умной капче, time tracking программах — можно придумать еще множество применений этой функции.
image
Читать дальше →
Total votes 36: ↑26 and ↓10 +16
Comments 13

Детекция кожи в Wolfram Language (Mathematica)

Reading time 5 min
Views 11K

Перевод поста Matthias Odisio "Seeing Skin with Mathematica".
Скачать файл, содержащий текст статьи, интерактивные модели и весь код, приведенный в статье, можно здесь.
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.

Детекция кожи может быть довольно полезной — это один из основных шагов к более совершенным системам, нацеленным на обнаружение людей, распознавание жестов, лиц, фильтрации на основе содержания и прочего. Несмотря на всё вышеперечисленное, моя мотивация при создании приложения заключалась в другом. Отдел разработки и исследований в Wolfram Research, в котором я работаю, подвергся небольшой реорганизации. С моими коллегами, которые занимаются вероятностями и статистикой, которые стали находиться ко мне значительно ближе, я решил разработать небольшое приложение, которое использовало бы как функционал по обработке изображений в Mathematica, так и статистические функции. Детекция кожи — первое, что пришло мне в голову.

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

Skin detection model
Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Comments 6

Как я Asterisk'ом шлагбаумы открывал

Reading time 9 min
Views 46K
image

Добрый день, жители хабра.

Хочу поделиться интересным, на мой взгляд, вариантом использования Asterisk.

Предисловие: у клиента имеются две парковки, въезд на которые регулируется шлагбаумами с gsm-модулями. То есть владелец парковочного места набирает номер сим-карты, установленной в модуле и въезжает на территорию. Но, как известно, если номер знает один — его знают все, поэтому платная парковка хаотично превращается в бесплатную. Особенность gsm-модуля заключается в том, что звонок проходит без поднятия трубки, соответственно оператор связи не может предоставить детализацию звонков по номеру.

Вот с такими исходными данными мне предстояло работать, что из этого вышло — под катом.

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 24

Удаленная инъекция Wi-Fi кадров

Reading time 4 min
Views 47K
image

Стандарт WiFi 802.11n использует механизм агрегации кадров для уменьшения накладных расходов при передаче данных.
Для этого несколько кадров объединяются в один. При этом маркер разделителя кадров передается вместе с данными.
Это позволяет сформировать данные, которые при прохождении через WiFi устройство будут интерпретированы им как отдельные кадры.

То есть имея контроль над потоком данных передаваемых от сервера клиенту (например при загрузке файла с сервера атакующего) или от клиента к серверу, можно генерировать произвольные пакеты на всех уровнях OSI:

  • Пакет с любыми заголовками RadioTap: Beacon, Probe Request/Respone, Deauthentication
  • L2 уровень: указать любой MAC адрес в заголовках пакета, можно производить ARP спуфинг
  • L3/L4 уровень: скрафтить любой TCP/UDP/ICMP пакет с любыми заголовками IP
  • и так далее


Уязвимости подвержены только открытые сети стандарта 802.11n.
Читать дальше →
Total votes 53: ↑52 and ↓1 +51
Comments 19

Делаем детектор движения, или OpenCV — это просто

Reading time 11 min
Views 113K
Надо оправдывать название компании — заняться хоть чем-то, что связано с видео. По предыдущему топику можно понять, что мы не только чайник делаем, но и пилим «умное освещение» для умного дома. На этой недели я был занят тем, что ковырял OpenCV — это набор алгоритмов и библиотек для работы с компьютерным зрением. Поиск обьектов на изображениях, распознание символов и все такое прочее.

На самом деле что-то в ней сделать — не такая сложная задача, даже для не-программиста. Вот я и расскажу, как.
Читать дальше →
Total votes 45: ↑42 and ↓3 +39
Comments 7

Работа с ESP8266: Первоначальная настройка, обновление прошивки, связь по Wi-Fi, отправка-получение данных на ПК

Reading time 7 min
Views 414K
На Хабре уже было пару статей о чипе ESP8266 китайской компании Espressif. Статья №1 и Статья №2. Не так давно я получил плату ESP-01 для проведения тестирования. Кому интересно, прошу под кат.
Подробности
Total votes 22: ↑22 and ↓0 +22
Comments 42

Information

Rating
Does not participate
Location
Россия
Registered
Activity