Skocz do zawartości
Mrpatryk

Przesyłanie danych na strone WWW

Pomocna odpowiedź

Witam dopiero zaczynam zabawę z arduino mam pytanie jak napisać kod oraz podłączyć arduino uno z eternetcard, tak by odczyt z czujników "temperatury oraz wilgotnosci" można było przesłać na witrynę WWW? ewentualnie do bazy danych mysql. 

Udostępnij ten post


Link to post
Share on other sites

A czego nie rozumiesz w dokumentacji?

Udostępnij ten post


Link to post
Share on other sites

Kod nie wiem jak napisać . czujniki podpoiłem, na szeregowym pokazują temp oraz wiglotnośc. Jak to wysłać za pomocą eternetcard na stronę www ?

Udostępnij ten post


Link to post
Share on other sites

@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

Udostępnij ten post


Link to post
Share on other sites

posiadam arduino Uno wraz z EternetCard i zapomocą niej chciałbym swe wyniki np(odczyty temperatury) wysyłac na serwer mysql. Da się takie cos zrobic ?

Udostępnij ten post


Link to post
Share on other sites

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.

Udostępnij ten post


Link to post
Share on other sites

W tym problem ze nie posiadam eternetshield mam jedynie eternetcard.

 

Udostępnij ten post


Link to post
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. 

Udostępnij ten post


Link to post
Share on other sites

posiadam ENC28J60 , zakupilem aktualnie ESP8266 i czekam az przyjdzie, potrzebuje do niego konwerter stanów logicznych ?  

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
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. 

Udostępnij ten post


Link to post
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.

 

Udostępnij ten post


Link to post
Share on other sites

Albo można to zrobić porządnie po MQTT. Nawet są gotowe serwisy, które to będą jadły i wyświetlały ładne wykresy, na przykład http://adafruit.io

Udostępnij ten post


Link to post
Share on other sites

Zobaczymy jak przyjdzie mi EPS, w tedy bede działał i wszystko się zobaczy :) Baza danych jest uczelniana którą wykorzystywałem do stron html/php :) 

Udostępnij ten post


Link to post
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!

Gość
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...