Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Sériová komunikace ESP-01 8266 a Arduino Nano
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další)
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
mjana



Založen: Mar 25, 2023
Příspěvky: 23
Bydliště: Ostrava

PříspěvekZaslal: út květen 23 2023, 17:45    Předmět: Sériová komunikace ESP-01 8266 a Arduino Nano Citovat

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?

RX, TX zapojeno do kříže.

ESP-01 8266:
kód:

#include "ESP8266WiFi.h"

const char* ssid = "";       //Enter SSID
const char* password = "";  //Enter Password

void setup(void) {
  Serial.begin(9600);
}

void loop() {
  Serial.print("esp1");
  delay(5000);
}


Arduino Nano:
kód:

void setup() {
  // Serial
  Serial.begin(9600);
}

void loop() {
   if (Serial.available() > 0) {
   Serial.println(Serial.read());
  }
  delay(1000);
}


Na výstupu mi Arduino píše:
kód:

0
0
0
atd...


Naposledy upravil mjana dne st květen 31 2023, 16:02, celkově upraveno 2 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Celeron



Založen: Apr 02, 2011
Příspěvky: 17875
Bydliště: Nový Bydžov

PříspěvekZaslal: út květen 23 2023, 18:24    Předmět: Citovat

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

Proč mi nemůže všechno chodit hned ?!!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Cowley



Založen: Feb 04, 2005
Příspěvky: 3302

PříspěvekZaslal: út květen 23 2023, 19:57    Předmět: Citovat

Něco z YouTube

Na začátku propojuje komunikaci na vnitřní UART 0/1, na konci pak ještě na Software Serial 2/3

Každopádně SoftwareSerial 0/1 je blbost.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mjana



Založen: Mar 25, 2023
Příspěvky: 23
Bydliště: Ostrava

PříspěvekZaslal: čt květen 25 2023, 18:00    Předmět: Citovat

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ě.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 384

PříspěvekZaslal: čt květen 25 2023, 18:21    Předmět: Citovat

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…
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Celeron



Založen: Apr 02, 2011
Příspěvky: 17875
Bydliště: Nový Bydžov

PříspěvekZaslal: pá květen 26 2023, 14:26    Předmět: Citovat

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));
}

_________________
Jirka

Proč mi nemůže všechno chodit hned ?!!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 384

PříspěvekZaslal: pá květen 26 2023, 17:23    Předmět: Citovat

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 obrazek_cenzura, nebo tak něco… )
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mjana



Založen: Mar 25, 2023
Příspěvky: 23
Bydliště: Ostrava

PříspěvekZaslal: st květen 31 2023, 16:04    Předmět: Citovat

Už z toho začínám být zoufalý Very Happy

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Celeron



Založen: Apr 02, 2011
Příspěvky: 17875
Bydliště: Nový Bydžov

PříspěvekZaslal: st květen 31 2023, 18:49    Předmět: Citovat

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

Proč mi nemůže všechno chodit hned ?!!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 384

PříspěvekZaslal: st květen 31 2023, 18:51    Předmět: Citovat

Ok, když ESP vypisuje, tak ho tak už nech, zatím. Co máš přesně za Arduino desku?

Edit - 2Celeron: Koukám, že zase ve stejnej čas Very Happy Může mít problém s napěťovými úrovněmi, proto se ho ptám na desku.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Celeron



Založen: Apr 02, 2011
Příspěvky: 17875
Bydliště: Nový Bydžov

PříspěvekZaslal: st květen 31 2023, 19:07    Předmět: Citovat

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.

_________________
Jirka

Proč mi nemůže všechno chodit hned ?!!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pocitujlasku



Založen: Dec 12, 2005
Příspěvky: 2193

PříspěvekZaslal: st květen 31 2023, 19:41    Předmět: Citovat

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
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 384

PříspěvekZaslal: st květen 31 2023, 20:05    Předmět: Citovat

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):

https://learn.sparkfun.com/tutorials/logic-levels/all

(Arduino logic levels)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pocitujlasku



Založen: Dec 12, 2005
Příspěvky: 2193

PříspěvekZaslal: st květen 31 2023, 22:04    Předmět: Citovat

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
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Celeron



Založen: Apr 02, 2011
Příspěvky: 17875
Bydliště: Nový Bydžov

PříspěvekZaslal: čt červen 01 2023, 6:56    Předmět: Citovat

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

Proč mi nemůže všechno chodit hned ?!!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další) Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

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.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.16 sekund