Проблема с сохранением значений из 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();
}

, 👍-1

Обсуждение

Ваш выходной список, похоже, не имеет ничего общего с кодом, который вы, по-видимому, пытаетесь запустить., @timemage


1 ответ


0

Я предоставил полные права пользователю root в MySQL, а вместо этого получил эту ошибку.

ERROR: Timeout waiting for client.
Error: -1 = Mysql connection failed.

Может ли кто-нибудь помочь мне с этой проблемой?

,

Не ответ.., @VE7JRO