В данной статье мы подключим к плате Arduino датчик температуры и влажности DHT11 и будем передавать считываемые с него данные на сервер MySQL (базу данных phpmyadmin).
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Arduino Ethernet Shield 2 (купить на AliExpress). Вместо шилда Ethernet можно использовать Ethernet модуль W5100 (купить на AliExpress).
- Датчик температуры и влажности DHT11 (купить на AliExpress).
Установка сервера MySQL
В данном проекте мы в качестве сервера MySQL будем использовать XAMPP server, который можно использовать в операционных системах Windows и Linux. Сервер XAMPP можно скачать по следующей ссылке.
1. Установите Apache: Sudo apt-get install apache2.
2. Установите MySQL: sudo apt-get install mysql-server.
3. Установите PHP: sudo apt-get install php5 libapache2-mod-php5.
4. Перезапустите сервер: sudo /etc/init.d/apache2 restart.
5. Проверьте Apache http://localhost/. При переходе по данной ссылке у вас должна открыться страница apache. Если она у вас не открывается, значит во время установки описанных компонентов произошла какая то ошибка.
В данном проекте мы будем использовать PHPMYADMIN, которая представляет собой веб-интерфейс сервера MySQL. Для ее установки используйте команду:
1 |
sudo apt-get install phpmyadmin |
Arduino Ethernet Shield
Данный шилд (плата расширения) для платы Arduino позволяет подключать плату Arduino к сети интернет через Ethernet соединение. Для этого необходимо всего лишь одеть сверху данный шилд на плату Arduino и подключить к нему кабель RJ45. Подключение Arduino к сети интернет с помощью данного шилда достаточно просто и в сети можно найти много ресурсов, описывающих данных процесс.
Датчик DHT11
Датчик DHT11 способен измерять температуру и влажность окружающей среды и передавать эту информацию по цифровому выходы. Датчик отличается высокой стабильностью работы, быстрым откликом на изменения условий среды и устойчивостью помехам. Его очень просто подключить к плате Arduino и на нашем сайте вы можете посмотреть следующие проекты с применением данного датчика:
- измерение температуры и влажности с помощью Arduino и датчика DHT11;
- мониторинг температуры и влажности через Интернет с помощью Arduino;
- логгер данных температуры и влажности на SD карту и компьютер с помощью Arduino;
- логгер данных с датчика температуры DHT11 на основе MATLAB и Arduino.
Схема проекта
Схема проекта передачи данных температуры и влажности из платы Arduino на сервер MySQL представлена на следующем рисунке.
Исходный код программы (скетча)
Все необходимые файлы для этого проекта можно скачать по следующей ссылке.
Здесь приведу только код скетча для Arduino.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
#include "DHT.h" #include <SPI.h> #include <Ethernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //Setting MAC Address #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN,DHTTYPE); float humidityData; float temperatureData; char server[] = "<Your Local IP>"; IPAddress ip(192,168,0,177); EthernetClient client; /* Setup for Ethernet and RFID */ void setup() { Serial.begin(9600); dht.begin(); if (Ethernet.begin(mac) == 0) { Serial.println("Failed to configure Ethernet using DHCP"); Ethernet.begin(mac, ip); } delay(1000); } //------------------------------------------------------------------------------ /* Infinite Loop */ void loop(){ humidityData = dht.readHumidity(); temperatureData = dht.readTemperature(); Sending_To_phpmyadmindatabase(); delay(30000); // interval } void Sending_To_phpmyadmindatabase() //CONNECTING WITH MYSQL { if (client.connect(server, 80)) { Serial.println("connected"); // Make a HTTP request: Serial.print("GET /testcode/dht.php?humidity="); client.print("GET /testcode/dht.php?humidity="); //YOUR URL Serial.println(humidityData); client.print(humidityData); client.print("&temperature="); Serial.println("&temperature="); client.print(temperatureData); Serial.println(temperatureData); client.print(" "); //SPACE BEFORE HTTP/1.1 client.print("HTTP/1.1"); client.println(); client.println("Host: <Your Local IP>"); client.println("Connection: close"); client.println(); } else { // if you didn't get a connection to the server: Serial.println("connection failed"); } } |
Видео, демонстрирующее работу проекта
К сожалению, автор проекта никакого текстового описания непосредственно процесса передачи данных от платы Arduino на сервер MySQL не привел, но зато он снял очень подробное видео на эту тему, которое я здесь и привожу. Надеюсь, оно поможет вам разобраться в сути этих процессов.
6 ответов к “Передача данных из Arduino на сервер MySQL (PHPMYADMIN)”
Уважаемые студенты ЦАТЭК, прошу вас уважать автора данного пособия и не писать комментарии все изучаемых тем. А я, в свою очередь, приношу извинения автору за некорректные комментарии.
А каким образом ваш ВУЗ связан с нашим интернет-ресурсом?
Обязательно при этом модуль ардуино и пк, на котором находится сервер быть подключены к одной секти?
ЦАТЭК *****
Сдать данные через phpmyadmin — это ужасно ))
Ну не самое ужасное из того что может случиться в этой жизни ))