Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • Arduino - ovladanie cez web (klient)

Arduino - ovladanie cez web (klient)

Sekcia ur─Źen├í pre Arduino nad┼íencov

Moderátor: Moderátori

Arduino - ovladanie cez web (klient)

Odosla┼ąod velasp » 10 Apr 2018, 14:25

Zdrav├şm,

potrebujem pomoc s programovan├şm arduina, i┼íiel som pod─ża tohto n├ívodu (nem├ím ve─ża sk├║senosti v tejto oblasti):

https://arduino.cz/programovani-webovyc ... o-arduino/

V├Żstup z php str├ínky je ako v n├ívode "led:1: resp. led:0:" ale arduino nereaguje. Napadlo mi, ─Źi to nie je sp├┤soben├ę free hostingom, ktor├Ż na str├ínku prid├íva reklamu a t├Żm p├ídom to arduino nepre─Ź├şta..

Tu je pou┼żit├Ż k├│d:
K├│d: Vybra┼ą v┼íetko
#include <SPI.h>
#include <Ethernet.h>
#define BUFF_DELKA 255
byte mac[] = {0x90, 0xA2, 0xDA, 0x00, 0x9C, 0xB7}; //MAC adresa
IPAddress ip(10,0,0,3); //IP adresa
char server[] = "server.sk"; //URL adresa serveru   
char buffer[BUFF_DELKA]; //z├ísobn├şk na p┼Ö├şchoz├ş ┼Öet─Ťzec
EthernetClient client;
void setup() {
   pinMode(3, OUTPUT);
   
   Serial.begin(9600);
   
   if (Ethernet.begin(mac) == 0) {
       Ethernet.begin(mac, ip);
   }
   delay(1000);
}
void loop() {
   if(client.connect(server, 80)){
       delay(1000);
       client.println("GET https://server.sk/ovladac.php");
       client.println("Host: server.sk");
       client.println("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
       client.println("Connection: close");
       client.println();
       delay(1000);
       int inBuffer = 0;
       for(int i = 0; i < BUFF_DELKA; i++){ //vypr├ízdn├ş buffer
           buffer[i] = '\0'; //nastav├ş v┼íechny prvky buffer na znak konce ┼Öet─Ťzce
       }
       
       while(client.available()){
           buffer[inBuffer] = client.read();   
           inBuffer++;
       }
       
       if(inBuffer == 6){
           if(buffer[0] == 'l' && buffer[1] == 'e' && buffer[2] == 'd'){
               if(buffer[4] == '1'){
                   digitalWrite(3, HIGH);
               }
               else{
                   digitalWrite(3, LOW);
               }
               Serial.println(buffer[4]);
           }
       }
       client.stop();
   }
   delay(1000);
}


Projekt meteostanice na rovnakom arduine s t├Żm ist├Żm serverom, s odosielan├şm d├ít do DB, funguje bezprobl├ęmovo..

Kde h─żada┼ą chybu, resp. ak mi niekto vie poradi┼ą in├Ż sp├┤sob, budem r├íd...



! Na toto máme špeciálne vytvorenú sekciu. presunul: 11.4.2018 mirosne !
velasp
Obr├ízok pou┼ż├şvate─ża
Okoloid├║ci
Okoloid├║ci
Pr├şspevky: 6
Vek: 34.31
Zalo┼żen├Ż: 11.12.2009
Karma: 0

Re: Arduino - ovladanie cez web (klient)

Odosla┼ąod ado130 » 10 Apr 2018, 14:31

"arduino nereaguje"
Vie┼í kde sa to zaseklo? Sk├║s pozrie┼ą ─Źo m├í┼í na─Ź├ştan├ę v tom bufferi.
ado130
Obr├ízok pou┼ż├şvate─ża
Okoloid├║ci
Okoloid├║ci
Pr├şspevky: 19
Zalo┼żen├Ż: 28.10.2010
Karma: 0

Re: Arduino - ovladanie cez web (klient)

Odosla┼ąod velasp » 10 Apr 2018, 15:03

Ako som p├şsal, nie som v tomto "doma" a aby som pribl├ş┼żil o ─Źo ide - je to hobby projekt poskladan├Ż pod─ża r├┤znych n├ívodov z netu, m├ím na chalupe kameru z ktorej pravidelne aktualizovan├ę sn├şmky si viem pozrie┼ą cez web. K tomu som si vymyslel meteostanicu, aby som na str├ínke mal aj info o po─Źas├ş a tak som sa dostal k arduinu (meteostanicu som rozbehal a funguje pod─ża o─Źak├ívan├ş). Potom som si e┼íte vymyslel, ┼że k tej meteostanici a hlavne kamere by bolo dobr├ę ma┼ą svetlo, ktor├ę by som vedel cez web zapn├║┼ą/vypn├║┼ą (je tam s├şce nieko─żko IR di├│d, ale v noci dosvietia len p├ír metrov) no toto mi u┼ż nefunguje..

Teraz k otázke..

netu┼í├şm, kde sa to zaseklo. Potreboval by som poradi┼ą polopate, ─Źo konkr├ętne skontrolova┼ą, vysk├║┼ía┼ą. Ako m├ím pozrie┼ą ten buffer?
velasp
Obr├ízok pou┼ż├şvate─ża
Okoloid├║ci
Okoloid├║ci
Pr├şspevky: 6
Vek: 34.31
Zalo┼żen├Ż: 11.12.2009
Karma: 0

Re: Arduino - ovladanie cez web (klient)

Odosla┼ąod zen » 12 Apr 2018, 20:06

Neviem, ci to vyriesi tvoj problem, no mne sa nepaci toto:

K├│d: Vybra┼ą v┼íetko
       while(client.available()){
           buffer[inBuffer] = client.read();   
           inBuffer++;


Si si isty, ze ti to nemoze pretiect? Co ked mas na linke nejaky sum?
Samoz┼Öejm─Ť, ┼że d─Ťde─Źek nem├í kapesn├ş hodinky poh├ín─Ťn├ę elekt┼Öinou. Takov├Ż nesmysl si m┼»┼że vymyslit jen Saturnin. (Zdenek Jirotka, 1942)
zen
Obr├ízok pou┼ż├şvate─ża
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 375
Zalo┼żen├Ż: 22.11.2013
Bydlisko: Cadca
Karma: 5

Re: Arduino - ovladanie cez web (klient)

Odosla┼ąod velasp » 13 Apr 2018, 14:23

Sk├║┼íal som cez s├ęriov├║ linku vyp├şsa┼ą obsah client.read() a zobrazilo k├│d str├ínky, kam asi server presmerov├íva dopyt na php s├║bor.. neviem ─Źo s t├Żm
velasp
Obr├ízok pou┼ż├şvate─ża
Okoloid├║ci
Okoloid├║ci
Pr├şspevky: 6
Vek: 34.31
Zalo┼żen├Ż: 11.12.2009
Karma: 0

Re: Arduino - ovladanie cez web (klient)

Odosla┼ąod pocitujlasku » 13 Apr 2018, 14:31

K├│d: Vybra┼ą v┼íetko
       client.println("GET https://server.sk/ovladac.php");


Toto sa mi nepaci. nemalo by to byt:
K├│d: Vybra┼ą v┼íetko
    client.println("GET /ovladac.php");

Pretoze server definujes vyssie a tu chces uz konkretnu stranku.
Intel, Nvidia, Ubuntu, Firefox, Asus, Nissan, Jelinek 52%, Metal
---------------------------------------------------------------------------------------------
Jedn├şm z nejv─Ťt┼í├şch projev┼» ned┼»v─Ťry v Boha je hromosvod na kostele.
pocitujlasku
Ultimate ─Źlen
Ultimate ─Źlen
Pr├şspevky: 4257
Vek: 35.62
Zalo┼żen├Ż: 20.07.2007
Bydlisko: Poprad
Karma: 17

Re: Arduino - ovladanie cez web (klient)

Odosla┼ąod peterple » 13 Apr 2018, 18:29

Daj sem t├║ odpove─Ć servera ─Źo vid├ş┼í na s├ęriovej linke. Tvoj program o─Źak├íva odpove─Ć dlh├║ 6 znakov ┼żiadny k├│d str├ínky. V prvom poste si p├şsal ┼że prij├şma┼í pr├íve t├Żch 6 znakov. Teraz p├ş┼íe┼í o nejakom k├│de.

Padnutie sp├┤sob├ş zrejme to ┼że ten k├│d je asi o hodne dlh┼í├ş ako je 255 znakov a preto ti to poprepisuje kde ─Źo v pam├Ąti SRAM.
Nie je t├í odpove─Ć n├íhodou nejak├í chyba od servera, nako─żko spojenie si naviazal na porte 80(http) ale v GET m├í┼í https. No a samozrejme arduino https ned├í.
V prvom rade si o┼íetri to vkladanie odpovede do buffera. Potom sa pozri ─Źo dost├íva┼í a potom je to u┼ż len ot├ízka spracovania toho buffera.
teraz testuje┼í ─Źi m├í odpove─Ć 6 znakov. Ak ├íno
tak prv├ę tri musia by┼ą led. Ak s├║ dal┼í├ş znak sa ignoruje a ak je piaty znak 1 tak v├Żstup 3 d├í do jedna, inak do 0.
viac to nerob├ş.
Uk├í┼ż m├║dremu chybu a on sa ti po─Ćakuje. Uk├í┼ż chybu hlup├íkovi a on sa uraz├ş.
peterple
Ultimate ─Źlen
Ultimate ─Źlen
Pr├şspevky: 1755
Vek: 51.9
Zalo┼żen├Ż: 25.06.2013
Bydlisko: Krajn├ę
Karma: 48


Nasp├Ą┼ą na Arduino

Kto je pr├ştomn├Ż

U┼ż├şvatelia prezeraj├║ci si toto f├│rum: ┼Żiadny registrovan├Ż pou┼ż├şvate─ż a 1 hos┼ą.

Forums ©
Autor str├ínky je Ondrej Z├ívodsk├Ż(zawin), o graficky design sa star├í ─Żubo┼í Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
─îas potrebn├Ż k spracovaniu str├ínky 0.53 sek├║nd