Close

Arduino Uno (rev3) + wifi shield ESP8266 připojení-oživení

Úvodní stránka Fórum Hardware Arduino Arduino Uno (rev3) + wifi shield ESP8266 připojení-oživení

  • Toto téma obsahuje celkem 46 odpovědí. Do diskuze (7 diskutujících) se naposledy zapojil uživatel Dzaraaa a poslední změna proběhla před 7 roky a 11 měsíci.
Aktuálně je na stránce zobrazeno 17 příspěvků - 31. až 47. (celkem z 47)
  • Autor
    Příspěvky
  • #10138
    MilosD
    Účastník

    Na Mega chodí tohle:
    pokus mega

    #10150
    Dzaraaa
    Účastník

    Bohužel tento kód je pro verzi Mega. Děkuji.

    #10151
    Dzaraaa
    Účastník

    Neměl by někdo zkušenost s tímto shieldem?
    Momentálně mám zapojeno RX a TX shieldu na RX a TX arduina a potřebuji kód, který uvede shield do činnosti. Budu rád za Vaše nápady. Děkuji.

    #10152
    Zbyšek Voda
    Účastník

    Dobrý den,
    musíte mít připojené RX na TX a TX na RX (ne RX na RX apod.)

    Potom už jenom přes sériovou linku (Serial.println…) posíláte do ESP AT příkazy (za předpokladu, že máte v desce původní firmware). At příkazy viz: http://www.pridopia.co.uk/pi-doc/ESP8266ATCommandsSet.pdf.

    Pokud máte Arduino s více sériovými linkami (Mega, Leonardo, …), můžete do něj nahrát program, který bude sloužit jenom jako přeposílatel mezi PC a ESP, kterému přes Serial Monitor můžete posílat AT příkazy, ozkoušet si je a až potom je natvrdo napsat do programu. Pěkný návod je například zde: http://dalpix.com/blog/connecting-your-arduino-wifi-esp-8266-module

    #10153
    Dzaraaa
    Účastník

    Dobře a mohl byste mi sepsat úvod kódu, nevím si rady jsem začátečník. Potřebuji kód ve fázi kdy budu moci pokračovat s psaní AT příkazů. Děkuji.

    #10162
    Vojtěch Vosáhlo
    Účastník

    To co chcete je prostě jednoduchý kód pro serial. Dá se najít kdekoliv na webu. Chápu že jste začátečník, to jsme byli všichni ale stačí hledat. Když něco nevím, skočím na https://www.arduino.cc/en/Reference/ a prostě si to najdu třeba i s ukázkovým kódem.
    Ukázka pro serial println je: `/*
      Analog input

     reads an analog input on analog in 0, prints the value out.

     created 24 March 2006
     by Tom Igoe
     */

    int analogValue = 0;    // variable to hold the analog value

    void setup() {
      // open the serial port at 9600 bps:
      Serial.begin(9600);
    }

    void loop() {
      // read the analog input on pin 0:
      analogValue = analogRead(0);

      // print it out in many formats:
      Serial.println(analogValue);       // print as an ASCII-encoded decimal
      Serial.println(analogValue, DEC);  // print as an ASCII-encoded decimal
      Serial.println(analogValue, HEX);  // print as an ASCII-encoded hexadecimal
      Serial.println(analogValue, OCT);  // print as an ASCII-encoded octal
      Serial.println(analogValue, BIN);  // print as an ASCII-encoded binary

      // delay 10 milliseconds before the next reading:
      delay(10);
    }

    
    
    Řeknu si že ale nechci posílat data přečtená z analogu ale jen AT+XXXXXX příkaz.
    Tak si kód prostě a jednoduše přepíšu, smažu čtení analogu a několik println vyměním za jedno. Vznikne mi něco takového: 

    void setup() {
      // open the serial port at 9600 bps:
      Serial.begin(9600);
    }

    void loop() {
    Serial.println(„AT“);
    delay(1000);
    }
    `

    Doufám že chápete kam tím mířím. Prostě učit se, učit se, učit se 😉

    #10163
    Zbyšek Voda
    Účastník

    Popřípadě ten přeposílač mezi sériovými linkami (Serial a Serial1) vypadá takto:

    void setup()
    {
        Serial.begin(9600);
        Serial1.begin(9600);
    }
    void loop()
    {
        while (Serial1.available()) {
            Serial.write(Serial1.read());
        }
        while (Serial.available()) {
            Serial1.write(Serial.read());
        }
    }

    ESP pak nepřipojujete na piny RX a TX, ale RX1 a TX1 – RX a TX jsou totiž napojené přímo na převodník z PC. Více linek ale mají jenom některé desky – jak jsem psal – Arduino Mega, Leonardo…

    #10164
    Dzaraaa
    Účastník

    Vyzkoušel jsem rady ale stejně jsem neuspěl. Po zadání tohoto kodu se zobrazí chybová hláška:

    void setup()
    {
    Serial.begin(9600);
    Serial1.begin(9600);
    }
    void loop()
    {
    while (Serial1.available()) {
    Serial.write(Serial1.read());
    }
    while (Serial.available()) {
    Serial1.write (Serial.read());
    }

    hláška:
    Serial1.write(Serial.read());
    ^
    exit status 1

    jak ji vyřeším?

    #10165
    Dzaraaa
    Účastník

    Ještě mám nejasno v jedné věci. Když má arduino TX a RX piny 2 krát a to jednou na digitálních pinech 0 a 1 anebo vyvedeny jako samostatné. Mám zapojeny ty samostatné jak je tedy vzájemně propojit? RX na TX nebo RX na RX atd. Musí být v kodu programu zapsané,že má arduino pro komunikaci použít piny které jsou vyvedeny jako samostatné. Děkuji.

    #10166
    Vojtěch Vosáhlo
    Účastník

    Pina má jen jedny a jsou vyvedeny 2x, nic specialniho se nastavovat nemusí. Musí být připojeny RX na TX a Tx na RX, jak už psal Zbyšek. Proč používáte kód pro 2 sériové porty když máte jen jeden jak jste psal?

    #10167
    Dzaraaa
    Účastník

    Tak tedy arduino UNO má jen jeden pár RX a TX jen jsou vyvedeny 2 krát jestli teď rozumím.

    ještě jsem zjistil, že mám problém v téhle věci: nahrál jsem na samotné arduino bez nasazeného wifi shieldu program blink, vše chodí jak má a když nasadím wifi shield bez zapojení RX a TX vypíše to následující chybovou hlášku:

    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
    Problém s přenosem dat na vývojovou desku (board). Na http://www.arduino.cc/en/Guide/Troubleshooting#upload naleznete další doporučení.
    Co dělat s tímto problémem?

    #10189
    Dzaraaa
    Účastník

    Věděl by někdo jak řešit? Děkuji.

    #10190
    Dreamer
    Účastník

    Arduino UNO nemá TX a RX vyvedené dvakrát. Pouze je má na desce připojeny na převodník a přes tyto piny se nahrává program. Po nahrání programu jsou volně přístupné ale většinou se nepoužívají právě proto že je používá převodník při nahrávání programu. Pravděpodobně je tedy používá ke komunikaci i tvůj WiFi shield. Pro nahrání programu jej tedy musíš sundat, po nahrání zase nasadit (Samozřejmě s odpojeným napájením).

    #10191
    Dzaraaa
    Účastník

    Áha… no jenomže mám ještě problém v tom viz předchozí text. Co s tím?

    #10192
    Dreamer
    Účastník

    No jestli myslíš ten problém popisovaný: 22.1.2017 (13:16) tak to IDE říká že nemůže komunikovat s UNO – tedy nemůže do něj nahrát program. Jak jsem psal výše nejspíš je to tím že jsou piny shieldu TX a RX propojeny s piny UNO. Pokud tomu tak je tak je to trochu nešťastné řešení. Konkrétně ale asi líp poradit nedokážu, tenhle konkrétní shield nemám a asi ani nikdo kdo se pokoušel ti odpovídat. Co konkrétně potřebuješ řešit? Možná by bylo lepší objednat třeba NodeMCU D1 mini. To se dá připojit přímo a programovat bez UNO a je tady určitě daleko známější.

    #10194
    Zbyšek Voda
    Účastník

    Řešení: V době programování Arduina odpojit cokoliv, co je připojeno na piny RX a TX (0 a 1). Jak psal Dreamer.

    #10202
    Dzaraaa
    Účastník

    Ano, nejspíše to tak bude. Také jak radíte – uvažuji o koupi nodeMCU, přesně tak bude to bez komplikací. Ale přeci bych chtěl toto řešení nějak využít když už jsem jej pořídil. Zkusím tedy naprogramovat arduino bez nasazeného shieldu a uvidím. Zatím děkuji Všem, kteří se účastnili diskuze 🙂

Aktuálně je na stránce zobrazeno 17 příspěvků - 31. až 47. (celkem z 47)
  • Pro reakci na toto téma se musíte přihlásit.