Как стать автором
Обновить
40
0

Пользователь

Отправить сообщение

Как сделать солнечный фонарик своими руками (часть 1)

Время на прочтение8 мин
Количество просмотров47K


Солнечные фонарики можно смело разделить на несколько групп, это «авторские», сделанные из каких — то достаточно уникальных вещей и остроумные по задумке, мини — прожекторы, предназначенные для освещения по направлению, или подсветки сверху цветочных клумб и рядовые солдаты дачного освещения — классические фонарики на столбике предназначенные для освещения дорожек. Как и из чего их можно сделать я расскажу в данной статье. Также будет рассмотрено несколько вариантов исполнения электроники для тенистых участков сада, где подзарядка фонарика от солнца затруднена и яркостью освещения придётся немного поступиться.
Узнать больше
Всего голосов 58: ↑58 и ↓0+58
Комментарии52

jl-sql: SQL-запросы по JSON-логами в командной строке

Время на прочтение8 мин
Количество просмотров10K

Вступление никому не интересно, поэтому начну сразу с примеров использования


json-pipe-sql
% cat log.json

{"type": "hit", "client": {"ip": "127.1.2.3"}}
{"type": "hit", "client": {"ip": "127.2.3.4"}}
{"type": "hit", "client": {"ip": "127.3.4.5"}}
{"type": "hit", "client": {"ip": "127.3.4.5"}}
{"type": "hit", "client": {"ip": "127.1.2.3"}}
{"type": "click", "client": {"ip": "127.1.2.3"}}
{"type": "click", "client": {"ip": "127.2.3.4"}}

Выполняем запрос:


% cat log.json | jl-sql 'SELECT client.ip, COUNT(*) AS count WHERE type = "hit" GROUP BY client.ip'

{"client":{"ip":"127.1.2.3"},"count":2}
{"client":{"ip":"127.2.3.4"},"count":1}
{"client":{"ip":"127.3.4.5"},"count":2}
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии23

Работа с радиомодулями SI4432

Время на прочтение12 мин
Количество просмотров76K
В статье рассмотрены функциональные особенности работы радиомодуля на микросхеме ISM (industrial, scientific and medical radio bands) трансивера SI4432. Также приведены простейшие примеры программной инициализации модуля и описаны некоторые возможные вариации настройки.


Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии22

Радиомодем за 7 долларов

Время на прочтение6 мин
Количество просмотров136K
Доброе время суток!
Расскажу я как можно собрать себе радиомодем мощностью 100мВт на 433МГц, по стоимости выходящий примерно на 6-7 долларов. Мощный радиомодем за 200 рублей — заманчиво? Тогда начнём.
Внешний вид
Требуются скиллы пайки немного выше среднего и опыт заказа в интернет-магазинах.
Читать дальше →
Всего голосов 85: ↑84 и ↓1+83
Комментарии80

Программируем управление освещением по датчикам движения и освещения на Node-RED

Время на прочтение16 мин
Количество просмотров90K
В русскоязычном интернете пока мало статей о такой среде программирования как Node-RED. Данная статья приоткроет тайну завесы об этом продукте и покажет на примере создания алгоритма управления освещением по датчикам движения как просто с помощью Node-RED можно реализовать различные сценарии и правила автоматизации умного дома в полностью в графическом виде без написания какого-либо кода.


Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии32

Своя компания в США без головной боли

Время на прочтение2 мин
Количество просмотров31K
Один из лидеров процессинга пластиковых карт в США Stripe предлагает разработчкам супер-услугу: комплексную регистрацию бизнеса в США. Сервис называется Atlas.

Что включено:
  • Собственно, новая компания в США.
  • Регистрация в налоговой и счет в банке
  • Естественно, счет в Stripe для приема пластиковых карт онлайн
  • Юридические и налоговые консультации
  • Кредит в AWS аж на $15000


Ну, и самое главное: за все это счастье они просят всего лишь $500, а для открытия счета лично в США ехать не надо!
Это буквально революция, чесслово.
Читать дальше →
Всего голосов 29: ↑22 и ↓7+15
Комментарии40

Щелкаем реле правильно: коммутация мощных нагрузок

Время на прочтение3 мин
Количество просмотров237K
Привет, Geektimes!

Управление мощными нагрузками — достаточно популярная тема среди людей, так или иначе касающихся автоматизации дома, причём в общем-то независимо от платформы: будь то Arduino, Rapsberry Pi, Unwired One или иная платформа, включать-выключать ей какой-нибудь обогреватель, котёл или канальный вентилятор рано или поздно приходится.

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

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



Я же хочу рассказать про простую и довольно очевидную, но при этом редко встречающуюся схему, умеющую вот такое:

  • Гальваническая развязка входа и нагрузки
  • Коммутация индуктивных нагрузок без выбросов тока и напряжения
  • Отсутствие значимого тепловыделения даже на максимальной мощности


Но сначала — чуть-чуть иллюстраций. Во всех случаях использовались реле TTI серий TRJ и TRIL, а в качестве нагрузки — пылесос мощностью 650 Вт.

Читать дальше →
Всего голосов 72: ↑72 и ↓0+72
Комментарии156

Анатомия драйвера

Время на прочтение5 мин
Количество просмотров26K
Опять вернёмся в традиционную область разработки операционных систем (и приложений для микроконтроллеров) — написание драйверов.

Я попробую выделить некоторые общие правила и каноны в этой области. Как всегда — на примере Фантома.

Драйвер — функциональная компонента ОС, ответственная за отношения с определённым подмножеством аппаратуры компьютера.

С лёгкой руки того же Юникса драйвера делятся на блочные и байт-ориентированные. В былые времена классическими примерами были драйвер диска (операции — записать и прочитать сектор диска) и драйвер дисплея (прочитать и записать символ).

В современной реальности, конечно, всё сложнее. Драйвер — типичный инстанс-объект класса, и классов этих до фига и больше. В принципе, интерфейс драйверов пытаются как-то ужать в прокрустово ложе модели read/write, но это самообман. У драйвера сетевой карты есть метод «прочитать MAC-адрес карты» (который, конечно, можно реализовать через properties), а у драйвера USB — целая пачка USB-специфичных операций. Ещё веселее у графических драйверов — какой-нибудь bitblt( startx, starty, destx, desty, xsize, ysize, operation ) — обычное дело.

Цикл жизни драйвера, в целом, может быть описан так:

  • Инициализация: драйвер получает ресурсы (но не доступ к своей аппаратуре)
  • Поиск аппаратуры: драйвер получает от ядра или находит сам свои аппаратные ресурсы
  • Активация — драйвер начинает работу
  • Появление/пропадание устройств, если это уместно. См. тот же USB.
  • Засыпание/просыпание аппаратуры, если это уместно. В контроллерах часто неиспользуемая аппаратура выключается для экономии.
  • Деактивация драйвера — обслуживание запросов прекращается
  • Выгрузка драйвера — освобождаются все ресурсы ядра, драйвер не существует.


(Вообще я написал в прошлом году черновик открытой спецификации интерфейса драйвера — см. репозиторий и документ.)

Мне известны три модели построения драйвера:

  • Поллинг
  • Прерывания
  • Нити (threads)

Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии13

STM32 и LCD, быстрая заливка экрана

Время на прочтение12 мин
Количество просмотров73K
В настоящее время получили распространение различные жидкокристаллические дисплеи, которые отлично подключаются к контроллерам семейства STM32. В данной статье речь пойдет об одном из распространенных контроллеров STM32F103C8T6 и дисплее 7" на контроллере SSD1963. Оба в виде законченных узлов легко доступны на Aliexpress и относительно недорого стоят. Конечно, все рассмотренное ниже справедливо и для других дисплеев с параллельным интерфейсом и большинства контроллеров STM32.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии21

ssh: Вытаскиваем для себя чужой порт из-за NAT

Время на прочтение2 мин
Количество просмотров40K

Что делает ssh -R © erik, unix.stackexchange.com

Подключиться к сервису за NAT, имея человека рядом с сервисом, вооруженного ssh, и белый ip у себя.

Опция -R


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

То есть нам нужно поднять sshd, попросить человека выполнить

$ ssh -N -R server_port:target:target_port sshd_server

И у нас на машине с sshd откроется порт server_port, который будет туннелироваться в target:target_port в сети этого человека.

Как в sshd_config ограничить права

... а также запустить sshd от пользователя
Всего голосов 38: ↑31 и ↓7+24
Комментарии10

Удаленный мониторинг и управление микроклиматом в загородном доме

Время на прочтение9 мин
Количество просмотров36K
Что имеем:
  • Двухэтажный таунхаус, предназначенный для круглогодичного проживания
  • Централизованное электроснабжение (как всегда в загородных домах, очень нестабильное)
  • Централизованное холодное водоснабжение
  • Централизованное газоснабжение
  • Газовый отопительный котел Protherm Gepard


Что хотим получить
  • Возможность удаленного мониторинга микроклимата в доме (чтобы на душе было спокойно в случае долгого отсутствия)
  • Возможность удаленного управления этим самым микроклиматом (уменьшить температуру обогрева с целью экономии газа, увеличить температуру перед возвращением домой)
  • Возможность удаленного снятия показаний счетчиков ресурсов, подлежащих оплате (счетчика расчета газа, воды и электроэнергии)
  • Стоимость устанавливаемого оборудования должна быть экономичная
  • Стоимость эксплуатации системы должна быть минимальная

Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии18

Продление жизни аккумуляторам электроинструмента

Время на прочтение3 мин
Количество просмотров90K
image
Я думаю все любители DIY имеющие аккумуляторный инструмент знают, что аккумуляторы штука недолговечная.
А купить замену бывает не так просто. И дело зачастую не в цене (хотя и цена аккумуляторы для профессионального инструмента может быть совсем не детской), а в том, что нереально найти нужную модель.
Я сам столкнулся с этой проблемой после двух лет эксплуатации профессионального шуруповерта с 18V аккумуляторами на 1,5А*ч.
Несмотря на то, что я предусмотрительно докупил 2 дополнительных батареи в комплект к двум шедшим в комплекте в последнее время все 4 стали работать неприлично мало и вопрос встал ребром. Дело осложнялось тем, что итальянский производитель, увы, разорился пару лет назад. Торговая марка была продана китайцам, а сама линейка профессионального инструмента снята с производства. Так что простое решение «выкинуть и купить новые» не проходило.
Осторожно — много фото.
Пришлось браться за отвертку и включать голову
Всего голосов 86: ↑83 и ↓3+80
Комментарии63

Программа для расчета минимальной цены радиодеталей в реальном времени

Время на прочтение5 мин
Количество просмотров47K
Важнейшим вопросом в разработке радиоэлектронных устройств всегда является вопрос «сколько это будет стоить?» Причем точный ответ желательно знать еще до того, как вы втянулись в дебри разработки и вложились в нее временем и средствами. Чаще всего разработчики сосредотачивают внимание на себестоимости комплектующих.

На самом деле, расчет себестоимости по списку деталей — это неприятный и рутинный процесс, связанный с долгими поисками по on-line каталогам, обзвоном дистрибуторов, перепиской и ожиданием ответов и проч. и проч. Но хуже даже не это, а то, что это итерационный процесс. Увидев вдруг, что себестоимость оказалась выше допустимой, разработчик начинает искать другие варианты схемотехники и другие комплектующие. И снова поиски…. А рутина — это враг разработчика. Чтобы ее избежать, многие жертвуют оптимальностью. Но, к счастью, эту проблему можно облегчить.
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии17

Runscope: удобный тул для тестирования API

Время на прочтение3 мин
Количество просмотров32K

Back-end не всегда функционирует так идеально, как указано в API-спецификации. Например, кто-нибудь забывает внести обязательный параметр в JSON-строку выдачи или вместо «0» решает вписать null. Если такие данные проникают в мобильное приложение, последствия могут быть самые неприятные.
Сегодня я расскажу об инструменте, который используется для выявления таких случаев. Это Runscope.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии8

Искусственный рассвет

Время на прочтение9 мин
Количество просмотров232K
Началось всё год назад. Перед Новым 2014 годом несколько пришел в упадок жизненный тонус. Процесс самокопания привел к следующей мысли:



— А, что ж так темно-то, Господи? © День радио.

Впрочем, для человека, живущего зимой по летнему времени — мысль вполне естественная.
Что же делать?
Всего голосов 187: ↑185 и ↓2+183
Комментарии87

STM32 и FreeRTOS. 4. Шаг в сторону HAL

Время на прочтение5 мин
Количество просмотров83K
HAL 9000: I'm completely operational, and all my circuits are functioning perfectly.
или это должно быть первой статьей, но я почему-то всегда пишу подобное ближе к концу

Раньше было про потоки, про семафоры и очереди

Одним из основных препятствий для перехода на STM32 является обилие текстов, инструкций и мануалов, описывающих работу с контроллером. Виновником этого обилия стала сама STMicroelectronics, которая поначалу планомерно запутывала своих пользователей, а затем предлагала неверные варианты выхода.

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

Но не так давно ST поняла, в какую яму она угодила и начала усиленно из нее выбираться, привлекая новые силы. И именно благодаря этому сейчас время старта сократилось до несуразно маленьких величин. Как это выглядит на практике? Добро пожаловать под кат.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии18

STM32 и FreeRTOS. 1. Развлечение с потоками

Время на прочтение7 мин
Количество просмотров149K
Данный цикл из 5 статей рассчитан на тех, кому стало мало возможностей привычных «тинек» и ардуинок, но все попытки перейти на более мощные контроллеры оканчивались неудачей или не приносили столько удовольствия, сколько могли бы. Все ниженаписанное проговаривалось мной много раз на «ликбезе» программистов нашей студии (которые часто сознавались, что переход с «тинек» на «стмки» открывает столько возможностей, что попадаешь в ступор, не зная за что хвататься), поэтому смею надеяться, что польза будет всем. При прочтении подразумевается, что читающий — человек любопытный и сам смог найти и поставить Keil, STM32Cube и понажимать кнопки «ОК». Для практики я использую оценочную плату STM32F3DISCOVERY, ибо она дешевая, на ней стоит мощный процессор и есть куча светодиодиков.

Каждая статья рассчитана на «повторение» и «осмысление» где-то на один околовечерний час, ибо дом, семья или отдых…



Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии35

STM32 и FreeRTOS. 2. Семафорим по-черному

Время на прочтение7 мин
Количество просмотров65K
Часть первая, про потоки

В реальной жизни часто случается так, что некоторые события происходят с разной переодичностью (а могут и вообще не происходить). Скажем, заказ сока в «Макдональдсе», нажатие кнопки пользователем или заказ лыж в прокате. А наш могучий микроконтроллер должен все это обрабатывать. Но как это сделать наиболее удобно?

Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии5

Архитектура мобильного клиент-серверного приложения

Время на прочтение33 мин
Количество просмотров138K

К добавлению внешнего сервера рано или поздно приходит любой сложный проект. Причины, при этом, бывают совершенно различные. Одни, загружают дополнительные сведения из сети, другие, синхронизируют данные между клиентскими устройствами, третьи- переносят логику выполнения приложения на сторону сервера. Как правило, к последним относятся большинство «деловых» приложений. По мере отхода от парадигмы «песочницы», в которой все действия выполняются только в рамках исходной системы, логика выполнения процессов переплетается, сплетается, завязывается узлами настолько, что становится трудно понять, что является исходной точкой входа в процесс приложения. В этом момент, на первое место выходит уже не функциональные свойства самого приложения, а его архитектура, и, как следствие, возможности к масштабированию.
Заложенный фундамент позволяет либо создать величественный архитектурный ансамбль, либо «накурнож» — избушку на куриных ножках, которая рассыпается от одного толчка «доброго молодца» коих, за время своего существования повидала видимо — невидимо, потому что, глядя на множественные строительные дефекты заказчик склонен менять не исходный проект, а команду строителей.
Планирование — ключ к успеху проекта, но, именно на него выделяется заказчиком минимальный объем времени. Строительные паттерны — туз в рукаве разработчика, который покрывает неблагоприятные комбинации где время — оказывается решающим фактором. Взятые за основу работающие решения позволяют сделать быстрый старт, чтоб перейти к задачам, кажущиеся заказчику наиболее актуальными (как-то покраска дымоходной трубы, на еще не возведенной крыше).
В этой статье я постараюсь изложить принцип построение масштабируемой системы для мобильных устройств, покрывающей 90-95% клиент-серверных приложений, и обеспечивающей максимальное отдаление от сакраментального «накурножа».
Читать дальше →
Всего голосов 20: ↑11 и ↓9+2
Комментарии7

Автозапуск приложения Node.js на CentOS 6.2

Время на прочтение3 мин
Количество просмотров16K
Для автозапуска приложений Node.js есть много способов, но после некоторых поисков мне удалось отыскать такое решение, которое и работает, и не представляет большой трудности.

Сперва я испробовал forever работает превосходно, но только до тех пор, пока вам не понадобится запустить приложение при начальной загрузке системы. Я пробовал добавить строчку в /etc/rc.d/rc.local — иногда она срабатывала, а иногда нет, и до сих пор я не разобрался, почему так.

Затем я поглядел на Upstart и на Monit. Upstart сделал сочинение скрипта для автозагрузчика таким же простым, как autoexec.bat во времена DOS, а Monit умеет проверять приложение, чтобы убедиться, что оно всё время работает.

Тут я понял, что моя потребность проста: во-первых, запускать приложение при начальной загрузке системы, а во-вторых, перезапускать, если оно упадёт (с приложениями Node.js такое случается) — и одного upstart достаточно для того, чтобы устроить и то, и другое.
Читать дальше →
Всего голосов 29: ↑20 и ↓9+11
Комментарии10
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Харьков, Харьковская обл., Украина
Дата рождения
Зарегистрирован
Активность