Nahrání programu do ESP8266

martinkouda
Příspěvky: 20
Registrován: 27 kvě 2020, 17:01
Reputation: 0

Nahrání programu do ESP8266

Příspěvek od martinkouda » 27 kvě 2020, 17:17

Ahoj,
zkusil jsem podle tohoto návodu https://create.arduino.cc/projecthub/ha ... uno-efb05f nahrát jednoduchý program do ESP8266 modulu. I když podle všeho je vše v pořádku, tak to co by to mělo dělat (blikat zabudovanou ledkou) se neděje a já nemůžu za nic na světě přijít na to proč. Nedokázal by mi někdo poradit? Přikládám foto mého zapojení (což si myslím, že je správně), nahrávaný program a výpis po kompilaci/uploadu.

Díky,
Martin

Foto zapojení:
https://1drv.ms/u/s!AhgxT63ybxqpyednzSjsY0s1Ho-M_w
https://1drv.ms/u/s!AhgxT63ybxqpyedoFqUxCOFQrxu8iw


Nahraný program:

Kód: Vybrat vše

void setup() {
  // initialize LED_BUILTIN as an output pin.
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off
  delay(1000);
}
Výpis po kompilaci/uploadu:

Kód: Vybrat vše

Executable segment sizes:


IROM   : 228508          - code in flash         (default or ICACHE_FLASH_ATTR) 


IRAM   : 26792   / 32768 - code in IRAM          (ICACHE_RAM_ATTR, ISRs...) 


DATA   : 1248  )         - initialized variables (global, static) in RAM/HEAP 


RODATA : 688   ) / 81920 - constants             (global, static) in RAM/HEAP 


BSS    : 24880 )         - zeroed variables      (global, static) in RAM/HEAP 


Sketch uses 257236 bytes (26%) of program storage space. Maximum is 958448 bytes.
Global variables use 26816 bytes (32%) of dynamic memory, leaving 55104 bytes for local variables. Maximum is 81920 bytes.
esptool.py v2.8
Serial port COM5
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 50:02:91:dd:68:e5
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 1MB
Compressed 261392 bytes to 192985...

Writing at 0x00000000... (8 %)
Writing at 0x00004000... (16 %)
Writing at 0x00008000... (25 %)
Writing at 0x0000c000... (33 %)
Writing at 0x00010000... (41 %)
Writing at 0x00014000... (50 %)
Writing at 0x00018000... (58 %)
Writing at 0x0001c000... (66 %)
Writing at 0x00020000... (75 %)
Writing at 0x00024000... (83 %)
Writing at 0x00028000... (91 %)
Writing at 0x0002c000... (100 %)
Wrote 261392 bytes (192985 compressed) at 0x00000000 in 16.7 seconds (effective 125.0 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: Nahrání programu do ESP8266

Příspěvek od ondraN » 28 kvě 2020, 06:51

Zkusil bych místo konstanty LED_BUILTIN použít přímo číslo pinu nebo si definovat vlastní konstantu. Jiná chyba tam snad ani být nemůže.

martinkouda
Příspěvky: 20
Registrován: 27 kvě 2020, 17:01
Reputation: 0

Re: Nahrání programu do ESP8266

Příspěvek od martinkouda » 28 kvě 2020, 08:10

ondraN píše:
28 kvě 2020, 06:51
Zkusil bych místo konstanty LED_BUILTIN použít přímo číslo pinu nebo si definovat vlastní konstantu. Jiná chyba tam snad ani být nemůže.
Děkuji za opdověď. A netušíte jak jsou ty piny číslované? Označení mají "GPIO 0" a "GPIO 2", tak jestli mám použít: digitalWrite(0, HIGH);, resp. digitalWrite(2, HIGH); nebo jsou číslované 0 a 1 nebo 1 a 2, popř. nějaké jiné číslo?

A ještě bych se rád zeptal, jestli to celé správně chápu, tak když nahraji program do ESPxx (což se mě asi povedlo) tak mi pak stačí celé to odpojit od Arduina (nechat jen připojenou LEDku), připojit napájení a mělo by to fungovat? Tzn. že program se mi po odpojení napájení z ESPxx nesmaže?

Děkuji moc,
Martin

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Nahrání programu do ESP8266

Příspěvek od pavel1tu » 28 kvě 2020, 09:29

https://techtutorialsx.com/2017/04/02/e ... -mappings/

ANO, ESP si program zapamatuje ....

Program uprav

Kód: Vybrat vše

#define LED_MOJE D0

void setup() {
  // initialize LED as an output pin.
  pinMode(LED_MOJE, OUTPUT);
}

void loop() {
  digitalWrite(LED_MOJE, HIGH);   // turn the LED on
  delay(1000);
  digitalWrite(LED_MOJE, LOW);    // turn the LED off
  delay(1000);
}
Neověřená funkčnost, jen jsem to našel jako příklad.
Než zde položíš další dotaz, koukni se do příkladů na internetu,
kde jsou i základy vysvětleny.
Ne že by nám to tu vadilo, ale na co přijdeš sám - zapamatuješ si na věky.

PS: pokud začínáš, začal bych s tím UNO přes které to nahráváš ;)
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

martinkouda
Příspěvky: 20
Registrován: 27 kvě 2020, 17:01
Reputation: 0

Re: Nahrání programu do ESP8266

Příspěvek od martinkouda » 28 kvě 2020, 15:52

Díky za odpověď.
Tohle mi bohužel nefunguje :cry: píše to 'D0' was not declared in this scope. Naincludoval jsem i knihovnu "WiFiEsp.h" (nevím, kde jsou ty konstanty definované). Jediné konstanty, které projdou kompilací jsou GPC0...GPC16.

Normálně googlím, než se zeptám (je to i pro mě samotného pohodlnější a rychlejší a ptám se až když opravdu nevím kudy dál jít a teď opravdu nevím), ale to musí člověk vědět co má hledat. Teď jsem strávil googlem 2 hodiny a pořád nemůžu přijít na to, proč nebliká. Ze zoufalství jsem nastavil všechny možné piny pinMode(0, OUTPUT)...pinMode(16, OUTPUT) a analogicky k tomu digitalWrite(0, HIGH)...digitalWrite(16, HIGH) a digitalWrite(16, LOW). Jinak jako WiFi modul připojený k Arduinu normálně funguje.

S UNO už mám pár drobných věcí za sebou, teď jsem chtěl zkusit něco náročnějšího. Ale každopádně jako "elektrikář" jsem začátečník.

Martin

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Nahrání programu do ESP8266

Příspěvek od pavel1tu » 28 kvě 2020, 17:21

Já tam tu 16 měl, ale pak jsem ji dle toho odkazu opravil na to D0, sorry
ESP zatím doma nemám, alespoň vidíš, že ne vše na netu co je - funguje - takové nepsané pravidlo Arduin a všeho okolo.

Vítej v klubu ;)

PS: připoj LED na nějaký výstup a vyzkoušej ten
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: Nahrání programu do ESP8266

Příspěvek od ondraN » 28 kvě 2020, 18:56

Já s ESP nedělám, ale našel jsem tabulku hodnot pinových konstant, tak zkusit přímo to číslo, co je vpravo. A ještě bych vyzkoušel, třeba diodovým testerem, jestli ta LED opravdu svítí.
Tak obrázek nejde vložit, je to tedy v cca 2/3 toho odkazu.
https://www.instructables.com/id/NodeMC ... nd-Pinout/

Kony
Příspěvky: 382
Registrován: 09 dub 2020, 11:43
Reputation: 0

Re: Nahrání programu do ESP8266

Příspěvek od Kony » 31 kvě 2020, 14:05

ESP8266 má označení pinu 0

Takže kod uprav na

Kód: Vybrat vše

#define LED_MOJE 0

void setup() {
  // initialize LED as an output pin.
  pinMode(LED_MOJE, OUTPUT);
}

void loop() {
  digitalWrite(LED_MOJE, HIGH);   // turn the LED on
  delay(1000);
  digitalWrite(LED_MOJE, LOW);    // turn the LED off
  delay(1000);
}

martinkouda
Příspěvky: 20
Registrován: 27 kvě 2020, 17:01
Reputation: 0

Re: Nahrání programu do ESP8266

Příspěvek od martinkouda » 01 čer 2020, 09:53

Díky všem moc za odpovědi. Pokusím se shrnout svůj pokus:
Když zapojím ESP pro programování (postupuji podle návodu viz. výše), nahraji úspěšně program, připojim LEDku, tak ta svítí (nepřetržitě). Když ESP zapojím pro normální práci jako WiFi a i s nahraným programem a připojím LEDku tak ta nesvítí. Vyčetl jsem, že to je normální chování ESP, v módu pro programování je GPIO2 na HIGH a jinak na LOW. Program, který jsem nahrál je následující:

Kód: Vybrat vše

void setup() {
  // initialize LED_BUILTIN as an output pin.
  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(14, OUTPUT);
  pinMode(15, OUTPUT);
  pinMode(16, OUTPUT);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(0, HIGH);   // turn the LED on
  digitalWrite(1, HIGH);   // turn the LED on
  digitalWrite(2, HIGH);   // turn the LED on
  digitalWrite(3, HIGH);   // turn the LED on
  digitalWrite(4, HIGH);   // turn the LED on
  digitalWrite(5, HIGH);   // turn the LED on
  digitalWrite(6, HIGH);   // turn the LED on
  digitalWrite(7, HIGH);   // turn the LED on
  digitalWrite(8, HIGH);   // turn the LED on
  digitalWrite(9, HIGH);   // turn the LED on
  digitalWrite(10, HIGH);   // turn the LED on
  digitalWrite(11, HIGH);   // turn the LED on
  digitalWrite(12, HIGH);   // turn the LED on
  digitalWrite(13, HIGH);   // turn the LED on
  digitalWrite(14, HIGH);   // turn the LED on
  digitalWrite(15, HIGH);   // turn the LED on
  digitalWrite(16, HIGH);   // turn the LED on
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on
  delay(1000);
  digitalWrite(0, LOW);    // turn the LED off
  digitalWrite(1, LOW);    // turn the LED off
  digitalWrite(2, LOW);    // turn the LED off
  digitalWrite(3, LOW);    // turn the LED off
  digitalWrite(4, LOW);    // turn the LED off
  digitalWrite(5, LOW);    // turn the LED off
  digitalWrite(6, LOW);    // turn the LED off
  digitalWrite(7, LOW);    // turn the LED off
  digitalWrite(8, LOW);    // turn the LED off
  digitalWrite(9, LOW);    // turn the LED off
  digitalWrite(10, LOW);    // turn the LED off
  digitalWrite(11, LOW);    // turn the LED off
  digitalWrite(12, LOW);    // turn the LED off
  digitalWrite(13, LOW);    // turn the LED off
  digitalWrite(14, LOW);    // turn the LED off
  digitalWrite(15, LOW);    // turn the LED off
  digitalWrite(16, LOW);    // turn the LED off
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off
  delay(1000);
}
Ze zoufalství jsem nechal pro jistotu "blikat" všechny možné piny a stejně se to chová tak jak jsem teď popsal (buď svítí nebo nesvítí, ale NEBLIKÁ).

Když jsem pak zkusil ESP připojit pro normální práci (jako WiFi), tak ta už se od té doby (co jsem do ní nahrál program) chová divně a k WiFi už se nepřipojí (předtím se připojila). Už nevím kudy kam. Jsem z toho trošku zoufalý :) Používáte někdo ESP bez Arduina pro nějaké jednodušší projekty?

Díky,
Martin

RomanB
Příspěvky: 90
Registrován: 04 zář 2017, 14:28
Reputation: 0
Bydliště: Havířov

Re: Nahrání programu do ESP8266

Příspěvek od RomanB » 01 čer 2020, 11:03

ESP8266-01 má interní ledku na pinu TX GPIO1. Všechno smaž a nechej jen tu 1.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů