Последние статьи из блога
- MegaD-485-TTL - изолированный конвертер индустриального класса
- MegaD-4VC - подключаем сигналы 0-10В и 4-20мА к контроллеру
- MegaD-4CM - высокоточный 4-х канальный измеритель тока
- MegaD-4US - 4-х канальный датчик напряжения на DIN-рейку
- Как я боролся с собаками с помощью нейросети
- Интеграция ультразвукового датчика скорости и направления ветра
- Установка WiFi-камеры на робота-газонокосилку
- Твердотельный датчик направления и скорости ветра. Эксперимент
- iPhone на стене в качестве панели управления домом
- MegaD-16M-XT - подсветка выключателей и не только
- Переделка выключателей в кнопки и мини-обзор текущего рынка
- RadSens - модульный счетчик Гейгера с интерфейсом I2C
- "U" - значит универсальный. Обзор модуля MegaD-16U-XT
- SCD4x - современная альтернатива для измерения концентрации CO2
- HTU31D - новый датчик температуры и влажности с нагревательным элементом
- Измерение коэффициента пульсации ламп с помощью MegaD-2561
I2C-PHP. Поддержка работы с I2C-устройствами для MegaD-328/2561
31/12/2016 11:53:02
На этой странице собраны все скрипты, которые могут использоваться для работы с различными I2C-устройствами с помощью контроллеров MegaD-328/2561.
Скрипт позволяет серверу/компьютеру/мини-компьютеру работать с любыми I2C-устройствами, подключенными к разным контроллерам.
Библиотека I2C-PHP предоставляет возможность без изменения кода прошивки контроллера обеспечить работы с любым I2C-устройством, написав для этого драйвер или используя уже готовый.
Драйвер для библиотеки I2C-PHP - это простой скрипт, в котором описана последовательность команд для обмена информацией с I2C-устройством.
I2C-устройства можно подключать к любым портам контроллеров MegaD-328/MegaD-2561. Необходимо только одно условие - наличие у порта подтяжки для работы с цифровыми датчиками.
Таким образом, I2C-устройства можно подключить к любому порту через исполнительный модуль MegaD-14-IN или без исполнительного модуля к любому порту разъема XT2 контроллера MegaD-2561
Библиотека I2C-PHP
Последняя версия 1.4 от 11.08.2016
i2c-php-lib.zip
Библиотека поддерживает три режима работы. Режим работы задается в драйвере с помощью команды типа: define("V", "1");
1 - Полностью программный режим (наиболее медленный);
2 - Частично аппаратный режим (значительно ускоряется передача данных);
3 - Аппаратный режим. Поддерживается только контроллером MegaD-2561! (высокая скорость всех операций)
Драйверы для I2C-PHP
Драйвер состоит из двух файлов: сам драйвер (файл с именем mod_i2c_xxx.php) и пример его использования(файл с именем mod_dev_xxx.php)
Файл драйвера трогать не нужно.
В файле с примером задаются следующие параметры:
define("SCL", "30"); // Порт, к которому подключена линия SCL. На датчиках этот провод так и подписан SCL
define("SDA", "31"); // Порт, к которому подключена линия SDA. На датчиках этот провод так и подписан SDA
define("MD", "http://192.168.0.14/sec/?"); // IP-адрес контроллера и паролья
define("V", "2"); // Выбор режима работы. Если у вас MegaD-2561, обязательно укажите "3".
Последовательность действий:
1. Скачать библиотеку i2c-php-lib.zip
2. Скачать нужный драйвер.
3. Подключить к MegaD устройство, работающее по шине I2C.
4. Открыть файл с примером mod_dev_xxx.php, задать к каким портам подключен датчик, IP-адрес/пароль для доступа к контроллеру.
5. Запустить скрипт командой php mod_dev_xxx.php (предполагается, что в системе уже установлен интерпретатор PHP).
Датчик освещенности BH1750
Статья о BH1750
i2c-php-bh1750.zip - драйвер для BH1750
Пример использования:
$lux = get_lux(); echo "Освещенность в люксах (Lx): $lux";
Датчик атмосферного давления BMP180
Статья о BMP180
i2c-php-bmp180.zip - драйвер для BMP180
Пример использования:
$pressure = get_pressure(); echo "Атмосферное давление (мм.рт.ст.): $pressure"; $temperature = get_temperature(); echo "Температура (гр. C): $temperature";
Датчик температуры и влажности HTU21D
Статья о HTU21D
i2c-php-htu21d.zip - драйвер для HTU21D
Пример использования:
$temperature = get_htu21d_temperature(); echo "Температура (гр. C): ".$temperature; $humidity = get_htu21d_humidity(); echo "Относительная влажность (%): ".$humidity; $hum_compensated = $humidity + (25 - $temperature) * -0.15; echo "Относительная влажность (%, комп.): ".$hum_compensated;
Важно! MegaD-2561 может работать с датчиками HTU21D самостоятельно без каких-либо дополнительных библиотек.
Пример HTTP/GET запросов к контроллеру для получения значений температуры и влажности.
Отображение влажности http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=htu21d Отображение температуры http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=htu21d&i2c_par=1
OLED дисплей SSD1306
Статья о SSD1306
i2c-php-ssd1306.zip - драйвер для SSD1306
Пример использования:
ssd1306_init();
ssd1306_clear_display();
ssd1306_write_text("Влажность: 47%", "verdana_10", 0, 2);
ssd1306_write_text(" ХОРОШЕГО ДНЯ!", "mistral_10", 0, 5);
//ssd1306_draw_pic("ab_log_logo");
Датчик освещенности TSL2591
Статья о TSL2591
i2c-php-tsl2591.zip - драйвер для TSL2591
Пример использования:
$lux = get_lux(); echo "Освещенность в люксах (Lx): $lux";
Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.
Добавить комментарий:
Сортировка комментариев: Последние сверху | Первые сверху