ФОРУМ КУПИТЬ

Последние статьи

ВСЕ СТАТЬИ

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
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:

(необязательно, не отображается на сайте)


Сортировка комментариев: Последние сверху | Первые сверху