• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Komunikacja SQL vs Arduino Uno r4 Wifi
#1
Witam,
Posiadam Arduino Uno r4 Wifi, chciabym stworzyć prosty projekt w którym np. zapalenie diody lub uruchomienie czujnika spowoduje nadpisanie istniejącej juz bazy danych SQL. Na te potrzeby uruchomiłem serwer lokalny na XAMPP,  stworzyłem przykładową bazę i korzystając z gotowego przykładu 
 : MySQL connector Arduino / complex_insert. 


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

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

IPAddress server_addr(10,0,1,35);  // IP of the MySQL *server* here
char user[] = "root";              // MySQL user login username
char password[] = "secret";        // MySQL user login password

// Sample query
char INSERT_DATA[] = "INSERT INTO test_arduino.hello_sensor (message, sensor_num, value) VALUES ('%s',%d,%s)";
char query[128];
char temperature[10];

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

void setup() {
  Serial.begin(115200);
  while (!Serial); // wait for serial port to connect
  Ethernet.begin(mac_addr);
  Serial.println("Connecting...");
  if (conn.connect(server_addr, 3306, user, password)) {
    delay(1000);
    // Initiate the query class instance
    MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
    // Save
    dtostrf(50.125, 1, 1, temperature);
    sprintf(query, INSERT_DATA, "test sensor", 24, temperature);
    // Execute the query
    cur_mem->execute(query);
    // Note: since there are no results, we do not need to read any data
    // Deleting the cursor also frees up memory used
    delete cur_mem;
    Serial.println("Data recorded.");
  }
  else
    Serial.println("Connection failed.");
  conn.close();
}


void loop() {
}


Problem polega na tym , że gdy wpisuje adres serwera jako 127.0.0.1 lub jako IP mojego komputera to nic się nie dzieje. Nie dokonują się żadne zmiany w bazie danych. 
Pomóżcie, co robie nie tak ?
 
Odpowiedź
#2
A jakiekolwiek przykłady z siecią działają Ci w ogóle? Bo ja biblioteki Ethernet używałem jak miałem połączenie kablem, no i shield Ethernet, a Ty masz na płytce moduł WIFI ESP32-S3, może inny, ale to jest ESP32, zerknąłem na schemat i on jest połączony przez UART. Ja taki kod gdzieś znalazłem do wrzucania w bazę, ale to robiłem wprost przez WIFI wgrywając kod w ESP. Jak zapytasz w Google to znajdziesz, tu na forum też to wrzucałem. Potem to w ogóle zamieniłem na ThingSpeak, można sobie opalić własny serwer w sieci, to też baza danych, ale od razu rysuje wykresy.
Pewności nie mam, bo nie mam tej płytki, ale znajdź sobie jakiś przykład.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
nie poprostu nie łączy z SQL jakby uwierzytelnienie jakieś musiało być.
Jestem bezradny, siedzę nad tym juz tydzień.
przeczytałem dokumentację tych bibliotek ale czym więcej czytam tym głupszy jestem
 
Odpowiedź
#4
(03-02-2025, 17:54)pudel napisał(a): nie poprostu nie łączy z SQL jakby uwierzytelnienie jakieś musiało być.
Jestem bezradny, siedzę nad tym juz tydzień.
przeczytałem dokumentację tych bibliotek ale czym więcej czytam tym głupszy jestem

Możesz podejść do problemu od innej strony - sprawdzić czy Arduino jest obecne w sieci, czy pobrało adres IP (pewnie w ruterze można to podejrzeć) czy nawiązuje połączenie z kompem z SQL (netstat, ew. sniffer).
 
Odpowiedź
#5
No to ciekawe, ale jednak tu chcąc skorzystać z sieci gość dodaje bibliotekę WiFiS3.h a nie ethernet.
https://www.youtube.com/watch?v=kJE9CBb3fT8
Ale może używasz shield Ethernet, tylko się wstydzisz pisać całymi zdaniami co tam używasz.
Poza tym jak instalujesz serwer na win to on może blokować na firewall, ja sprawdzałem czy można coś dodać do bazy wpisując jakąś liniię z przeglądarki - "z palca".
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości