Arduino mega + ENC28j60 - mysql

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
Awatar użytkownika
globalinfo
Majsterkowicz
Posty: 72
Rejestracja: 30 sie 2014, 19:25

Arduino mega + ENC28j60 - mysql

Post autor: globalinfo » 30 sie 2014, 19:33

Witam wszystkich,

Mam Arduino mega + ENC28j60, poniżej przedstawiam kod dla arduino, który
pobiera wartości z wybranych pinów analogowych i przesyła wyniki na stronę internetową.
Teraz bym chciał pójść dalej, tj. Idea

Arduino przez ENC28J60 ma wysyłać wartości z tych pinów na stronę założoną na zewnętrznym serwerze.
Arduino jest podłączony do routera z dynamicznym IP.
Po odebraniu danych chcę je zapisać do bazy w mysql pod tym samym adresem zewnętrznym (serwer nie pozwala łączyć się z bazą z zewnątrz).

Kod: Zaznacz cały

#include "etherShield.h" 
#include "ETHER_28J60.h" 

static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};  
                                                                
static uint8_t ip[4] = {192, 168, 1, 15};    
                                                            
static uint16_t port = 80;                                  

ETHER_28J60 e; 

void setup() 
{ 
  e.setup(mac, ip, port); 
} 

void loop() 
{ 
  if (e.serviceRequest()) 
  { 
 int a = analogRead(1); 
  int b = analogRead(6); 
  int c = analogRead(12); 
  int d = analogRead(15); 
    e.print("<H1>Piny analogowe</H1><br/><table>"); 
    e.print("<tr><th>Wejście nr</th><th>Wartość</th></tr>"); 
    
      e.print("<tr><td>"); e.print(1); e.print("</td><td>");  e.print(a); e.print("</td></tr>"); 
      e.print("<tr><td>"); e.print(6); e.print("</td><td>"); e.print(b); e.print("</td></tr>"); 
  e.print("<tr><td>"); e.print(12); e.print("</td><td>"); e.print(c); e.print("</td></tr>"); 
  e.print("<tr><td>"); e.print(15); e.print("</td><td>"); e.print(d); e.print("</td></tr>"); 
     e.print("</table>"); 
      
         e.respond(); 
  } 
  delay(1000); 
  }
Nie jestem w tym mocny więc proszę o podpowiedź lub ewentualnie zamieszczenie kodu dla Arduino i strony.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


kazzik87
Starszy majsterkowicz
Posty: 440
Rejestracja: 14 lip 2014, 21:54
Lokalizacja: Lublin

Re: Arduino mega + ENC28j60 - mysql

Post autor: kazzik87 » 1 wrz 2014, 13:55

Hej. Adres IP jest na pewno ok?
Bez tytułu.png
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
---
Jeżeli pomogłem to kliknij "Pomógł".
zelek93
Majsterkowicz
Posty: 96
Rejestracja: 27 sie 2013, 02:01

Re: Arduino mega + ENC28j60 - mysql

Post autor: zelek93 » 1 wrz 2014, 21:50

kazzik87 pisze:Hej. Adres IP jest na pewno ok?
Adres ten jest z zarezerwowanej puli adresów prywatnych. Nie dostaniesz się z zewnątrz nie znając adresu zewnętrznego oraz przekierowań.

Pozdrawiam :)
kazzik87
Starszy majsterkowicz
Posty: 440
Rejestracja: 14 lip 2014, 21:54
Lokalizacja: Lublin

Re: Arduino mega + ENC28j60 - mysql

Post autor: kazzik87 » 1 wrz 2014, 22:09

globalinfo pisze:Arduino przez ENC28J60 ma wysyłać wartości z tych pinów na stronę założoną na zewnętrznym serwerze.
globalinfo pisze:Arduino jest podłączony do routera z dynamicznym IP.
globalinfo pisze:Po odebraniu danych chcę je zapisać do bazy w mysql pod tym samym adresem zewnętrznym (serwer nie pozwala łączyć się z bazą z zewnątrz).
zelek93 - wiem dlatego pytam czy dobry adres podał :-)
---
Jeżeli pomogłem to kliknij "Pomógł".
kubagut445
Młodszy majsterkowicz
Posty: 38
Rejestracja: 7 mar 2014, 20:09

Re: Arduino mega + ENC28j60 - mysql

Post autor: kubagut445 » 2 wrz 2014, 20:03

Nie znam się, ale ten adres to nie powinien być po kropce?
Awatar użytkownika
globalinfo
Majsterkowicz
Posty: 72
Rejestracja: 30 sie 2014, 19:25

Re: Arduino mega + ENC28j60 - mysql

Post autor: globalinfo » 14 wrz 2014, 18:41

Kod ktòry podałem działa w mojej sieci wewnętrznej.
Pytłem jak to zrobić aby dzialał na serwerze zewnęntrznym.
rufek
Młodszy majsterkowicz
Posty: 19
Rejestracja: 8 wrz 2013, 16:41

Re: Arduino mega + ENC28j60 - mysql

Post autor: rufek » 14 wrz 2014, 19:41

Nie tędy droga. W Twoim przykładzie, Arduino nie łączy się z żądną stroną, a jedynie (lub aż) tworzy stronę i jest serwerem http.

Rozumiem, że chcesz mieć gdzieś w internecie dane od arduino - Nie tworzysz strony, a umieszczasz po prostu kod odpowiedzialny za odwiedzenie cudzej strony. Np. jeżeli spełniony jest jakiś warunek (klikniety przycisk) toodwiedzasz taki adres: http://twojadomena.pl?akcja=dodaj&wartosc=100 i na stronie twojadomena umieszczasz kod (np php), który wydłubuje z adresu żądaną akcję i wartość i np. wrzuca to do bazy. Dane z bazy wyświetlasz sobie jak chcesz.

Nie można tego zrobić tak, jak Ty chcesz, bo arduino jest podłączone do Twojej sieci, a nie do sieci dostawcy hostingu.

Jeżeli nie o to ci chodziło, to chyba musisz doprecyzować pytanie.

Jak jesteś spragniony wiedzy, to tu: http://arduino.cc/en/Tutorial/HttpClient (jest przykład w którym arduino pobiera z zewnętrznego serwera jakiś plik)
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Arduino mega + ENC28j60 - mysql

Post autor: stiven » 14 wrz 2014, 20:46

Wydaje mi się, że musiałby być router z funkcją serwera, no i na pewno trzeba mieć zewnętrzny numer IP, nie zawsze taki jest.
rufek
Młodszy majsterkowicz
Posty: 19
Rejestracja: 8 wrz 2013, 16:41

Re: Arduino mega + ENC28j60 - mysql

Post autor: rufek » 14 wrz 2014, 21:36

Arduino jest serwerem. Na routerze najwyzej ustawia sę, że port 80 jest wystawiony na świat - wymagane publiczne ip. wtedy stronę wystawioną z arduino widać poza siecią LAN - ale z tego co rozumiem, nie rozwiązuje to problemów autora tematu
bpachel
Młodszy majsterkowicz
Posty: 32
Rejestracja: 2 sty 2014, 22:02

Re: Arduino mega + ENC28j60 - mysql

Post autor: bpachel » 15 wrz 2014, 20:02

Jeśli dobrze rozumiem to powinna ci pomóc strona noip.com
ODPOWIEDZ

Strony partnerskie: