WebSocket сервер на PHP. Пример готовки.

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

Рубрика: Программирование | Метки: , | Добавить комментарий

Запускаем модуль MP3-TF-16P без ардуин

photo_2022-08-03_22-59-59Мне понадобилось запустить модуль MP3-TF-16P в режиме проигрывания случайных треков. К сожалению, плеер сам не стартует воспроизведение при подаче питания. Необходима какая-либо команда — либо закоротить соответствующую ножку, либо подавать сигналы. На ножках функционал ограничен — только трек «плюс»/»минус». А вот согласно талмуда на модуль он поддерживает режим случайного выбора аудиофайлов (играет бесконечно), — для этого достаточно подать по UART посылку: 7E FF 06 18 00 00 00 EF. Но использование для этого отдельной платы (типа ардуины) как-то увеличивает конструкцию. Хотелось-бы заминималистичить всё это.. Читать далее

Рубрика: «Начинающим», C++, Автоматика, Программирование, Радиолюбитель, Технологии | Метки: , | Добавить комментарий

Ethernet IR remote controller

Eth_IR_ControllerНесмотря на тотальную цифровизацию головных станций, нередко у операторов трудятся старички-приставки, управление которых возможно только через пульт ДУ. Данный проект позволяет подавать инфракрасные команды на такие устройства через локальную сеть. Как вариант также можно управлять и кондиционером. Читать далее

Рубрика: C++, Автоматика, Программирование, Радиолюбитель, Телевидение | Метки: , , | Добавить комментарий

Arduino + GY-GPS6MV2 + 0.91 OLED

mainДанное устройство задумывалось как часы точного времени со спутников GPS, но потом было расширено показывать координаты LAT/LNG, высоту, скорость и направление движения. Схема подключения модулей, листинг скетча для Arduino IDE внутри статьи далее. Читать далее

Рубрика: «Начинающим», C++, Программирование, Радиолюбитель | Метки: , , | Добавить комментарий

Управление сетевым реле SR-201 через PHP

photo_2022-07-13_18-32-48Было приобретено в Китае сетевое реле SR-201. К сожалению, обнаружилось, что оно не имеет веб-интерфейса и было закинуто в долгую полку. Сейчас разгребаю завалы и решил таки его изучить поближе. Оказалось всё очень просто. Код и видео работы под катом.. Читать далее

Рубрика: PHP, Автоматика, Программирование, Радиолюбитель | Добавить комментарий

1.44inch LCD HAT дисплей для Raspberry Zero

небольшие зарисовки на python-е как работать с данным модулем (на нём кнопки и дисплей) Читать далее

Рубрика: Программирование | Метки: | Добавить комментарий

Простой тест на производительность сервера

Это тот случай, когда какую-то программу проще и быстрее написать, чем искать в интернете. Конечно такой тест производительности на PHP достаточно условный, но в целом всё-таки даёт представление о быстродействии вашей машины на Linux. Читать далее

Рубрика: Linux, PHP, Программирование | Метки: | Добавить комментарий

Обзор STC15W201S и подключение его к GSM-модулю M590E

bodyВ этой статье рассказывается об использовании популярного модуля из Китая M590E и стыковка его со сверхдешёвым китайским чипом STC15W201S (20 центов/шт). Также постараюсь сделать обзор этих несправедливо забытых у нас чипов, а также об их программировании. Читать далее

Рубрика: C++, Программирование, Радиолюбитель | Метки: , | Добавить комментарий

Сравнение двух чисел LONG на ассемблере для 8-битных PIC16

asm_compareДля проекта TVCAS необходимо сравнивать время активной подписки со временем из ECM-пакета. UNIX-время представлено в виде числа LONG размером 4 байта. Т.к. контроллер 8-битный, работа ведётся с одним байтом. Тривиальная задача, но долго ломал голову как сравнить 4 байта через один. Сначала пошёл, как мне показалось по лёгкому пути — была идея сравнивать биты этих чисел, начиная со старших разрядов. Но такой путь в итоге оказался велосипедистым. В итоге решил действовать стандартным способом, как и для CHAR-овских переменных — использовать разность чисел с последующей проверкой битов признаков (Z, C в регистре STATUS).

Читать далее

Рубрика: C++, Программирование, Радиолюбитель | Метки: | Добавить комментарий

Библик для хранения эмоджиконов в базе данных MySQL (MariaDB)

Лайба работает так, что символы эмоджиконов ? ? ? предствляются как их html-сущности: ? ? ?
Этот принцип даёт возможность хранить текст при любой кодировке таблицы базы.
Как использовать.

#include __DIR__ . "/emojicon.php";
$text = "Это мой текст, где есть эмоджикон ?";
$text = emojicon($text); // теперь $text = "Это мой текст, где есть эмоджикон & #128512; ";
// второй параметр TRUE позволяет обратить замену, т.е. из html-кодов сделать символы иконок
$text = emojicon($text, true); // теперь $text опять = "Это мой текст, где есть эмоджикон ?";

Скачать emojicon.php.

Рубрика: PHP, Полезные фишки на сайт, Программирование | Метки: | Добавить комментарий