Založen: Mar 25, 2023 Příspěvky: 23 Bydliště: Ostrava
Zaslal: út květen 23 2023, 17:45 Předmět: Sériová komunikace ESP-01 8266 a Arduino Nano
Ahoj, pokouším se předat si z ESP-01 8266 do Arduina za pomoci SoftwareSerialu string, ale nějak se mi to nedaří. Mohl by se mi někdo podívat na kód a říct mi, kde dělám chybu, prosím?
Založen: Apr 02, 2011 Příspěvky: 18544 Bydliště: Nový Bydžov
Zaslal: út květen 23 2023, 18:24 Předmět:
Nevím, co to máš za knihovnu SoftwareSerial.h.
Ta moje pro 328P se inicializuje:
SoftwareSerial mySerial(9, 10);
mySerial.begin(9600);
něco k přečtení na lince:
while (mySerial.available())
a vlastní čtení:
d = mySerial.read();
Je to kuchnutý z funkčního příjmu dat z GPS modulu. Myslím, že máš 2 problémy, na 0 a 1 je vstup a výstup HW UARTu 328P, musíš dát jiný, třeba 9 a 10 jako mám já.
A za druhák, SoftwareSerial neumí tak velkou přenosovou rychlost jako HW UART. Já mám odzkoušíno mezi dvěma 328P jde spolehlivě pouze 19200Bd. 57600 už švejkuje. _________________ Jirka
Založen: Mar 25, 2023 Příspěvky: 23 Bydliště: Ostrava
Zaslal: čt květen 25 2023, 18:00 Předmět:
Vyzkoušel jsem připojit ESP-01 k arduinu na piny 2, 3 namísto na RX,TX. Vytvořil SoftwareSerial a nastavil na 9600. Viz aktualizovaný kód. Ale dostávám pořád stejný výstup.
Díval jsem se i na to video, ale v komentářích se zmiňují o tom, že to má špatně.
Ale jestli dobře vidím, tak máš v tom kódu pro ESP-01 software serial zakomentovaný a používáš hardwarový (na kterém máš ale ten USB převodník "z GM", nebo ne?)… Jinými slovy, ono to Arduino možná nekecá, první musíš ověřit, jestli ti znak z ESP-01 skutečně odchází. Připoj to ESP přes TTL převodník přímo na RS232 a použij nějaký terminálový program, aby ses podíval… Výborný je třeba Terminal 1.9 by Br@y, mimochodem běhá i pod Wine - nebo jestli jsi na Linuxu, můžeš použít i příkaz screen, samozřejmě upravený dle svých požadavků - např.
kód:
screen /dev/ttyS0 9600
Na konzoli v Arduino IDE při programování ESP ten znak z ESP vidíš? Máš tam totiž ardSerial.write…
Založen: Apr 02, 2011 Příspěvky: 18544 Bydliště: Nový Bydžov
Zaslal: pá květen 26 2023, 14:26 Předmět:
Mahoney napsal(a):
Na konzoli v Arduino IDE při programování ESP ten znak z ESP vidíš? Máš tam totiž ardSerial.write…
No tak to je třetí chyba, tý jsem si ani nevšiml. Pokud chceš po sériovce přenášet text, tak musíš dát Serial.print("cosi");
Serial.Write ti přenese jen jeden byte. Pokud budeš chtít přenýst třeba unsigned long do druhýho Arduina abys měl i v tom druhým unsigned long tak musíš přenýst 4 byte třeba takhle:
kód:
unsigned long frequency = 20000000;
Serial.write((byte*)&frequency, sizeof(frequency));
A příjem na druhým bude:
kód:
unsigned long receivedFrequency;
if (Serial.available() >= sizeof(receivedFrequency)) {
Serial.readBytes((byte*)&receivedFrequency, sizeof(receivedFrequency));
}
JJ, to taky, i tohle by mohl použít (pokud by si hodnoty upravil), dobrej tip. Mě šlo ale o to, že v Setupu pro to ESP má použitý HW sériák a softwarový zakomentovaný, ale v Loopu zapisuje na ten softwarový (který si nenastavil), takže se logicky prostě nic neposílá. Proto jsem mu psal, ať se na to podívá pořádně (a taky se ty příspěvky snažím psát pro všechny, tzn. až se na to podívá za půl roku nějakej úplně jinej začátečník, tak aby mu to taky něco dalo, není to že bych chtěl např. z někoho dělat , nebo tak něco… )
Založen: Mar 25, 2023 Příspěvky: 23 Bydliště: Ostrava
Zaslal: st květen 31 2023, 16:04 Předmět:
Už z toho začínám být zoufalý
Znovu jsem upravil kód v prvním příspěvku. Zrušil jsem software serial a mám zapojeno přímo do RX, TX v Arduinu do kříže. Ale stejně mi to pořád píše 0. Když zapojím ESP do převodníku a spustím si ho samostatně, tak do serial monitoru ten string vypisuje.
Založen: Apr 02, 2011 Příspěvky: 18544 Bydliště: Nový Bydžov
Zaslal: st květen 31 2023, 18:49 Předmět:
No a není tohle náhodou ten Tvůj problém? ESP jsem neštudoval ale trápil jsem se s Every. To má první USART pro USB štekr a na něj se píše přímo Serial.printem. Proto máš správnej výpis v PC. Jenže pokud chceš TTL sériový data poslat mimo USB na nějaký piny, tak na to jsou v Every další tři USARTy. IDE prostředí má povolenej jen jeden ale ty další dva se dají aktivivat dodatečně v definici desky. Takže pokud chceš posílat data mimo USB, používáš Serial1.print, Serial2.print a Serial3.print.
ESP to může mít podobně. Chci tím říct, že z toho ESP nemusí nic korektního lýzt. Osciloskopem se můžeš na linku podívat, pokud nemáš, tak dej 300Bd a mělo by to být vidět na připojený LEDce.
Přečti si, jak je u ESP ta sériová komunikace dělaná a nebo se zkus zeptat OpenAI. Mě u toho Every poradil, co mám na netu hledat. Ale přímej odkaz na net ti nedá, prý autorský práva. _________________ Jirka
Založen: Apr 02, 2011 Příspěvky: 18544 Bydliště: Nový Bydžov
Zaslal: st květen 31 2023, 19:07 Předmět:
Tak tady máš vyjádření Open AI:
kód:
Ahoj! Máš správné úvahy ohledně problémů s komunikací mezi ESP D1 a ProMini. Zde je odpověď na tvé dotazy:
Desky ESP, včetně ESP D1, jsou skutečně navrženy pro provoz na 3,3V. To znamená, že signály RX a TX na ESP D1 budou pracovat na úrovních 0-3,3V. ProMini na druhou stranu pracuje na 5V úrovních. To může způsobit problémy s kompatibilitou úrovní signálů mezi oběma deskami. Pro správnou komunikaci by měly být úrovně signálů přizpůsobeny, například pomocí úrovněrů signálu (level shifter) mezi oběma deskami.
ESP D1 (a další desky ESP) má většinou více USART (Universal Asynchronous Receiver/Transmitter) rozhraní. Standardně je používán USART0 pro komunikaci přes USB (tzv. "Serial"), ale existuje také možnost použití dalších USART rozhraní (např. USART1) pro komunikaci přes TTL linku na jiných pinech. Pokud ESP D1 disponuje více USART rozhraními, může být nutné specifikovat, které rozhraní se má použít pro komunikaci přes TTL linku (Serial1.print atd.). Je důležité si ověřit dokumentaci desky ESP D1, abys zjistil, jaké USART rozhraní je k dispozici a jak je správně použít pro komunikaci s ProMini.
V obou případech je důležité provést správné přizpůsobení úrovní signálů a správně specifikovat USART rozhraní pro komunikaci mezi ESP D1 a ProMini.
Založen: Dec 12, 2005 Příspěvky: 2382 Bydliště: SR, Poprad
Zaslal: st květen 31 2023, 19:41 Předmět:
AI keca, a nie je to esp D1, ale 01.
Bezne pouzivam 01 a jej seriovy port a chodi to v pohode.
Pro mini existuje v 2 verziach. 5V 16MHz a 3.3V 8MHz
Len taka poznamocka: bacha na 01, su dost nachylne na odpalenie. nahodne po zapnuti zacnu sialene hriat a uz nejdu. Zapojenim to ale nie je, lebo ked ich nahradim 12, tak ta mi neodisla ani jedna. (Aj na internete sa casto stazuju na vysoku kazivost 01).
kód:
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
}
void loop() {
if (Serial.available() > 0) {
Serial.write(Serial.read());
}
yield(); //toto neviem ci potrebuje aj pro mini, alebo iba esp
}
skus to spustit na pro mini a mal by to byt obycajny loopback - na overenie, ze seriova komunikacia funguje ako ma. _________________ No vidis, a tak si sa bal
Jenže tady nikde ve vláknu nebylo uvedeno, co má za desku, nevím kde se vzalo Pro mini (že je AI blbost obecně, o tom už bylo vlákno sólo).
ESP-01 je na 3V3, ale myslím si, že má nějakou Arduino desku na 5V a ta s tím má v jednom směru možná problém (záleží, jak to napájí, a navíc bych si nevsadil ani na to, že v tom druhém má ESP-01 5V tolerantní vstup):
Založen: Dec 12, 2005 Příspěvky: 2382 Bydliště: SR, Poprad
Zaslal: st květen 31 2023, 22:04 Předmět:
aha, v prvom prispevku pise, ze kod je na arduino nano, a to je 5V.
ESP nie je 5V tolerant, to je spomenute hadam v kazdom clanku o tomto module.
Cisto teoreticky to nano by malo ako tak fungovat aj na 3.3V - ja som si bezne palil arduino bootloader do atmegy328 so 16MHz krystalom cez esp-12 a cele to bolo napajane 3.3V _________________ No vidis, a tak si sa bal
Založen: Apr 02, 2011 Příspěvky: 18544 Bydliště: Nový Bydžov
Zaslal: čt červen 01 2023, 6:56 Předmět:
Mahoney napsal(a):
Jenže tady nikde ve vláknu nebylo uvedeno, co má za desku, nevím kde se vzalo Pro mini (že je AI blbost obecně, o tom už bylo vlákno sólo).
Co je blbost? Hned v prvním příspěvku je napsáno, že to posílá do ProMini. A že neexistuje Wemos D1 ESP8266 je taky blbost? Když už teda ESP 01, tak jakej je rozdíl proti Wemos D1? Žádnej.
No a to s Serial, Serial1 až Serial4 mám odzkoušeno osobně. Nebylo specifikováno o jakou ESP desku jde třeba ESP 32 maj USARty tři. _________________ Jirka
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.