Fórum témák
» Több friss téma |
Na de ha jól értem te a google.com kezdőoldalát kéred le. Én csak a headert!
Nem, a "-I" kapcsolo csak a headert keri le.
Ja... Akkor nem a wifi modul meg a PIC a hibás. Viszont nem örülök a dolognak mert a végcél az lenne hogy bár bájtnyi adatokat küldjek 40ms-onként hogy a másik oldalon 25FPS-el tudjon frissülni a kép és így folyamatosnak tűnjön. Egy szkópképernyő-szerű dolog lenne ez. Mondjuk nem a google-com-al beszélgetnék hanem egy PC-n futó programmal.
Hasznalj UDP kapcsolatot adatkuldesre. A TCP tul sokat kommunikal ami sok esetben felesleges. Ellenorizd mondjuk tcpdump-al vagy (a kenyelmesebb) wireshark-al.
Az UDP szerintem itt nem lenne jó mert nem megengedhető hogy rossz adat menjen át. Na mindegy, majd agyalok még ezen...
Közben belefutottam egy másik problémába: Lekérdezem az ESP8266-nak az IP-címét és a saját tartományán belül próbálnám végigszkennelni hogy melyik címen kap választ egy programtól (ami a számítógépemen fut). Elküldi a PIC a wifi modulnak az "AT+CIPSTART="TCP","192.168.0.0",1500" parancsot, erre az ESP8266-tól ezt a választ kapja: Idézet: „AT+CIPSTART="TCP","192.168.0.0",1500 ERROR CLOSED” Azért kapja ezt a választ mert a 0-ás végű címen nincs semmi a hálózaton. A probléma az, hogy az üzenet végén van egy ERROR és egy CLOSED is. Ugyanis a mikrovezérlő UART vételét úgy írtam meg hogy akkor tekinti befejezettnek a vételt ha a végén vagy "OK" van, vagy "FAIL", vagy "ERROR", vagy "CLOSED", vagy esetleg ">". Azért ezeket figyelem, mert ugyebár normális esetben ezek lehetnek az ESP8266 üzeneteinek a végén. Kivéve a fent idézett esetben, ahol van ERROR is és CLOSED is. A programom az ERROR-nál már úgy veszi hogy befejeződött a vétel és engedi tovább futni a főprogramot, amely annak tudtában hogy az ESP8266 ráér (legalábbis szerinte), rögtön küldi is a következő parancsot: "AT+CIPSTART="TCP","192.168.0.1",1500". Erre az ESP8266 azt mondja hogy ő most nem ér rá. Végül elküldi ismét az ERROR CLOSED üzenetet de azt ő még a 0-ás végű IP-címre érti, a mikrovezérlő viszont azt hiszi hogy ez a válasz már az 1-es végűről szól. Van több ötletem is a probléma megoldására de egyik sem a legelegánsabb. Bele futott esetleg más is ebbe a problémába?
A konkret problemara nem tudok valaszt, viszont az eredeti kerdest en inkabb UDP broadcast message-el oldanam meg.
Szerintem elegansabb, mint scannelni a subnetet.
Igen ez jó ötlet, csak az a baj hogy UDP kapcsolat esetén hiába kapja meg broadcast-tel az egész tartomány az üzenetet, válaszolni nem tud rá hiszen UDP. Vagy váltogatni kell hogy mikor ki legyen a szerver és ki a kliens, vagy az UDP és a TCP közt kellene váltogatni valahogy...
A "station" módban az ESP8266 csatlakozik egy wifi hálózathoz, "softAP" módban őhozzá csatlakoznak, de mi az a "softAP+station" mód?
'Egyszerre' AP es kliens.
Ez egy nagyszeru feature, csak sajnos limitaltan mukodik. A limitacio alatt azt ertem, hogy csak egy hardware (csatorna) van, tehat a beallitasok egy resze adott, nem tudod kulon, kulon beallitani. Ez nagyon fontos es tervezni kell vele. (pl a csatorna kivalasztasnal)
De lehet külön MAC és IP cím az AP és a kliens részen is softAP+station módban?
Nem tudok hiteles valaszt adni, de gondolom igen, mivel a doksiban csak a radios csatorna volt emlitve mint szuk hardware keresztmetszet. Legalabbis en csak arra emlekszem, a MAC es az IP pedig software beallitas.
ESP8266-al, mint webszerverrel, próbálok egy képet elküldeni az alábbi program részlettel:
Egészen kis méretű képek esetén jól működik, de (sacc) 2...3kbyte feletti fájlméret esetén megszakad a kép küldése. Hibaüzenetet nem kapok. Van valakinek ötlete mi lehet a gond? A képfájlt természetesen előtte feltöltöttem az ESP-be A hozzászólás módosítva: Aug 28, 2016
Szia
Emlékeim szerint a LUA és ESP nem buffereli az adatok küldést. Azaz egy küldés alatti adatra nem szabad másik adatcsomagot küldeni. A hozzászólás módosítva: Aug 28, 2016
Pontosabban: valamennyi buffer nyilván van, de a küldés nem ellenőrzi, hogy az előző küldés már befejeződött-e.
A másik hiba, ami nálam volt, holgy file beolvasásnál limitált a beolvasható byte-ok mérete, kb 1k után lemarad a többi. De ha jól látom, Te ezt megoldottad.
Tehát akkor jól gondolom, hogy a fájldarabok küldését az alábbi után kellene beépítenem a programba?:
A másik kérdésem: Mivel nincs file azonosító, egyszerre csak egy fájl lehet megnyitva? Vagy ha megnyitok egy másik fájlt, majd bezárom, akkor a korábban megnyitott fájl még nyitva van? (végülis ki lehet próbálni mi történik, de hátha valaki kapásból tudja a választ) A hozzászólás módosítva: Aug 29, 2016
Amúgy ESP12 esetében kb. mekkora memória áll rendelkezésre a LUA változóinak számára?
Most már működik a kép elküldése, az alábbi kódrészlettel:
Ez viszont nagyon lassú, egy 40kb körüli képfájl majdnem 12 másodperc alatt jön le. Ez ennyit tud, vagy gyorsabbá lehet tenni valahogyan? A hozzászólás módosítva: Aug 29, 2016
Az ESP8266-nak 96kB-os DRAM-ja van, nyilván ezt másra is használja.
Gondolom a HEAP-et, ha megnézed, megkapod a szabad memória mennyiségét. Egyébként valahol azt olvastam,hogy maga a LUA nem korlátozza a változó méretét. Az a baj, hogy én nem vagyok LUA-s profi, csak játszottam vele (ESP01 és most ESP12F) De pont ezekbe belebotlottam. Ráadásul mindig azt hiszem, hogy már értem mi mit csinál aztán rádöbbenek, hogy nem. Egyébként én azon gondolkoztam, hogy talán egy változóba a teljes filet beolvasni, aztán elküldeni egyszerre talén működne. 40 KB viszont akkor is sok lenne neki. Láttam valahol egy forráskódot, ott a kép egy link mögött valami fileszerveren volt, és a LUA csak a linket rakta fel.
Igy vaktaban (ilyen iranyu tapasztalat nelkul) azt hiszem nem pont warez szervernek szantak ezt a modult
Pi Zerora dugva kb 3MBit korul prodikalt, azt hiszem ezt nevezhetjuk tiszta atvitelnek. Ez a download volt, felfele talan a fele, de nem emlekszem pontosan. A hozzászólás módosítva: Aug 29, 2016
Hát igen, ez nem nagy adatmennyiségekre való.
Én egyébként olyasmin gondolkozom - tulajdonképpen már kész is, csak még játszom vele - hogy bizonyos alapvető házautomatizálási funkciókat meg lehet valósítani vele. Pl. este, mikor hazamegyek bekapcsolom a világítást, lekapcsolom az öntözést vagy feljebb tekerem a termosztátot. Tudom erre vannak cél hardverek, de ez bármilyen browserból kezelhető, nem kell letölteni hozzá valami app-ot, ami aztán ki tudja mit csinál még, és pont azon a telefonon nincs fent, ami éppen kéznél van. Cserébe nincs snikk-snakk, designos felületek csak két gomb. A hozzászólás módosítva: Aug 29, 2016
Bevallom en a hobby kategoriaban nem tudom/akarom onalloan hasznalni Ez nem azt jelenti, hogy ertelmetlen(!), hanem hogy amit en csinalok ahhoz keveset tud es tul sok energiat kell befektetni a tanulasba, megismeresbe.
Sokkal egyszerubb ha fogok egy $5 Pi Zerot, radugom ezt a modult es egyutt hasznalom. Ebben az esetben abban programozom amiben a legcelszerubb, raadasul ott van keszen profi webszerver, sftp szerver vagy akar local sql szerver is. Masik veglet amikor pic moge illesztem, ebben az esetben altalaban csak nagyon minimalis kommunikaciora van szukseg, cserebe ott a sok periferia a mar ismert kornyezettel.
Szoktam időnként Rabbit RCM6700 és RCM6710-el dolgozni, ez egy apró uC, ethernettel és saját fejlesztő környezettel. Csak az összehasonlítás kedvéért: ebből egy 23kB-os kép 100....300ms alatt jön le. Igaz, kissé drágább mint az ESP...
A hozzászólás módosítva: Aug 30, 2016
Hat az RCM-ek boven $200 felett vannak errefele, ez nem osszevetheto a es8266 $4 vagy a pi zero $8 araval (ezek az arak NZ dollarban vannak)..
De persze mindenki azt hasznal amit akar, ami celszeru vagy ami van
Itthonról vásárolva árfolyamtól függően kb. 10...12eFt egy RCM6700, és kb 12....16eFT az RCM6710. Jó kis cucc, és C nyelvű a fejlesztő környezet, ami azért sokkal szimpatikusabb mint más programnyelvek (legalábbis számomra). Viszont játszani jó lesz az ESP, kisebb feladatokra, kis méretű weboldal megjelenítésével még akár gyors is lehet.
Nehezen tudok megbarátkozni ezzel a LUA nyelvvel. Próbálta már valaki Arduino IDE-vel programozni az ESP8266-ot? Ezt az oldalt kezdtem nézegetni.
Jól értelmezem, hogy így az arduino C szerű nyelvezetét használhatnám? Ha igen akkor mi történik a gyakorlatban, mit tölt fel az ESP-re az Arduino IDE? Arra gondolok, hogy ilyenkor a förmvert is átírja, esetleg lua nyelvre fordít az arduino és azt tölti fel? Esetleg valamilyen bináris kódra fordít? A hozzászólás módosítva: Szept 6, 2016
Szia.
Én kb ez alapján állítottam be: Bővebben: Link Tökéletesen működik, egyszerű írni benne progit. Bár még csak ismerkedem vele, de eddig tetszik.
Egy kis info az ExpressIf ESP8266 használatról (5 lapon át körüljárva): Bővebben: Link
Az Arduino IDE a processzormagra fordít és a gépikódú HEX/BIN-t tölti fel. A LUA firmware-t lecseréli.
Sziasztok, stand alone server módon használom a 01-es verzióját. Egy LEDsort kellene neki kapcsolgatni. Egy tápról megy a LED sorral. Áram alá helyezéskor a modulon világít mindkét LED folyamatosan. Ha a modult lekötöm a LED sorról(4N25+2 tranzisztor+FET->LEDsor) akkor minden oké, elindul minden szépen, utólag teszem a Gpio lábát az optocsatolóra(soros 470ohm) akkor oké minden. A modul bootoláskor kapcsolgatja a lábakat azt látom, itt mi lenne a megoldás? Nagyobb táp puffer? Késleltetés?
Most nem találom hirtelen az adatlapot, de csak egy lábat tudsz teljesen szabadon használni a 01 modulon, van még egy amit ha testen tartasz bekapcsolásról akkor talán spi-ről bootolna.
Ezzel én is megjártam Megoldás: az opto ledjét ne testre hanem +ra tedd, ha lényeges akkor a kimenetet negáld.
Plusz elektronika nélkül nem lehet? :S Esetleg egy másik optocsatoló? Fordított polaritással kössem be az optocsatolót? Az úgy működhet? Mindjárt teszek egy tesztet.
|
Bejelentkezés
Hirdetés |