Проблема с сохранением значений из Arduino MKR 1010 в mysql?
arduino-mkr
У меня проблема с сохранением значений в таблице MySQL из Arduino MKR 1010 Wifi. Я получаю следующее сообщение.
trying
got: 0 retrying
trying
got: 0 retrying
ERROR!
Я также безуспешно пытался отключить брандмауэр. Мой код неправильный? Может ли кто-нибудь помочь мне с этой проблемой?
#include <Ethernet.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
#include <MySQL_Encrypt_Sha1.h>
#include <MySQL_Packet.h>
#include <DHT.h>
#include <DHT_U.h>
#include <dht.h>
#include <WiFiNINA.h>
#include <wifiinfo.h>
byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
#define DHT22_PIN 7
#define DHTTYPE 22
DHT deviceMonitor(DHT22_PIN,DHTTYPE) ;
IPAddress server_addr(192,168,86,39); // IP MySQL *сервера* здесь
char user[] = "root"; // имя пользователя для входа в MySQL
char password2[] = "test1234"; // Пароль для входа в MySQL
char ssid[] = SECRET_SSID; // SSID вашей сети (имя)
char password[] = SECRET_PASS; // ваш сетевой пароль (используйте для WPA или используйте в качестве ключа для WEP)
int status = WL_IDLE_STATUS; // статус радио Wi-Fi
float hum;
float temp;
float humError;
float tempError;
int checkTemp;
char INSERT_DATA[] = "INSERT INTO weather (temp, hum) VALUES ('%s','%d')";
char query[128];
char temperature[10];
EthernetClient client;
MySQL_Connection conn((Client *)&client);
void setup() {
//Инициализируем серийный номер и ждем открытия порта:
Serial.begin(9600);
while (!Serial); // ждем подключения последовательного порта
Ethernet.begin(mac_addr);
// попытка подключения к сети Wi-Fi:
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to network: ");
Serial.println(ssid);
// Подключиться к сети WPA/WPA2:
status = WiFi.begin(ssid, password);
// ждем 10 секунд для соединения:
delay(10000);
}
// теперь вы подключены, поэтому распечатайте данные:
Serial.println("You're connected to the network");
Serial.println("----------------------------------------");
printData();
Serial.println("----------------------------------------");
if (conn.connect(server_addr, 3306, user, password))
{
delay(1000);
}
else
{
Serial.println("Mysql connection failed.");
}
}
void loop()
{
delay(5000);
if (conn.connect(server_addr, 3306, user, password2)) {
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
checkTemp = deviceMonitor.read(DHT22_PIN);
hum = deviceMonitor.readHumidity();
temp = deviceMonitor.readTemperature();
Serial.println((String)"Temperature: " + temp + " Celsius");
Serial.println((String)"Humidity: " + hum +"%");
Serial.println();
sprintf(query, INSERT_DATA, temp, hum);
cur_mem->execute(query);
delete cur_mem;
Serial.println("Data recorded.");
delay(10000);
}
else
{
Serial.println("ERROR!");
}
}
void printData()
{
Serial.println("Board Information:");
// напечатать IP-адрес вашей платы:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
Serial.println();
Serial.println("Network Information:");
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// вывести мощность принятого сигнала:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.println(rssi);
byte encryption = WiFi.encryptionType();
Serial.print("Encryption Type:");
Serial.println(encryption, HEX);
Serial.println();
}
@Ken76, 👍-1
Обсуждение1 ответ
▲ 0
Я предоставил полные права пользователю root в MySQL, а вместо этого получил эту ошибку.
ERROR: Timeout waiting for client.
Error: -1 = Mysql connection failed.
Может ли кто-нибудь помочь мне с этой проблемой?
,
@Ken76
Не ответ.., @VE7JRO
Ваш выходной список, похоже, не имеет ничего общего с кодом, который вы, по-видимому, пытаетесь запустить., @timemage