Как подключить Arduino и базу данных MySQL сервера WAMP?

Я пытаюсь подключить Arduino Mega к базе данных моего сервера WAMP, используя коннектор MySQL для ведения журнала посещаемости. Но он показывает «Ошибка подключения».

Какой IP-адрес моего сервера WAMP?

Я подключаю свой ноутбук и Arduino к маршрутизатору следующим образом:

  • Мой ноутбук: 192.168.1.2
  • Мой Arduino — 192.168.1.3

Я думаю, что это правильно.

/*
Пример MySQL Connector/Arduino: базовая вставка
В этом примере показано, как выполнить запрос INSERT для сохранения данных в
стол. Для этого мы создадим специальную базу данных и таблицу для тестирования.
Ниже приведены команды SQL, которые необходимо выполнить для настройки.
ваша база данных для запуска этого скетча.

СОЗДАТЬ БАЗУ ДАННЫХ test_arduino;
СОЗДАТЬ ТАБЛИЦУ test_arduino.hello_arduino (
num целочисленный первичный ключ auto_increment,
символ сообщения (40),
записанная метка времени
);

Здесь мы видим одну базу данных и таблицу с тремя полями; первичный ключ, который
является auto_increment, строкой и отметкой времени. Это продемонстрирует, как
чтобы сохранить дату и время, когда строка была вставлена, что может помочь вам
определить, когда данные были записаны или обновлены.

ИНСТРУКЦИИ ПО ИСПОЛЬЗОВАНИЮ

1) Создайте базу данных и таблицу, как показано выше.
2) Измените адрес сервера на IP-адрес сервера MySQL.
3) Измените пользователя и пароль на действительных пользователя и пароль MySQL.
4) Подключите USB-кабель к Arduino.
5) Выберите правильную плату и порт
6) Скомпилируйте и загрузите скетч в Arduino.
7) После загрузки откройте Serial Monitor (используйте скорость 115200) и наблюдайте
8) После того, как скетч поработает какое-то время, откройте клиент mysql и введите
команда: «SELECT * FROM test_arduino.hello_arduino», чтобы увидеть данные
записано. Обратите внимание на значения полей и то, как база данных обрабатывает
поля auto_increment и timestamp для нас. Вы можете очистить данные с помощью
«УДАЛИТЬ ИЗ test_arduino.hello_arduino».

Примечание. MAC-адрес может быть любым, если он уникален в вашей сети.

Создано: доктор Чарльз А. Белл
*/

#include <Ethernet.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>

byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress server_addr(192, 168, 1, 3); // IP MySQL *сервера* здесь
char user[] = "root"; // имя пользователя для входа в MySQL
char password[] = ""; // Пароль для входа в MySQL

// Пример запроса
char INSERT_SQL[] = "INSERT INTO test_arduino.hello_arduino (message) VALUES ('Hello, Arduino!')";

EthernetClient client;
MySQL_Connection conn((Client *)&client);

void setup() {
  Serial.begin(115200);
  while (!Serial); // ждем подключения последовательного порта
  Ethernet.begin(mac_addr);
  Serial.println("Connecting...");
  if (conn.connect(server_addr, 3306, user, password)) {
    Serial.println("Connected Successfully...");
    delay(1000);
  } else
    Serial.println("Connection failed.");
}

void loop() {
  delay(2000);
  Serial.println("Recording data.");
  // Инициируем экземпляр класса запроса
  MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
  // Выполнить запрос
  cur_mem->execute(INSERT_SQL);
  // Примечание: поскольку результатов нет, нам не нужно читать данные
  // Удаление курсора также освобождает используемую память
  delete cur_mem;
}

, 👍0

Обсуждение

IP-адрес ноутбука (с вашим сервером MySQL) — *192.168.1.2*, но вы пытаетесь подключиться к *192.168.1.3*., @gre_gor


1 ответ


2

Как заметил gre_gor, похоже, вы подключаетесь не к тому IP-адресу.

Изменить:

IPAddress server_addr(192, 168, 1, 3); // IP of the MySQL *server* here

Кому:

IPAddress server_addr(192, 168, 1, 2); // IP MySQL *сервера* здесь
,