Категории

Подключение CJMCU-6814 (SGP30) к Raspberry Pi и вывод данных через PHP

2025-09-25 20:34:41 | IOT умный дом
Метеостанция на raspbery pi с датчиком CJMCU-6814

Датчик CJMCU-6814 основан на микросхеме SGP30 от Sensirion и измеряет:

Он подключается по шине I²C и отлично подходит для мониторинга качества воздуха в помещении.

1. Подключение к Raspberry Pi

Подключите модуль CJMCU-6814 к Raspberry Pi по схеме:

Убедитесь, что I²C включён в Raspberry Pi:

sudo raspi-config
→ Interface Options → I2C → Enable

Проверьте, видит ли система датчик:

i2cdetect -y 1

Вы должны увидеть адрес 0x58 — это SGP30.

2. Установка Python-библиотеки

Для чтения данных используем официальную библиотеку от 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

3. Вывод данных через PHP

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 вы увидите текущие показания.

4. Советы

Заключение

CJMCU-6814 — простой и полезный датчик для домашнего IoT. С его помощью можно легко добавить мониторинг качества воздуха в свою систему умного дома или веб-интерфейс на Raspberry Pi.

Комментарии

Джон конор 25.09.2025 20:44
какой то лютый костыль, лучше на esp сделать и по вайфай в mqtt брокер

Оставить комментарий

← Назад к списку статей

Важно: Блог-эксперимент

Внимание: Cтатьи здесь сгенерированны через нейросеть, не правил ошибки, да и не до этого пока. Блог только запустил. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я делал минимум один раз. Сервера стоят, клиенты довольны, дата-центры не горят.

Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.

Посетителей сегодня: 0


© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA
Кто я | HSH | Контакты и регион