Отправка данных сенсоров Arduino в MySQL через PHPMyAdmin: пошаговое руководство
Компоненты и материалы
| Arduino UNO | ×1 |
| Ethernet Shield 2 (W5500) | ×1 |
| Датчик температуры и влажности DHT11 (3 пина) | ×1 |
О проекте
Полное руководство по передаче показаний датчиков (температура, влажность) с Arduino в базу данных MySQL через локальный веб-сервер (XAMPP на Windows или LAMP на Linux) и интерфейс phpMyAdmin.
Программное обеспечение
1. Arduino IDE
Скачать с официального сайта.
2. Установка веб-сервера
Windows (XAMPP): Скачать XAMPP, установить, запустить Apache и MySQL.
Linux (LAMP):
sudo apt-get install apache2
sudo apt-get install mysql-server
sudo apt-get install php libapache2-mod-php
sudo /etc/init.d/apache2 restart
sudo apt-get install phpmyadmin
Проверка: открыть https://localhost/ — должна появиться стартовая страница Apache.
Компоненты
- Arduino UNO — микроконтроллер ATmega328P, 14 цифровых пинов, 6 аналоговых.
- Ethernet Shield 2 — подключение к локальной сети по RJ45, стек TCP/IP на чипе W5500.
- DHT11 — цифровой датчик температуры и влажности, калиброванный, с 8-битным МК внутри.
Схема подключения
- Установить Ethernet Shield на Arduino UNO.
- Подключить DHT11: VCC → 5V, GND → GND, DATA → цифровой пин (например, D2).
- Соединить Ethernet-кабель с роутером/свитчем.
Код Arduino
Скетч читает DHT11, формирует HTTP GET-запрос к PHP-скрипту на сервере, который записывает данные в MySQL. Полный код доступен на GitHub автора.
Основные шаги в коде:
- Инициализация Ethernet (DHCP или статический IP).
- Чтение DHT11 через библиотеку
DHT.h. - Формирование URL:
GET /insert.php?temp=25.5&hum=60. - Отправка через
EthernetClientна порт 80. - Обработка ответа сервера.
PHP-скрипт (insert.php)
<?php
$host = "localhost"; $user = "root"; $pass = ""; $db = "arduino_data";
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) die("Connection failed: " . $conn->connect_error);
$temp = $_GET['temp']; $hum = $_GET['hum'];
$sql = "INSERT INTO sensors (temperature, humidity, timestamp) VALUES ($temp, $hum, NOW())";
if ($conn->query($sql) === TRUE) echo "OK"; else echo "Error: " . $sql;
$conn->close();
?>
Создание базы данных в phpMyAdmin
- Открыть
https://localhost/phpmyadmin. - Создать БД
arduino_data. - Создать таблицу
sensorsс полями:id(INT, AUTO_INCREMENT, PRIMARY KEY),temperature(FLOAT),humidity(FLOAT),timestamp(DATETIME, DEFAULT CURRENT_TIMESTAMP).
Видео-руководство
Полное видео с демонстрацией доступно на канале Embedotronics Technologies (YouTube).
Производственный процесс
- Построение доступной беспроводной сети датчиков для дома
- Передача данных температуры и влажности между двумя Arduino через Firebase
- Беспроводная передача данных по магнитному полю на Arduino с 3D-сенсором Infineon
- Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
- Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
- Цифровой стадиометр на Arduino: отслеживание роста лазерным датчиком VL53L0X
- Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
- Интеграция ёмкостного сканера отпечатков DFRobot с Arduino или ESP8266
- Сенсорная башня на Arduino Cloud: Мониторинг температуры, движения и газа
- Умный водяной пистолет с датчиком движения на Arduino Nano