Pull to refresh
2
0
Сергей Паньков @trapwalker

Backend, python

Send message

Хакаем CAN шину авто для голосового управления

Reading time8 min
Views119K


Современный автомобиль это не только средство передвижения, но и продвинутый гаджет с мультимедийными функциями и электронной системой управления агрегатами и кучей датчиков. Многие автопроизводители предлагают функции ассистентов движения, помощников при парковке, мониторинга и управления авто с телефона. Это возможно благодаря использованию в авто CAN шины к которой подключены все системы: двигатель, тормозная система, руль, мультимедиа, климат и др.

Мой автомобиль Skoda Octavia 2011 г. в. не предлагает возможностей управления с телефона, поэтому я решил исправить этот недостаток, а заодно и добавить функцию голосового управления. В качестве шлюза между CAN шиной и телефоном я использую Raspberry Pi с шилдом CAN BUS и WiFi роутер TP-Link. Протокол общения агрегатов авто закрытый, и на все мои письма предоставить документацию протокола Volkswagen отвечал отказом. Поэтому единственный способ узнать, как общаются устройства в авто и научиться ими управлять является реверс-инжиниринг протокола CAN шины VW.

Я действовал поэтапно:

  1. Разработка CAN шилда для Raspberry Pi
  2. Установка ПО для работы с CAN шиной
  3. Подключение к CAN шине авто
  4. Разработка сниффера и изучение протокола CAN шины
  5. Разработка приложения для телефона
  6. Голосовое управление с помощью Homekit и Siri

В конце видео голосового управления стеклоподъемником.
Читать дальше →
Total votes 81: ↑81 and ↓0+81
Comments110

Как определить местоположение по сетям сотовой связи (Cell ID)

Reading time4 min
Views286K

Карта Участники OpenStreetMap
 
Существует множество способов определения местоположения, такие как спутниковая навигация (GPS), местоположение по беспроводным сетям WiFi и по сетям сотовой связи.
 
В данном посте мы попытались проверить, насколько хорошо работает технология определения местоположения по вышкам сотовой связи в городе Минске (при условии использования только открытых баз данных координат передатчиков GSM).
 
Принцип действия заключается в том, что сотовый телефон (или модуль сотовой связи) знает, каким приемопередатчиком базовой станции он обслуживается и имея базу данных координат передатчиков базовой станции можно приблизительно определить своё местоположение.
Читать дальше →
Total votes 90: ↑88 and ↓2+86
Comments37

Выходим в Интернет с помощью модуля на SIM800L

Reading time14 min
Views78K

Привет всем неравнодушным! Сегодня предлагаю поговорить о миниатюрных GSM-модемах на базе чипа SIM800L. Области применения таких модулей весьма обширны: охрана дачи или дома, сигнализация в машине и многое другое, где требуется удаленная связь, а возможности подключиться к Wi-Fi нет. В том числе они прекрасно подходят для проектов IoT, потому что с их помощью можно не только отправлять сообщения или управлять телефонными звонками, но и подключаться к Интернету.

В данной статье рассмотрим:

- подключение модулей к переходнику USB-TTL для проверки и отладки;

- подключение модулей к платам Arduino для выхода в Интернет в условиях, когда нет доступа к Wi-Fi;

- код, который позволяет подключиться к объекту на платформе Rightech IoT Cloud, публиковать данные и получать команды.

Хочу узнать больше >>>
Total votes 26: ↑24 and ↓2+22
Comments29

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

Reading time5 min
Views34K
Только ленивый не слышал про умные дома — про них трубят на всех углах уже порядка десяти лет, в мире существуют сотни производителей гаджетов и оборудования и похоже, что интернет вещей станет главным трендом ближайшего десятилетия. На днях я решил разобраться, какие бывают умные дома, сколько они стоят и как можно самостоятельно собрать такую систему в моей киевской двухкомнатной квартире.
Читать дальше →
Total votes 17: ↑11 and ↓6+5
Comments10

Apache Airflow: делаем ETL проще

Reading time25 min
Views153K

Привет, я Дмитрий Логвиненко — Data Engineer отдела аналитики группы компаний «Везёт».


Я расскажу вам о замечательном инструменте для разработки ETL-процессов — Apache Airflow. Но Airflow настолько универсален и многогранен, что вам стоит присмотреться к нему даже если вы не занимаетесь потоками данных, а имеете потребность периодически запускать какие-либо процессы и следить за их выполнением.


И да, я буду не только рассказывать, но и показывать: в программе много кода, скриншотов и рекомендаций.



Что обычно видишь, когда гуглишь слово Airflow / Wikimedia Commons

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

Почему Вы должны попробовать FastAPI?

Reading time4 min
Views105K

image Лого взято из Github репозитория FastAPI


FastAPI — относительно новый веб-фреймворк, написанный на языке программирования Python для создания REST (а если сильно постараться то и GraphQL) API, основанный на новых возможностях Python 3.6+, таких как: подсказки типов (type-hints), нативная асинхронность (asyncio). Помимо всего прочего, FastAPI плотно интегрируется с OpenAPI-schema и автоматически генерирует документацию для вашего API посредством Swagger и ReDoc


FastAPI построен на базе Starlette и Pydantic.
StarletteASGI микро-фреймворк для написания веб-приложений.
Pydantic — библиотека для парсинга и валидации данных основанная на Python type-hints.

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

Введение в ASGI: становление асинхронной веб-экосистемы Python

Reading time8 min
Views53K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Introduction to ASGI: Emergence of an Async Python Web Ecosystem" автора Florimond Manca.



"Черепахи рядом с водоемом", Ricard Baraham на unsplash.com


Python не замыкается только на Data Science, веб-разработка на Python вернулась с новым асинхронным витком в развитии языка!


Сейчас происходит много важных событий в экосистеме веб-разработки на Python. Одним из основных драйверов этих изменений является ASGI — Asynchronous Standard Gateway Interface.


Я уже несколько раз упоминал ASGI в моем блоге, в частности, когда анонсировал Bocadillo (асинхронный open-source веб-фреймворк на Python — прим.пер.) и tartiflette-starlette (библиотека для построения GraphQL API поверх HTTP через ASGI — прим.пер.), но я никогда не писал подробное введение о нем. Теперь я это сделаю.


Эта статья нацелена на людей, интересующихся последними трендами в веб-разработке на Python. Я хочу пригласить вас на экскурсию, из которой вы узнаете, что такое ASGI, и что он означает для современной веб-разработки в мире Python.


Прежде чем мы начнем, я хотел бы рассказать, что недавно создал awesome-asgi — отличный список для отслеживания постоянно расширяющейся экосистемы ASGI.

Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments5

Overpass API: следующий уровень владения OpenStreetMap

Reading time12 min
Views22K

В своих различных геосервисах мы используем данные OpenStreetMap (OSM). Данные в OSM заносятся, в основном, через специальные программы-редакторы, про самые популярные из которых мы писали тут и тут. На программном уровне редакторы общаются с главным сервером через OSM API. Этот API работает как на чтение, так и на запись и предоставляет лишь минимально необходимые возможности. Через него выборку можно ограничить только прямоугольником, но не произвольной полигональной областью, также нет ни фильтрации данных, ни способов их преобразования перед отправкой клиенту. Но что делать, если тебе нужно выбрать данные из OSM, отсеив много лишнего, желательно сразу показать результаты на карте, и при этом ты ни разу не программист? Тут-то на помощь и приходит Overpass API — мощный инструмент запросов к данным OSM, и Overpass Turbo — веб-приложение, предоставляющее графический интерфейс к Overpass API и дополнительные удобства при работе с запросами.

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments10

Meshtastic – оперативно-тактический радиочат без сотовой связи и интернета. Часть 1. Знакомство

Reading time9 min
Views72K

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

Meshtastic — это проект, который позволяет построить свою частную радиосеть с очень большим временем автономной работы, используя недорогие радио модули LoRa и экономичные микроконтроллеры серии ESP32.

Радиомодем связаны с вашим смартфоном по сети Bluetooth. Для некоторых сценариев использования смартфон вообще не требуется.

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

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

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

Спаси себя сам и вокруг спасутся многие
Total votes 56: ↑56 and ↓0+56
Comments111

Meshtastic – оперативно-тактический радиочат без сотовой связи и интернета. Часть 2. Радиомодемы фирменные

Reading time7 min
Views41K

В предыдущей статье мы познакомились с проектом Meshtastic. Узнали, что можно построить собственный радиочат на основе Mesh-сети, обычного смартфона и радиомодема. Следующие логичные вопросы, которыми начали задаваться люди: И что дальше? Как эту сеть построить? Что прикупить?

Во второй части будет описано несколько фирменных заготовок для Meshtastic-модема с Aliexpress, их отличия и особенности применения. Если по какой-либо причине готовые изделия вас не интересуют, то есть возможность радиомодем собрать самому. Это совсем не сложно и под силу даже самому молодому и начинающему радиолюбителю. Интересно? Добро пожаловать под кат во вторую часть.

Купить или не купить? Если купить, то что?
Total votes 19: ↑19 and ↓0+19
Comments23

Meshtastic – оперативно-тактический радиочат без сотовой связи и интернета. Часть 3. Радиомодемы самодельные

Reading time10 min
Views30K

В первой части темы мы познакомились с проектом Meshtastic. Узнали, что можно построить собственный радиочат на основе Mesh-сети, обычного смартфона и радиомодема.

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

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

Собрать свой радиомодем совсем не сложно и под силу даже самому молодому и начинающему радиолюбителю. Интересно? Добро пожаловать под кат в третью часть.

Купить готовое? Отстаньте от меня – я сам!
Total votes 23: ↑23 and ↓0+23
Comments9

Meshtastic — оперативно-тактический радиочат без сотовой связи и интернета. Часть 4. Прошивка модема, выход в сеть

Reading time12 min
Views28K

Если вы добрались до 4-ой статьи, то, вероятно:

Вы уже знаете, что есть такая Meshtastic-радиосеть, описанная в первой части.

Ознакомились во второй части с фирменными решениями с Aliexpress по построению радиосети.

Или же, решились строить радиомодем самостоятельно, ознакомившись с материалами из третьей части.

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

Прошивайтесь, подключайтесь, общайтесь!
Total votes 15: ↑15 and ↓0+15
Comments26

Как работает ControlNet. Контролируемая генерация изображений

Level of difficultyHard
Reading time5 min
Views29K

Нейронные сети прошли долгий путь от генерации странных ЧБ-изображений до фантастических фотореалистичных сцен, которые не поддаются воображению. С помощью всего лишь короткой текстовой подсказки диффузионные нейросети могут создавать потрясающие изображения, неотличимые от обычных. Однако, какими бы впечатляющими ни были эти модели, в них отсутствует важнейший элемент — пользовательский контроль. Представьте, что вы можете указать точную форму, положение и позу объекта на изображении, которое вы хотите создать. Что ж, теперь это возможно благодаря новаторской технологии под названием ControlNet!
Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments8

Управление микроконтроллером через telegram-бот с обратной связью

Reading time8 min
Views27K

Как управлять различными устройствами: свет, вентиляция, полив, а также получать нужные данные от микроконтроллера.

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

Читать далее
Total votes 22: ↑21 and ↓1+20
Comments13

Квантовые компьютеры: материальная база

Reading time5 min
Views6.9K

Квантовые компьютеры – идея еще 1980-х, а всерьез за ними бегают последние два десятка лет, ибо они могут решать недоступные для обычных вычислительных машин задачи. Некоторые алгоритмы факторизации (разложения числа на простые множители, привет криптографии), поиска или оптимизации работают на квантовых компьютерах принципиально лучше, чем на обычных. Более того, они куда эффективнее обычных машин в различных квантовохимических расчетах, интересных ученым для предсказания химических свойств соединений или физических свойств материалов. На опытных квантовых компьютерах уже удавалось проводить такие расчеты для простых, фактически модельных соединений и материалов. Я собираюсь немного рассказать про необходимые для квантовых компьютеров материалы и степень пригодности их к промышленному производству на данный момент.

Спойлер: россказни про «вот сейчас мы разработаем квантовые компьютеры, и нужда в микроэлектронном производстве отпадет» – неправда.

Читать далее
Total votes 22: ↑19 and ↓3+16
Comments2

Создание приложения для чата в реальном времени с помощью Angular и Appwrite

Reading time11 min
Views2.3K

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

При создании веб-приложений с помощью Angular обычно требуется подключение к различным API для управления данными, аутентификации пользователей и, возможно, прослушивания обновлений данных в реальном времени. API для подключения к этим различным сервисам может быть реализовано через множество провайдеров. С помощью Appwrite вы можете делать все эти вещи, используя один бэкэнд. В этой статье мы покажем вам, как начать работу с Appwrite, аутентифицировать пользователей, управлять данными и прослушивать события в реальном времени с помощью приложения для чата.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments0

Этот восхитительный Юникод

Reading time27 min
Views93K


Перед вами обновляемый список самых замечательных «вкусностей» Юникода, а также пакетов и ресурсов

Юникод — это потрясающе! До его появления международная коммуникация была изнурительной: каждый определял свой отдельный расширенный набор символов в верхней половине ASCII (так называемые кодовые страницы). Это порождало конфликты. Просто подумайте, что немцам приходилось договариваться с корейцами, где чья кодовая страница. К счастью, появился Юникод и ввёл общий стандарт. Юникод 8.0 охватывает более 120 000 символов из более 129 письменностей. И современные, и древние, и до сих пор не расшифрованные. Юникод поддерживает текст слева направо и справа налево, наложение символов и включает самые разные культурные, политические, религиозные символы и эмодзи. Юникод потрясающе человечен, а его возможности сильно недооцениваются.
Читать дальше →
Total votes 64: ↑64 and ↓0+64
Comments56

Учим LLDB уточнять указатели на локальные переменные

Reading time7 min
Views3.1K

Представим процесс отладки программы на С++: перед нами есть указатель на какую-то переменную, и мы хотим знать, на что он указывает. Два варианта: если переменная глобальная, то любой современный отладчик назовет ее имя, и мы будем довольны. А вот если переменная локальная, то никакой полезной информации мы не получим.

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

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments3

Хорошая пломба vs плохая пломба

Reading time10 min
Views33K

Коффердам или изолирующий платок — одна из причин, почему современные пломбы служат лет так на 10 дольше

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

Особенно, если пломба свежая. Самостоятельно понять, что под ней идёт размеренная личная жизнь микроорганизмов, довольно сложно. Хорошая пломба мешает образованию кариеса и любому другому разрушению зуба.

Плохая пломба:
  1. Положенная на недочищенный кариес.
  2. Та, что выступает за границы зуба и мешает прочищать зуб и межзубное пространство. Там застревает пища и начинает гнить, портятся дёсна, образовывается кариес.
  3. Если в процессе установки на неё попала вода или микроорганизмы (материалы почти всех современных пломб этого не терпят). В итоге история та же: в микротрещины забивается пища, бактерии размножаются — привет, новый кариес.
  4. Та, которую поставили в слишком большую полость. Полимеризационная усадка, которую мы можем компенсировать в полостях небольших размеров, здесь приводит к краевым отрывам, либо создаёт предпосылки для отлома частей зуба.

Выступающую пломбу и мы, и пациенты можем увидеть. Остальные две — нет, пока пациент не придёт с болью. Всё остальное уже про эстетику, а не про безопасность.

Ниже я покажу конкретные случаи.
Читать дальше →
Total votes 53: ↑49 and ↓4+45
Comments30

Actions: как в GitHub, но в GitLab

Reading time20 min
Views15K

Привет! Меня зовут Артемий Окулов, я lead центра компетенций CI/CD в X5 Group.

То, чем мы с командой занимаемся, можно отнести к области под названием Developer Experience. В какой-то момент ИТ в компании достигает такой зрелости, что появляются tools team, enabling team и инициативы, направленные на повышение developer experience. Одной из таких инициатив мы и занимаемся. Если вкратце, мы хотим упростить старт новых продуктов в компании за счет предоставления шаблонов.

В X5 Group много web-сервисов, и с переходом на продуктовый подход виден рост количества команд, которые все чаще прибегают к их созданию. Конечно, каждая команда должна быть кросс-функциональной, чтобы успех реализации продукта зависел в большей степени от самой команды. Но часто мы сталкиваемся с тем, что найти инженера с ролью devops в команду — это задача нескольких месяцев. А терять столько времени на старте — непозволительная роскошь. Поэтому в компании ведутся работы по созданию “стартовых наборов”, решающих задачу минимум — быстрого старта разработки и создания dev-окружения силами самих разработчиков.

В поставку такого “стартового набора” входит и CI/CD pipeline. В этой статье, в частности, мы бы хотели поделиться подходом шаблонизации GitLab Pipelines, который мы стараемся продвигать у себя в компании, и рассказать про инструмент, который для этого разработали.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments27
1
23 ...

Information

Rating
Does not participate
Location
Белгород, Белгородская обл., Россия
Date of birth
Registered
Activity