Skocz do zawartości

Przesyłanie danych na strone WWW


Mrpatryk

Pomocna odpowiedź

@Mrpatryk, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start:

  • Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników.
  • Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć?
  • Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości.

 

6 godzin temu, Mrpatryk napisał:

jak napisać kod oraz podłączyć arduino uno z eternetcard

Masz jakiś shield do komunikacji po Ethernecie? Z Twojej wiadomości nie wynika za bardzo jak chcesz podłączyć to Arduino z ethernetem, a metod jest wiele - ciężko zgadywać. Za pomocą samego Arduino UNO bez żadnego dodatkowego modułu nie będziesz miał takiej możliwości. W takich zastosowaniach lepiej sprawdzają się moduły ESP lub np. Raspberry Pi z Domoticzem, przykład: Kurs Raspberry Pi, projekty – #2 – Domoticz, DS18B20, maile

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Tu jest artykuł opisany jak to zrobić na tej nakładce na UNO: http://www.homeguard24.pl/arduino-i-mysql/ (w google dwa słowa: arduino mysql). Jak chcesz sobie wyświetlać tylko na wbudowanej w UNO WWW aktualne wartości to zrób sobie serwer w Arduino,  przecież to jest wbudowane w Arduino z przykładami (Plik->Przykłady-> w zakładce Ethernet->WebServer). Są też filmy na Youtubie po polsku.

Link do komentarza
Share on other sites

No to będziemy tak do Wielkanocy. Napisz jaką masz kartę, co? Masz wyciągniętą z PC, laptopa, ENC28J60 czy W5100, W5500? To czy to jest karta czy shield to nie jest istotne, są płytki z W5500 ze złączką 10pin (3$ na ali), najważniejsze że komunikują się po SPI.  Do trzech ostatnich znajdziesz biblioteki do Arduino, aczkolwiek jak jest to ENC to sobie odpuść, kup shielda i skorzystaj z gotowców. Albo kup sobie ESP8266 z komunikacją po WIFI i też znajdziesz gotowca. 

Link do komentarza
Share on other sites

ESP8266 występuje w kilkudziesięciu odmianach, jak ma złącze USB do programowania/zasilania to nie potrzebujesz, jak nie ma, a masz konwerter USB/UART 3.3V to też nie potrzebujesz (czerwona płytka z FTDI - polecam). Bo tak w ogóle to nie będziesz go przecież do niczego podłączał na 5V, czujnik pewnie działa na 3.3V. Jak masz ESP01 i nie żal Ci 10zł też nie potrzebujesz. Mi jeszcze żaden przez to nie spłonął że gadałem z nim np. z UNO bez konwertera. Niektóre ESP01 nie dają się zaprogramować jak nie masz pewnego (mocnego) zasilania 3.3V. Ale co do zasady powinien być chociaż dzielnik na pinie podłączonym do RX ESP8266. Może mam szczęście, może mam niższe napięcie na USB, może ktoś z Expressive kiedyś napomknął, że piny ESP8266 tolerują sygnały do 5V, choć w dokumentacji jest inaczej. 

Możesz próbować z ENC postawić serwer, poszukaj biblioteki wgraj i testuj (nie ma w Arduino, trzeba poszukać w google). Z tego co pamiętam ten moduł wymaga większej obsługi programowej, Atmega328 z Arduino jest słaba na takie zabawy, ale kojarzę kody serwera WWW zrobione przez magików na atmedze8 czy 88 pisane w C (nie testowałem), więc jak i tak nie masz co robić w oczekiwaniu na ESP to się pobaw.

  • Lubię! 1
Link do komentarza
Share on other sites

Aktualnie zrobiłem mini stacje pogodowa , barometr , czujnik wilgotności , temperatury, opadów ,dołączyłem do tego zegar + wypisywanie danego dnia. Podłączyłem do tego wszystkiego moduł bluetooth i po porcie szeregowym wszystko śmiga na apce która na szybko wystrugałem. Czekam na tego ESP8266 i spróbuje jakoś przesyłać dane na mysql, potem dane zczytam z bazy stronką w php i będę sobie wyświetlał wyniki na bieżąco. Myślę jeszcze o wykonaniu elektromechanicznego zamka (drzwi albo szuflady) z opcją przesyłania ID karty do bazy danych dzięki czemu mógłbym dodawać nowe karty oraz w rekordach bazy zapisywać imię i nazwisko posiadacza kart. Zobaczymy co z tego wyjdzie, najważniejsza dla mnie w tej chwili będzie komunikacja Arduino z baza danych. 

Link do komentarza
Share on other sites

Przykład działający na ESP8266:

#include <ESP8266WiFi.h>
const char* ssid= "SSID";
const char* password = "HASLO";
const int httpPort = 80;
const char* host = "IP"; //IP serwera z MySQL
float temp=22.26, humidity=35.33;
  

void setup() {
 Serial.begin(115200);
 WiFi.begin(ssid, password);  
 while (WiFi.status() != WL_CONNECTED) {
   delay(500);
   Serial.print(".");
 }
Serial.println(WiFi.localIP());
}
void loop() {
 Serial.println(temp);  
 
 temp+=1.02; //zmieniamy wartości do bazy danych dla lipy
 humidity+=1.05;  
 if(temp>40) 
 {
   temp=21.26;
   humidity=34.33;
 }

  WiFiClient client; //wysylanie do PHP i MySQL
  if (!client.connect(host, httpPort)) {
   Serial.println("connection failed");
   
 }
 else
 {
String url = "/esp.php?";
   url += "id=1"; 
   url += "&t="; 
   url += temp;
   url += "&h="; 
   url += humidity;
 client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n");  
 }
 delay(5000);               
}

Do tego skrypt PHP na serwerze:

<?php
define ('DBHOST', 'localhost:3306)'); 
define ('DBNAME', 'esp'); // nazwa bazy danych
define ('DBUSER', 'USER'); // nazwa usera ustawic w PHPMYADMIN
define ('DBPASS', 'HASLO'); // haslo usera ustawic w PHPMYADMIN
/* Laczenie z baza danych */
mysql_connect(DBHOST, DBUSER, DBPASS) or die('Nie polaczono!');
mysql_select_db(DBNAME) or die ('Brak polaczenia z baza danych!');
mysql_query('SET NAMES utf8');

$id = ($_GET['id']); 
$temp = ($_GET['t']);
$hum = ($_GET['h']);

if ($id == '1') {
    $total = mysql_result(mysql_query("SELECT count(*) FROM `esp1`"),0);
    mysql_query("INSERT INTO `esp1` (temp,hum) values ('".$temp."','".$hum."') ");
}
echo 'Ок';
?>

To przerobiony przykład Ethernetu z poprzedniego linku na ESP.

To kiedyś użyłem do testu ze swoją bazą MySQL na dysku sieciowym i działało. Akurat czas to był podawany przez bazę danych w chwili wpisania od klienta. Sama wizualizacja na serwerze dysku to też osobna zabawa. Na forum Arduino pl jest też jakiś przykład zapisu do bazy na serwerze zdalnym http://forum.arduinopolska.pl/watek-komunikacja-z-http-przez-esp8266?highlight=sql - może zagadaj do niego, bo napisał, że korzysta z ENC.

Można też po prostu wysyłać dane na serwer IOT, np. Thinkspeak. Na Youtube poszukaj kanału Andreas  Spiess, korzystałem z jego przykładu zamieniając tylko POST na GET i działa super.

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.