Датчик CJMCU-6814 основан на микросхеме SGP30 от Sensirion и измеряет:
Подключите модуль CJMCU-6814 к Raspberry Pi по схеме:
Убедитесь, что I²C включён в Raspberry Pi:
sudo raspi-config → Interface Options → I2C → Enable
Проверьте, видит ли система датчик:
i2cdetect -y 1
Вы должны увидеть адрес 0x58 — это SGP30.
Для чтения данных используем официальную библиотеку от Adafruit:
sudo pip3 install adafruit-circuitpython-sgp30
Создайте тестовый скрипт read_sgp30.py:
import time
import board
import busio
import adafruit_sgp30
i2c = busio.I2C(board.SCL, board.SDA)
sgp30 = adafruit_sgp30.Adafruit_SGP30(i2c)
print("Инициализация SGP30...")
sgp30.iaq_init()
sgp30.set_iaq_baseline(0x8973, 0x8aae) # опционально: загрузка baseline
while True:
print("TVOC: {} ppb, eCO2: {} ppm".format(sgp30.TVOC, sgp30.eCO2))
time.sleep(1)
Запустите:
python3 read_sgp30.py
PHP не может напрямую работать с I²C, поэтому будем вызывать Python-скрипт из PHP.
Создайте скрипт /home/pi/sgp30_read_once.py:
#!/usr/bin/env python3
import board
import busio
import adafruit_sgp30
import sys
i2c = busio.I2C(board.SCL, board.SDA)
sgp30 = adafruit_sgp30.Adafruit_SGP30(i2c)
# Однократное чтение
print("{},{}".format(sgp30.TVOC, sgp30.eCO2))
Сделайте его исполняемым:
chmod +x /home/pi/sgp30_read_once.py
Теперь создайте PHP-файл, например air.php, в директории веб-сервера (/var/www/html/):
<?php
$output = shell_exec('/usr/bin/python3 /home/pi/sgp30_read_once.py 2>&1');
$data = explode(',', trim($output));
if (count($data) == 2) {
$tvoc = intval($data[0]);
$eco2 = intval($data[1]);
echo "TVOC: " . $tvoc . " ppb<br>";
echo "eCO₂: " . $eco2 . " ppm<br>";
} else {
echo "Ошибка чтения датчика.<br>";
echo "<pre>" . htmlspecialchars($output) . "</pre>";
}
?>
Теперь при открытии http://ваш_IP/air.php вы увидите текущие показания.
CJMCU-6814 — простой и полезный датчик для домашнего IoT. С его помощью можно легко добавить мониторинг качества воздуха в свою систему умного дома или веб-интерфейс на Raspberry Pi.
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии