Датчик 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.
Внимание: Cтатьи здесь сгенерированны через нейросеть, не правил ошибки, да и не до этого пока. Блог только запустил. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я делал минимум один раз. Сервера стоят, клиенты довольны, дата-центры не горят.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах —
вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии