A garázsvásár nekem a "nem kell, csak a helyet és a forrásokat foglalja" jelentéssel bír. Nem akarok rendszert csinálni belőle, van pár kacatom túlrendelés okán, amik két éve nagyjából érintetlenül hevernek a fiókban/dobozokban.
Segítségre lenne szükségem. Találtam a netten egy megírt programot, segítségre lenne szükségem a megértésében. Öt érték merésére képes: Irms, Vrms, realPower, apparentPower és powerFactor. Összesen két "érzékelő" szükséges a megépítéséré: egy ACS721-es az áramerősség merésére, és egy 220Vac/6Vac trafó a feszültség méréshez. Szóval a Irms, Vrms illetve az apparentPower (U*I) mérése nagyjából érthető. Viszont azt, hogy hogyan számolja ki a realPowert illetve powerFactor-t fogalmam sincs. Valaki tudna nekem segíteni a program megértésében? Itt a kód: https://www.dropbox.com/s/k13oop71nozjagu/EmonLib.cpp?dl=0 Fontos lenne... Nagyon szépen köszönöm!
Igen ám... A kínai cuccokkal sűrűn van feliratozási gond, ezért érdemes előbb mérni és/vagy ellenőrizni a dolgot. Nekem hőmérséklet szenzor volt rosszul (két lábat fordítva) feliratozva. GND-t szakadásmérővel nézz össze (ezért is kell egy alap multiméter).
Hát az én kis kínai MEGA boardomon fordítva van feliratozva a TX1 és RX1 port.
Nálam TX1 19 port RX1 18 port...
Furcsa volt hogy sok helyen ezt fordítva láttam a doksikban, de gondoltam ez úgy is kínai lehet hogy egyszerűbb volt a nyák tervezése....
Hát nem, csak megcserélték a feliratokat...
Szerintem ez lehetett a bibi...
Viszont 3 GND portot látok a MEGA-n itt eddig a digit sor végén levő GND-t használtam, de most átdugtam a POWER sorban levőre...
Bár ez elvileg nem lehet gond, mert a GND az elvileg mindenhol GND, de ezek után gondoltam ezt is leírom, ha valakinek hasonló gondjai vannak akkor nehogy ilyesmi legyen...
Szóval még 1x köszi mindenkinek, fent vagyok a hálómon....
> Az lenne a kérdésem, hogy ha az arduino-s kódban végig Serial hívások vannak akkor az UART0 és a MEGA TX0-ra és RX0-ra kötöm az ESP-t?
Nem.
Látható, hogy a Serial0-ra debug üzeneteket küld: Serial.println("WiFi shield not present");
Az ATmega2560 UART0-ja az USB illesztő (ATmega16u2) soros portjára van kötve, azon keresztül pedig a számítógéped virtuális soros portjára.
Van egy WiFi nevű objektumod. Nem ismerem a wifi könyvtárat, amit használsz. Vagy a létrehozásakor, a konstruktorának adod át paraméterben valamelyik Serial objektumot, vagy fixen bele van kódolva, esetleg #define utasítással kell meghatározni. Nem tudom, olvasd el a használt wifi könyvtár leírását, vagy nézz bele a forrásába!
Betöltöttem az Arduino default mintái közül a ScanNetworks-ot.
Ha MEGA 2560-al szeretném összekötni az ESP8266-omat, akkor mint ahogy már eddig kitárgyaltuk
1., "A CH_PD lábat és a RESET lábat inkább egy 10 kOhm ellenálláson át szokás Vcc-re húzni. A GPIO_0 és GPIO_2 szintén legyen 10 k-val Vcc-re húzva. Azt mondják, jót tesz a stabilitásnak, ha ezek nem lebegnek."
2., Külső táp (3.3V!) mert ezek az USB TTL-ek nem bírják kiszolgálni az ESP8266 áramfelvételét, vagy ha mégis instabil lehet (lesz) tőle.
3., ESP8266 RX -> Arduino TX0
ESP8266 TX -> Arduino RX0
Az lenne a kérdésem, hogy ha az arduino-s kódban végig Serial hívások vannak akkor az UART0 és a MEGA TX0-ra és RX0-ra kötöm az ESP-t?
A kód eleje:
#include <SPI.h> #include <WiFi.h>
void setup() { //Initialize serial and wait for port to open: Serial.begin(57600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only }
// check for the presence of the shield: if (WiFi.status() == WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // don't continue: while (true); }
String fv = WiFi.firmwareVersion(); if ( fv != "1.1.0" ) Serial.println("Please upgrade the firmware");
- azon a rajzon ami alapján megcsináltad a bekötést, nem látom hogy össze lenne földelve az Arduino kártyával az ESP. Ugye azt nem hagytad ki ?
- ellenőrizd újra a bekötést. Pl. a feszültségosztó ellenállásai nincsenek-e felcserélve.
- az adás - vételt helyességét ellenőrizd le mégegyszer :-)
- azt írod az Arduino IDE -t használod, de a képeiden valami egész más programmal nézed a soros kommunikációt. Nem értem miért.
- amíg az AT -ra nem kapsz rendes választ ne próbálkozz szerintem különböző összetett programok letöltésével. Töltsd be a BareMinimum -ot és úgy próbáld.
Remélem reggelre meglesz a megoldás, jó éjszakát ! :-)
Nem tudom, hogy az mennyire számít azért leírom: 1.5.6-r2 Arduino IDE-t használok.
Az a baj, hogy semmire sem válaszol még mindig, csak ha feltettem ezt a teszt alkalmazást akkor kapok a soros porton értelmezhető kimenetet automatikusan, de ha usb ttl -el kapcsolódok a gépre akkor se puttyal se coolterm -el nem kapok választ a kérésekre...
Viszont látom mint AP és rá is tudok csatlakozni, csak hát én nem ezt szeretném, hanem a saját wifi routeremre szeretnék csatlakozni vele, de az nem akar össze jönni...
Egyszerűbb ha végigpróbálgatod szerintem, valószínűleg a Halalosztó által írtak közül lesz valamelyik. Beállítasz egy sebességet a programodban, kiadod az AT -t. Ha értelmes választ kapsz bontasz egy sört :-). A 8N1 maradhat szerintem.
Valószínűleg mert a modul nem azzal a sebességgel ad, mint amire a vevő progid állítva van ( úgy látom 115200 bps ), így nem értik egymást. És persze az is fontos, hogy a bitszám, paritás és start-stop bit beállítás is egyezzen.