понедельник, 24 ноября 2014 г.

Работа с фискальными принтерами АТОЛ и Штрих-М из PHP

В процессе работы над парой проектов интернет-магазинов мне довелось подключать фискальные принтеры к PHP-приложениям. 1С не было и не планировалось. Значит подключать надо было напрямую к PHP безо всяких системных драйверов.
Значит надо было реализовать протокол обмена с фискальным принтером на PHP, благо для этого имелся качественный официальный мануал.
В статье выкладываю получившийся PHP драйвер для моделей сразу двух производителей: АТОЛ (FPrint-5200K) и Штрих-М (Штрих-Light 100).
Код расширяемый, и не составит труда допилить при необходимости до другой схожей модели того же производителя.

среда, 12 ноября 2014 г.

Баннерорезалка масштаба сети на BIND и nginx

Давно у меня зрело желание порезать рекламу в едином месте - на шлюзе домашней сети.
Задача эта так и висела бы, наверное, в TODO листе, если бы не мобильное приложение Real Racing 3. Какое-то время я рубился в эти гоночки, и все было отлично, но в один прекрасный день я узрел на экране гигантский баннер, а потом охапку баннеров поменьше в разных местах. Этого я стерпеть не мог..
Но мне не хотелось ставить squid ради этого дела, я особо не исследовал, но там же, наверное, придется всем клиентам сети прокси настроить? Явно не мой путь.

Итак, дано: шлюз (роутер) под debian (с поднятым DNS bind9), XEN-виртуалка для веб-разработки (debian, с поднятым nginx).
Требуется: порезать рекламу на всем, что подключается к серверу дома, хоть по WiFi, хоть по проводу.

Достигнутый итог: нет рекламы в skype на десктопе и в телефоне, мобильных приложениях, браузере (AdBlock отключен).
А подробнее - далее.

среда, 15 октября 2014 г.

nRF24L01. Энергосбережение 2: Путь самурая

В первой части мы научились работать с nRF вообще, во второй разобрались с тем, как запитать его так, чтобы не разориться на батарейках. Уже после ее публикации она была дополнена интересным, но пока мной не опробованным, вариантом №5 (бонусным), обещающим наиэффективнейший режим энергосбережения!

Напомню, суть его сводится к тому, что экономное устройство (в моем случае сенсорный выключатель) само периодически (раз в 64-128мс) обращается к роутеру за данными, а роутер отвечает либо пустым пакетом из нулей (например), либо пакетом данных, если таковой ожидает востребования. Сам роутер занимается тем, что передает пакеты от ПК в радиоэфир и обратно.
Причем ответный пакет передается через фичу W_ACK_PAYLOAD, что здорово упрощает работу и код прошивки приемника и передатчика (в частности переключение TX-RX-TX происходит в модуле само).

Более того, на ответный ACK-пакет, пришедший по этой фиче, на передававшей стороне (выключателе) помимо TX_DS генерируется отдельное прерывание RX_DR! Мне код выключателя вообще менять не пришлось, только регистры модуля при старте подтюнить! А, ну и добавить периодический пинг роутера спец.пакетом, в ответ на который тот должен W_ACK_PAYLOAD мне в ответ заряжать.
Короче подробности и Success Story - далее.

пятница, 29 августа 2014 г.

Ремонт кнопки блокировки HTC One V

Если у вашего HTC One V стала заедать кнопка блокировки, когда приходится нажимать ее с силой и срабатывает она далеко не с первого раза - ниже инструкция, как все починить с использованием любимых подручных средств: клея, скотча, бумажки и жвачки.

среда, 30 июля 2014 г.

Альтернативноэнергетический светильник в дачный туалет

За что я люблю программирование: написал код, и он работает всегда. Мне нравится этот принцип "сделал и забыл". Поэтому все больше увлекаюсь солнечнозапитанными устройствами. Солнечный элемент + аккумулятор - и какая-нибудь поделка будет работать чуть ли не вечно. Например тот же выносной датчик погодной станции, или телеметрия какая-то в саде-огороде. Как показал натурный эксперимент даже небольшая солнечная батарея на 6В может зарядить аккумулятор в 3.7 вольта не будучи облучаемой прямым солнечным светом. А при правильном подходе к энергосбережению, той небольшой энергии хватит, чтобы дожить до следующего утра.

четверг, 3 июля 2014 г.

Что внутри робота-пылесоса

Модель робота Panda X500, куплен в китае с бесплатной доставкой где то за 7500р.
Недавно стала тарахтеть щетка. А я только и жду, чего бы еще разобрать. Хожу по хате с отверткой и озираюсь..
Ну пылесос, так пылесос.

среда, 2 июля 2014 г.

DynDNS уволен! Организуем свой домен второго уровня с динамическим IP

Не так давно всеми любимый сервис dyndns.org "предложил" начать оплачивать услуги хостинга доменов.
This email is an reminder that Dyn's free hostname program will be ending on Wednesday, May 7th
Мол, "мы делаем наш сервис качественнее", переходите на VIP всего за N баксов, уж не помню сколько было, но пусть даже $1 - русские люди принципиально не платят за то, что раньше было халявой!
Подстава получилась довольно великая: на текущее DNS-имя (mex.homeip.net) у меня, разумеется, уже многое завязано и настроено, о нем знают друзья, коллеги. А теперь о нем придется забыть.

Ну и не очень то и надо, я всегда хотел организовать свой домен 2 уровня, который я полностью контролирую. Вот и повод нашелся.

пятница, 11 апреля 2014 г.

Компьютеризированный термос

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

Вообще шутка.. А термос не что иное, как одна из частей эксперимента по термоизоляции и замеру теплопотерь, в котором я буду проверять разные интересующие меня случаи. Для начала это будет термос, чайник и термопот.
Затем утепленные термос, чайник и термопот.

Буду замерять скорость остывания 800мл воды в зависимости от степени утепления девайса. Начальная температура - только что вскипевшая вода (потери на остывании при переливе в холодный термос в итоге дают около 90 градусов); конечная температура, при которой эксперимент заканчивается - переход с 40 на 39 градусов.

суббота, 5 апреля 2014 г.

Рекуператор за один вечер на коленке

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

Для чего из последнего была нарезана стопка квадратных листов со стороной 20см, которые впоследствии были склеены между собой Моментом так, что четные листы проводят поток под углом 90 градусов к нечетным.
Потом этот пирог был обернут картонным коробом, в местах соприкосновения углов пирога со стенками короба проложен оконный уплотнитель для устранения щелей и препятствия перетеканию воздуха.


пятница, 7 февраля 2014 г.

Ремонт посудомоечной машины Electrolux ESF2450

Нормальная машинка для ежедневного использования. На ней так и написано "Daily 4 Two".
Примерно через год я заметил под ней мыльные подтеки, еще через пару-тройку месяцев при очередной мойке раздался какой-то противный шум в районе помпы. Казалось будто она гоняет воду наполовину с воздухом. Затем последовала еще одна проблема - оказалось машинка стала мыть в холодной воде, перестала греть воду.

Ну, подумал я, привет отвертка.

четверг, 6 февраля 2014 г.

Энергосбережение при работе с nRF24L01

Даташит гласит, что в режиме RX трансивер ест 13.5мА.
Это довольно много для батарейных устройств. Постоянное потребление такого тока посадит аккум AAA (1000мАч, 1.2В, 360мАч в пересчете на 3.3В) за какие-то сутки, а это значит, что создавать долгоживущие устройства, в основном работающие в режиме ожидания команды, нам не светит?
Попробуем раскурить эту задачу, тем более, что куриво нехилое - 75 страниц даташита.
Впрочем, большая часть уже выкурена ранее

Какие есть варианты:
1. надеяться, что чип не потребляет столько, если в эфире тихо
2. надеяться, что чип в режиме энергосбережения (их два) держит ухо на макухе и таки палит эфир
3. возможно заниженная скорость обмена сэкономит еще немного
4. стараться всегда спать и просыпаться, проверяя эфир, как можно реже (зависит от требований к отзывчивости устройства)