- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- SSD kibeszélő
- SONY LCD és LED TV-k
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- TCL LCD és LED TV-k
- 5.1, 7.1 és gamer fejhallgatók
- Kettő együtt: Radeon RX 9070 és 9070 XT tesztje
- AMD Navi Radeon™ RX 9xxx sorozat
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Vezetékes FEJhallgatók
-
PROHARDVER!
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Janos250
őstag
válasz
Teasüti #7112 üzenetére
Nem okozol gondot.
Igen, az a deklaráció. Egy vektor, aminek minden eleme egy struktúra, ami tartalmazza az adott led paramétereit.
A pStrand az egy strand_t* típusú pointer:class Scannerer {
private:
strand_t * pStrand;strand_t STRANDS[] : a STRANDS[] egy vektor, aminek minden eleme strand_t típusú.
A strand_t egy struktúra, ezért adod meg neki így a kezdőértékeket, pl.: .rmtChannel = 1typedef struct {
int rmtChannel;
int gpioNum;
int ledType;
int brightLimit;
int numPixels;
pixelColor_t * pixels;
void * _stateVars;
} strand_t;tehát tartalmazza az adott ledsor paramétereit (esp32_digital_led_lib.h).
A ledType pedig ezek közül valamelyik:
enum led_types {
LED_WS2812_V1,
LED_WS2812B_V1,
LED_WS2812B_V2,
LED_WS2812B_V3,
LED_WS2813_V1,
LED_WS2813_V2,
LED_WS2813_V3,
LED_SK6812_V1,
LED_SK6812W_V1,
}; -
Teasüti
nagyúr
válasz
Tankblock #7113 üzenetére
Szia!
Erről volna szó:
[link]
Arduino IDE alatt. Jövő héten működésre szeretnék bírni egy projektet, így a megszokott környezetben szeretném berúgni a vasat. Az ESP-IDF-fel való ismerkedés inkább hosszabb távon realizálható.
De megvettem hozzá Kolban könyvét, szóval talán lesz egy épkézláb tananyagom hozzá. -
Teasüti
nagyúr
válasz
Janos250 #7111 üzenetére
Elnézést ha túl sok gondot okozok, nem akarlak feltartani a saját munkáddal!
Csak nem tudom hirtelen hová forduljak segítségért, próbáltam keresgélni az adott library-vel kapcsolatban, de semmit nem találtam még a github-os repo-n kívül, meg egy fórum bejegyzésen kívül, ahol a készítő maga kérdezett vmit.Nekem úgy tűnik, hogy a demóban ez volna talán a deklaráció:
strand_t STRANDS[] = { // Avoid using any of the strapping pins on the ESP32
{.rmtChannel = 1, .gpioNum = 17, .ledType = LED_WS2812B_V3, .brightLimit = 32, .numPixels = 93,
.pixels = nullptr, ._stateVars = nullptr},
};
int STRANDCNT = sizeof(STRANDS)/sizeof(STRANDS[0]);Viszont a programozási ismereteim idáig nem terjednek, így nem tudom mi ez:
strand_t STRANDS[]
. Ez egy objektumként deklarált tömb volna? Az object array leírások nem igazán hasonlítanak erre a kódra. A kapcsos zárójelben lévő elemek is elég furák, mi az a pont minden egyes paraméter előtt? Meg hol van melyik változó milyen típus?És ha jól látom, akkor a frissítés az már a rainbow és a scanner függvényekből történik, vagyis eredendően más megközelítést használ mint én eddig. Én ram-ba írtam az eredményt és azt dolgoztam fel, mielőtt burst write-tal kiment a szalagra - és tulajdonképpen az egész library-ből csak annyit használtam, hogy tolja ki a szalagra az általam felállított byte tömböt.
Ha ennyit el tudnék érni ezzel az ESP-n, hogy írja ki a saját byte tömbömet a szalagra, annyi nekem bőven elég lenne. Nem kell semmi más funkció.Ha megnézem a Scanner osztályát (a class használata nekem kicsit magas, régen sem találtam elég bő lére eresztett leírást a szintaktikájáról, a spéci szimbólumok magyarázatáról), akkor ott látok pár parancsot, ami nekem kell ide, mint a
digitalLeds_updatePixels(pStrand);
valamint adigitalLeds_resetPixels(strands[i]);
parancsok. Viszont nem látom, hogy a pStrand az minek van deklarálva. Az egy tömb lenne?MÁS
Mi a probléma a kapcsoló üzemű táppal?
Stabilizált a táp ill. vannak bypass kondik a lap előtt?
Valószínűleg nem ide tartozik, de én PC táppal tapasztaltam hasonló problémákat, amit meg egy a közelében lévő másik fogyasztó csap le állandóan. A táp egy gőzelszívó ventilátor felett helyezkedik el és valahányszor kikapcsolják a ventilátort, a PC táp reset-el vmiért. Először azt hittem a Nano hülyül meg, televágtam bypass kondikkal, meg ESD védelemmel és még alufóliával árnyékoltam.De még így is levágta, aztán rájöttem, hogy nem a Nano reset-el (készenléti áramról kapja a tápot), hanem a táp maga kapcsol ki.
-
Janos250
őstag
válasz
Teasüti #7110 üzenetére
Hú, nehezet kérdeztél!
Én annak idején csak betöltöttem az elején pár demót, lefuttattam, hogy működnek-e, részletesebben nem foglalkoztam vele.Megnéztem ezt a demót és a libraryt.
A demó meglehetősen el van bonyolítva, de nem tűnik túlzottan vészesnek a library használata.
Persze, lehet, hogy a gyakorlat mást mutat. Majd megpróbálok valami nagyon egyszerű programocskát írni a használatára, de most azzal szívok, hogy az ESP32 mellé tettem a dobozba a kapcsoló üzemű táp panelt, és rendszeresen megbolondul, építhetem át.Persze, ha valaki már használta ezt a libraryt, akkor közösen várjuk az instrukciókat.
-
szuszinho
őstag
Sziasztok,
Megnéztem jópár leírást, videót, de nem tudom működésre bírni az ESP8266-ot. UNO-val próbálom, de a feltöltés mindig hibával elszáll.
Tudtok egy jó leírást hozzá?Köszi!
-
Janos250
őstag
válasz
Teasüti #7090 üzenetére
Téglásítani szerintem nem lehet.
Sebesség:
Nekem a 921600-on minden második harmadik feltöltés ki szokott akadni, ezért én
115200-on programozom, bár így tovább tart.
Nekem jelenleg a Node32S típus van beállítva, de használtam már Doit-ra állítva is.
Nem tapasztaltam lényegi különbséget. Ott nincs Flash Mode választási lehetőség.
Én a feltöltéseknél a "Q" (négyszeres) módot nem szoktam semmilyen lapnál használni, mindig csak a
"D" (dupla) módot használom, tulajdonképpen nem is tudom, melyik lapnál lehet, és melyiknél nemNéhány megjegyzés Neked is, és azoknak, akik ezután kezdik használni:
Az első teendők egyike: azonosítani kell, hogy a mi panelunkon melyik láb melyik GPIO, mert a panelokon többféleképpen van feliratozva.
Az ESP32 chipnek 34 GPIO lába van: (0-19, 21-23, 25-27, 32-39), de az Espressif ESP-WROOM-32 tokozásban a GPIO6, GPIO7, GPIO8, GPIO9, GPIO10, GPIO11 ki van ugyan vezetve a 17-22 lábakra, de nem használható, mert az a memóriát kezeli.
A panelok ezeket a lábakat általában nem is vezetik tüskére.
Mivel az 1-es soros port alapból a GPIO9, GPIO10 –et használja, ezért ezeket át kell irányítani, ha az 1-es soros portot használni akarjuk.
Pl.:
#define Serial1_RXPIN 26
#define Serial1_TXPIN 27
pinMode(Serial1_RXPIN,INPUT_PULLUP);
Serial1.begin(115200, SERIAL_8N1, Serial1_RXPIN, Serial1_TXPIN) ;A Serial2-t használat előtt példányosítani is kell , a Serial-t, Serial1-et nem, azok előre példányosítva vannak, mint pl. az UNO-nál a Serial.
Egy kis plusz infó:
esp32-hal-gpio.h:
//GPIO FUNCTIONS
#define INPUT 0x0100000001
#define OUTPUT 0x0200000010
#define PULLUP 0x0400000100
#define INPUT_PULLUP 0x0500000101
#define PULLDOWN 0x0800001000
#define INPUT_PULLDOWN 0x0900001001
#define OPEN_DRAIN 0x1000010000
#define OUTPUT_OPEN_DRAIN 0x1200010010
innen látható, melyik bit mit jelenttypedef enum {
WIFI_MODE_NULL = 0, /**< null mode */
WIFI_MODE_STA, /**< WiFi station mode */
WIFI_MODE_AP, /**< WiFi soft-AP mode */
WIFI_MODE_APSTA, /**< WiFi station + soft-AP mode */
WIFI_MODE_MAX
} wifi_mode_t;Melegedést én nem néztem, de ma még megnézem.
-
Teasüti
nagyúr
válasz
Janos250 #7077 üzenetére
Szia!
ESP32 WROOM 38pin vezérlőm megérkezett a minap. Most raktam fel Arduino alá az alaplapi meghajtókat.
Viszont lett egy rakás új menüpont az Eszközök menüben. Ezeket te hogy állítottad be? Jó az alapbeállítás? El tudom rontani (téglásítani)?
Köszönöm!Illetve normális az ha melegszik a lap? Olyan 30-40 fokos lehet, pedig semmit nem csináltam még vele csak lóg az usb-n.
-
Tankblock
aktív tag
ESP32-IDF hát ööö még bugos is, pl
ledc_set_fade_with_step fv ha a scale attribútummal oszt még akkor is ha az nulla...
eredmény győzelmi zászló.... -
Teasüti
nagyúr
válasz
Tankblock #7076 üzenetére
Lehet kellene egy ESP32 ESP-IDF topic, hogy ezt ne offoljuk szét.
Az a maréknyi ember, aki ebben járatos mind ide jár.
Aki a legtöbbet ESP-zik, ő meg Arduino alatt programoz.
Aki meg más IDF-et használ, ő meg nem ESP-zik. Így hirtelen akik eszembe jutottak.
Esetleg lehetne egy Arduino komplementer topik. Aki Arduinózik az ne kapjon szívrohamot, ha betéved ide. Minden más platform meg mehetne külön.
Amúgy necces úgy topikot nyitni, hogy nem tudok hozzátenni semmit. -
Tankblock
aktív tag
válasz
Teasüti #7069 üzenetére
Hello,
Én élvezem, hogy végre eclipse alatt tudok fordítani, és nem az Arduino IDE-be vagyok korlátozva. C nyelvet sem mostanság használtam, és van lehetőség C++ is.
Nem vagyunk egyformák, nekem a Win10 egy csalódás, és kacsingatok az új Ubuntu 17.10 után.
A dokumentáció hiányosságai okoznak fejfájást. Nem minden működik a leírtak szerint az ESP-IDF ben. Van még rajta mit csiszolni.
Az interrupt kezelést kellene megtanulnom, pont ez az ami idegesít, mert a leírtakból pont nem lehet megcsinálni amit szerettem volna --> ledc fade végén interruptban visszafele fadelni szeretném A technikai sheet szerint az összes channel tud a végén interruptot. A HW képességei lenyűgözőek. A tudásom meg igen kevés.
Feltűnö h az Arduino ideben írt villogtatás 65% lassabb --> túl nagy az overhead.
ESP-IDF ben ezek mennek eddig :
RTOS Task kezelés, Queue, Semaphore/Mutex - > binary semaphoret értem , de nem használtam
i2c scannert sikerül már írnom.
Led villogtatás is megy.
MQTT-re üzenet küldés. igaz ez kész library-t használva.
Most küzdök a ledc -vel.Lehet kellene egy ESP32 ESP-IDF topic, hogy ezt ne offoljuk szét.
-
Tankblock
aktív tag
válasz
JozsBiker #7072 üzenetére
Hello,
Meglehet, hogy igazad van. ESP8266 köré terveztem a projectet, ha már volt itthon. és RTC is.
Wifi-t szerettem volna mert NTP vel egyszerű a sync, és ha lesz időm akkor webservert vagy akár még MQTT vel is lehet pl riasztást beállítani. A HW ben a GPIO2 n van egy 100 Ohm ellenállás után egy buzzer is. Na az a része a softwarenek sincs még kész.
Amit élveztem eddig ebben a projectben :
- az a nyák tervezés -> előtte 0 tapasztalatom volt Eaglel és nyáktervezőt sem láttam középsuli óta.
- balzafa doboz készítés -> előtte 0 tapasztalatom volt ilyenel
- működik érzés. mégha tudom hogy félkész is.A project szigorúan itthonra készült, belegondolva, hogy mennyi időt tettem bele, és a 60 Neopixel kör sem olyan olcsó. Ez nekem csak hobby, így nem feltétlen a mindenek feletti ésszerű tervezés és kivitelezés a cél.
Ha kész lesz akkor nagyszerű karácsonyi ajándék lehet pl szülőknek egy második darab ahol az elvétett hibákat már nem követem el újra. -
Teasüti
nagyúr
válasz
Tankblock #7068 üzenetére
Érzésre esp-idf is erősen fejlesztés alatt van.
Hát mit ne mondjak, nekem eddig egy hatalmas csalódás.
Nem igaz, hogy 2017-ben az appok világában nem tudnak felhúzni egy normális frontend-et.
Neeem, e helyett csomagolj ki 20000 apró fájlt, meg parancssorból telepíts a Github repojából.
És most felraktam vmi 2 giga hangyaf.sznyi fájlocskát és még egy szövegszerkesztőt is külön rakjak fel magamnak mert azt nem tartalmaz.
Azt hittem elsőre ez vmi vicc, de sajnos teljesen komoly.
Pont ezek miatt nem használok Linux-ot se. -
Tankblock
aktív tag
válasz
Teasüti #7067 üzenetére
Hello,
Ez engem is érdekelne, amúgy se szeretném használi tovább az arduinot, és egy kicsit programozni.
Eddig csak annyit tudok amit a demokban leírtak, vagy amit a pcbreflux csatornáján lehet tanulni a youtubon.
Érzésre esp-idf is erősen fejlesztés alatt van. a esp32 forumja iszonyat lassú. A frissen regisztrálóknak a moderátor nézi és engedélyezi a hozzászólását.Referencia alapján kezdtem a küzdelmet.
-
Teasüti
nagyúr
Szép estét!
ESP-IDF kapcsán van vmi bevezető a programozásba vhol? Vagy vmi közösség, ahol vannak "howto"-k?
Szeretnék belevágni a natív programozásába (mert megőszülök, mire az Arduino Core funkcionalitása teljes körű lesz), de azon kapom magam, hogy igazából sehol nem írnak arról hogy kell programozni.
Vannak példaprogramok, meg van API referencia és hardveres referencia is. De nem találtam még kezdőknek szóló tutorialt. A legtöbb írás addig terjed, hogy hogy kell felrakni a fejlesztőkörnyezetet és hogy kell feltölteni a Hello World példaprogramot. De azt nem, hogy hogyan írjak programot.
Erre vmi útmutató?
Köszönöm! -
Tankblock
aktív tag
Hallo,
Valaki esetleg ESP32 programozik ESP-IDF el?
Lenne egy kérdésem,
ledc re interruptot hogy lehet hozzárakni?ledc_fade_func_install(0);
ledc_isr_register(&ledc_isr_fnc, NULL, ESP_INTR_FLAG_IRAM , NULL);setupban tovább
printf("1. LEDC fade up to duty = %d\n", LEDC_TEST_DUTY);
után amikor az interrput jönne belehal...
for (ch = 0; ch < LEDC_TEST_CH_NUM; ch++) {
ledc_set_fade_with_time(ledc_channel[ch].speed_mode,
ledc_channel[ch].channel, LEDC_TEST_DUTY, LEDC_TEST_FADE_TIME);
ledc_fade_start(ledc_channel[ch].speed_mode,
ledc_channel[ch].channel, LEDC_FADE_NO_WAIT);
}
vTaskDelay()ahol: --> itt ugye nem szabad printF használni, de ha másra cserélem akkor is megpusztul.
void IRAM_ATTR ledc_isr_fnc( void * arg) {
printf("OMG, it is works \n");
} -
Janos250
őstag
válasz
vargalex #7023 üzenetére
És ha a CCOUNT-hoz számolod az időt, amennyit aludni szükséges?
Akkor legalább nem összegződnek a hibák. Bár nem tudom, hogy deep sleepben inkrementálódik-e, soha nem próbáltam.
Azoknak, akiket még esetleg érdekel a CCOUNT használata,de nem ismerik, ESP32-re egy minta:unsigned elozo = 0 ;
void setup() {
Serial.begin(115200) ;
Serial.println(" xthal_get_ccount() ");
}
void loop() {
unsigned a = xthal_get_ccount();
Serial.print(" xthal_get_ccount() erteke = ");
Serial.println(a);
Serial.print(" kulonbseg = ");
Serial.println(a - elozo);
elozo = a ;
delay(1000);
}kiírás:
xthal_get_ccount() erteke = 1927227995
kulonbseg = 240000000
xthal_get_ccount() erteke = 2167227995
kulonbseg = 240000000 -
fpeter84
senior tag
Mi értelme ennek az RF-es túlbonyolításnak? Miért nem külső RTC ami az INT lábával adott időben ébreszti? Egy DS3231 fillérekből kijön, a fogyasztása cirka zéró, évekig elmegy egy 2032-es elemről - adott esetben az elem akár el is hagyható, a cellára közvetlenül rá lehet kötni a vbat bemenetét...
(Mondjuk ezt alapból tudnia kellene az ESP-nek a belső RTC-vel is - tartok tőle csak szoftveres oldalról nincsen meg hozzá a megfelelő támogatás)
-
gyapo11
őstag
válasz
vargalex #7023 üzenetére
Jó nagy tekercsek kellenek a passzív vevőhöz, az egész szoba körül, de elvileg megoldható. De ha van vezeték, akkor már elviheted az esp-ig, és akkor van táp, nem kell az akkus spórolás. Igazából az egész házat kellene körbekerülni a tekerccsel, és akkor akárhol lehet a mérőpont.
Viszont ha van RTC-d az esp mellett, akkor azzal nem lehet 10 percenként alarmot generálni az ébresztéshez? Vagy ha az nincs, akkor egy oszcillátor meg egy számláló cmos ic-kből. -
vargalex
félisten
Sziasztok!
Kis ötletelésre / tapasztalatra lenne szükségem.
Úgy gondoltam, hogy ledobok (még) néhány ESP8266-ot DS18B20-al a lakás különböző pontjaira. Ezek nem feltétlenül olyan helyen lennének, ahol elérhető valamilyen konnektor, így akkus táplálásra gondoltam. Ezt 18650-es cellákkal, HT7333-al fogom megvalósítani. Hőmérséklet olvasás percenként történik (akku feszültséggel együtt). A minél hosszabb akkuidő biztosítása miatt az ESP-t 2 mérés között deep sleep-be teszem, a wifi kapcsolatot csak 10 mérésenként építem fel, így a közben mért eredményeket RTC memóriában tárolom. A kódot megírtam, szépen működik minden.
Egyetlen problémám van, amivel úgy tűnik, hogy senki nem foglalkozik (legalábbis, amilyen deep sleep megoldásokat találtam). Ez pedig az, hogy az összes megvalósításban egyszerűen fix időtartamig küldik deep sleep-be az eszközt. Nekem viszont az kellene, hogy fix időközönként történjen meg a mérés és küldje a post-ot a szerverre. Ezt próbáltam megoldani úgy, hogy a szükséges deep sleep időből levonom az indulás óta eltelt időt (a micros() függvénnyel). Több kevesebb sikerrel megy, de úgy tűnik, hogy a deep sleep időzítése sem teljesen korrekt (mintha kevesebb idő telne el, mint kellene). Most éppen valamilyen korrekciós tényezővel próbálom még szorozni, de ugye a kód futása sem mindig pontosan azonos ideig tart (jellemzően a DS18B20 inicializálása és kiolvasási ideje ingadozik valamennyit).
Be lehetne még kavarni az NTP-t, de ahhoz vagy minden kiolvasásnál mégis csatlakoznom kell a wifi-hez, vagy csak 10 percenként a post-ot tudom szinkronizálni valamilyen egzakt időponthoz. Viszont a wifi folyamatos felébresztése nyilván növeli a fogyasztást (a wifi modul bekapcsolása és a nem deep sleep-ben töltött idő jelentős növekedése miatt is).Bármilyen ötletet várok.
-
válasz
Victoryus #7021 üzenetére
A Wemos D1 az direkt olyan kialakítású, mint az UNO, a shield-ek elvileg kompatibilisek, leszámítva, hogy a csatlakozósor legtöbb lába nincs bekötve, mivel ugye az esp-nek kevesebb a kimenete. Tehát csak azokat a lábakat tudod használni. Na meg persze a táp is különbözik, mert az esp-nek 3v3 kell.
-
Victoryus
addikt
Esp32 lappal is lehet használni a shield v5-öt meg a motorvezérlőt?
-
Dalee
aktív tag
Probálkoztam ESP8266-on time server használatával (NPT client library). A könyvtár csak az időt, illetve az epoch időt szolgáltatja. A dátum megállapításához szükséges, hogy az epoch idő átalakításra kerüljön év, hónap, napra. Ehhez találtam egy könyvtárt, mely több forrásfájlt tartalmaz (Time.h, Time.cpp, TimeLib,stb...).
A sketch/library-ban létrehozva Time könyvtárt, az include <TimeLib.h> nem találja a TimeLib.h-t.
Hogy lehet a program számáta láthatóvá tenni egy könyvtár különböző nevű, a könyvtár nevével nem egyező fájlokat?
-
csubuka
addikt
válasz
csubuka #7002 üzenetére
Az elején tesztüzemben amúgy egy sima DS18B20 hőmérséklet szenzor alapján akarom változtatni a fordulatot, azt könnyen tudom ellenőrizni a való életben akár kézbe vétellel.
Ámde amin agyaltam, hogy ez a 0-10V PWM vagy analóg kimenet szabályzásra elég gyakori. Ventik meg LED akármiknek is ilyen kell. Nincsen erre egy már kész panel, ami rámegy az Arduino 5V PWM kimenetére vagy az ESP3.3V-os PWM kimenetére és az alapján előállítja a kimenő jelet a kívánt 0-10V sávban?
*Nem abszolút célom elmerülni az elektronika részében, bár kétségkívül érdekes ez és hasznos. De limitál az idő és a fontos a működő rendszer és a sikerélmény lenne
-
csubuka
addikt
válasz
gyapo11 #7001 üzenetére
Köszönöm szépen válaszod!
A bemenő PWM jelszint okés, 3.3V-os. Azzal nincs gond. A frekije kérdéses.
A kimenet PWM feszültségszintjének növeléséhez viszont akkor utána kell néznem, hogy mi kell.
(#6998) aryes: Valóban ez így a ki-be kapcsolást megoldaná kellemesen, de azért azzal is lehet spórolni, hogyha mindig a kellő intenzitással kapcsol be a rendszer és nem maxira pörgetve. Maxin kicsit túl nagy sebeséggel jön a friss levegő amúgy, szóval az nem teljesen kellemes.
Főleg ha csak pár ember kerül be, akkor kicsit túltolná a maxi fordulattal a dolgokat a szellőzés. De az totálisan igaz, hogy így mondjuk éjszakára leállhatna a rendszer szépen, szóval a vezérlésben nem árt ennek is szerepet adni. Mondjuk ugyanakkor ha nincs bent ember, akkor szépen beállítja a megfelelő CO2 szintet és mivel nem lesz mi eltolja ezért magától lekapcsol.
(#7000) Gergosz2: Természetesen, három szenzor opció van.
1) Az első CO2, ami képes 0-4V analóg jelet is szolgáltatni (UAET és PWM mellett). Arduino-val ez lehet, hogy okésabb. A PWM jel feldolgozása akár nehezebb is lehet, mint ezé. De az ESP csak 0-1V között tud analóg-digitális konverziót aszsem, szóval az nem adja, komplikáltabbá tenné a dolgot feleslegesen.
2) CO2, ami UART vagy PWM jelet tud kiadni. A PWM frekije számíthat a dolog egyszerű vagy bonyolult megítélésében. Ugyanakkor lehet az UART lenne a legkorrektebb megoldás.
3) Mindenféle gáz érzékelő (VOC), I2C kapcsolattal. Bár ilyen szűk helyen sok embernél a CO2 lenne a leginkább releváns "szennyező". Ennyi erővel akár páratartalomra is rá lehetne menni, csak érdemesebb a legrelevánsabbra vagy a legolcsóbbra, de azért nem olyan egetverő összegek ezek
-
fpeter84
senior tag
Játszott e már itt valaki valamelyik bluetooth 4.0 modullal BLE observer módot? Hiába guglizok, nem találtam egyelőre olyat hogy bármelyik modul/chipset speciális firmware nélkül egyszerű AT paranccsal BLE observer módba váltható lenne és ha broadcast-et hall akkor kiírja amit vett... Nincsen párosítás, oda-vissza kommunikáció. Az adó időnként küld egy broadcast-et és ha valaki hallja akkor azt tesz vele amit akar...
Vettem egy ilyen TPMS készletet (beépített verzió) és ennek a működését térképezem fel, hogy ne csak a saját androidos szoftverével lehessen használni, hanem pl egy otthoni szerver tudja venni a riportjait induláskor/érkezéskor, és küldhessen egy figyelmeztető emailt ha anomáliát érzékel...
Linux alól bluez stack-el már sikerült megoldanom. Találtam egy python wrappert a bluetoothctl-hez, amivel tökéletesen sikerült dekódolnom a mért nyomás, hőmérséklet, elemállapot és hirtelen nyomásvesztés adatmezőket, de ha lenne olyan pár $-os BT 4.0 modul amivel meg tudom ugyanezt valósítani AT parancsokkal, akkor lehet megírnám ESP-re is ugyanezt...
Vagy lehet rossz kulcsszavakkal keresek? Az observer/broadcaster helyett más kifejezésre kellene vadásznom?
-
csubuka
addikt
válasz
Gergosz2 #6994 üzenetére
Köszönöm a választ Neked is!
A CO2 szenzor 0-2000ppm között méri a szén-dioxid koncentrációt a levegőben. Ennek függvényében kiad magából PWM jelet, valamint UART kommunikációt is képes folytatni, hogy elárulja az éppen mért értéket.
Nem nagyon vannak alkatrészeim, sem tudásom arra, hogy erősítőt hozzak létre sajnos. Inkább az Arduino-programozós irányba mennék el, ott csak a tudás hiányzik
. Akár ESP-n is ha meg lehet oldani, akkor jöhet
Van az is.
A problémáim ott lennének, hogy hogyan lehet a kimenet PWM frekijét babrálni pl. Illetve feldolgozni a bejövő PWM jelet, aminek xy frekije van. Valamennyi külső kapcsolást akkor mindenképpen építeni kell majd eszerint...
(#6996) Vladi: A helyzet pikantériáját mi sem jelzi jobban, minthogy olyat nem szabad tenni. A nyitott ablak egyrészt ugye üzleti titok kiszivárgását eredményezheti
Komolyan. Sajnos. Valamint valami jogszabályi baromság is van, hogy miért nem lehet azon az oldalon nyitható ablak, ami már csak hab a tortán.
-
csubuka
addikt
Sziasztok!
Egy kis segítséget szeretnék kérni egy Arduino-val létrehozott szabályzó kérdésében.
Egy EC motoros (állandó mágneses rotor, elektromosan kommutált DC) által hajtott levegő ventit kellene szabályozni (a fordulatszámán keresztül a szállított friss levegő térfogatáramot) egy szoba CO2 koncentrációjának egy értéken való tartására. PI szabályzó szükséges gondolom.
Erre abszolút vannak gyári megoldások, annak függvényében lenne érdemes használni azokat, hogy szerintetek mennyi idő egy ilyet összepakolni egy Arduino-n vagy ESP-n? Magának a CO2 szenzornak PWM vagy UART kimenete van...
A venti fordulatszáma 0-10V-os analóg jellel vagy PWM jellel szabályozható.
Köszönöm a segítségeteket előre is :-) Hátha nem elvetendő ötlet, mert izgalmasan hangzik.
*Egy parának az biztos jelen van, hogy 10V-os PWM jelet kell kimenetnek előállítani.
-
Janos250
őstag
Nem tudok róla sokat, mert végülis nem használom (mire begyakorlom , addigra megírom a C++ programot is, és az azt csinálja, amit én akarok.)
Itt van róla egy ábra:
https://www.survivingwithandroid.com/wp-content/uploads/2016/10/mqtt_publisher_subscriber-1.png
innen:
https://www.survivingwithandroid.com/2016/10/mqtt-protocol-tutorial.html
Olyasmi a hardvereknek, mint egy fórum az embereknek.
Van egy központi szerver, a hardverek (pl. arduinoval ellátott szenzorok, stb.) neki küldik a továbbítandó adatokat.
Ennek a szervernek a neve "MQTT Broker"
Aki küldi, az a "Publisher".
A "Broker" továbbküldi az adatokat a bejelentkezett telefonokra, számítógépekre, vagy arduinokra. Az ő nevük "Subsciber".
Hogy melyiknek küldje, annak a szűrésnek "topic" a neve. (Mint az embereknél, hogy ki melyik topicra íratkozott fel)
MQTT Brokernek főként a málnát ajánlják, arduinos verzióról nem tudok. Rajta futó szoftverként ajánlják többnyire a "Mosquitto"-t.
A "Subsciber" lehet pl. telefonon egy androidos MQTT kliens.ESP32: Publishing messages to MQTT topic:
https://techtutorialsx.com/2017/04/24/esp32-publishing-messages-to-mqtt-topic/
How to use Arduino ESP32 MQTTS with MQTTS Mosquitto broker:
http://www.iotsharing.com/2017/08/how-to-use-esp32-mqtts-with-mqtts-mosquitto-broker-tls-ssl.html
How to use MQTT and Arduino ESP32 to build a simple Smart home system:
http://www.iotsharing.com/2017/05/how-to-use-mqtt-to-build-smart-home-arduino-esp32.html -
Tankblock
aktív tag
válasz
S.Milan #6977 üzenetére
Hello,
nincs mit, használd egészséggel.
A relével meg óvatosan, főleg ha AC kapcsolgatsz vele.Elsőre nem értettem a problémádat, és úgy látom mobilról nem jó ötlet válaszolgatni, mert nem láttam át a kódot egybe.
HW ismeret sosem árt. Anno ESP-01 volt néhány órám rájönni, hogy mit lehet és mit nem.... -
S.Milan
csendes tag
Sziasztok,,
Wemos D1 mini-t használok relé vezérléshez.
A problémám az lenne, hogy amikor áramszünet van és a Wemos újraindul akkor minidig behúzza a reléket.
Olyan mintha végig ellenőrizné hogy minden láb működik e.A becsatolt programkód, jól működik.
Van erre vala mi megoldás, hogy ne működtesse a relét újraindítás után?
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#define CONTACT1 4
#define RELAY1 2
#define RELAY2 0
int prevState1;
char ssid[] = "test"; //SSID of your Wi-Fi router
char pass[] = "test1"; //Password of your Wi-Fi router
IPAddress server(192, 168, 1, 136);
const char *inTopic = "domoticz/out";
const char *outTopic = "domoticz/in";
const char *onmsg1 = "{\"idx\" : 3,\"nvalue\" : 1 }";
const char *offmsg1 = "{\"idx\" : 3,\"nvalue\" : 0 }";
const char *onmsg2 = "{\"idx\" : 4,\"nvalue\" : 1 }";
const char *offmsg2 = "{\"idx\" : 4,\"nvalue\" : 0 }";
void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
for (int i=0;i<length;i++) {
Serial.print((char)payload[i]);
}
Serial.println();
if((char)payload[0] == '3') {
digitalWrite(RELAY1, LOW);
delay(500);
digitalWrite(RELAY1, HIGH);
}
if((char)payload[0] == '4') {
digitalWrite(RELAY2, LOW);
delay(500);
digitalWrite(RELAY2, HIGH);
}
}
WiFiClient espClient;
PubSubClient client(espClient);
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Attempt to connect
if (client.connect("espClient")) {
Serial.println("connected");
// Once connected, publish an announcement...
client.publish(outTopic,"Az espClient-nek sikerült csatlakozni az MQTT szerverhez");
// ... and resubscribe
client.subscribe(inTopic);
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
}
}
}
void setup() {
pinMode(CONTACT1, INPUT);
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
digitalWrite(CONTACT1, HIGH);
digitalWrite(RELAY1, HIGH);
digitalWrite(RELAY2, HIGH);
Serial.begin(115200);
delay(10);
// Connect to Wi-Fi network
Serial.println();
Serial.println();
Serial.print("Connecting to...");
Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Wi-Fi connected successfully");
client.setServer(server, 1883);
client.setCallback(callback);
}
void loop() {
int curState1 = digitalRead(CONTACT1);
Serial.println(curState1);
if (!client.connected()) {
reconnect();
}
if (curState1 != prevState1){
prevState1=curState1;
if (prevState1 == LOW){
client.publish(outTopic, offmsg1);
client.publish(outTopic, offmsg2);
}
if (prevState1 == HIGH){
client.publish(outTopic, onmsg1);
client.publish(outTopic, onmsg2);
}
}
client.loop();
} -
szabifotos
senior tag
válasz
Janos250 #6912 üzenetére
Köszönöm mindenkinek a segítséget. Tehát PI+ router helyett elég egy harmadik ESP, amin webszerver fut, és erre kapcsolódunk telefonnal, hogy lássuk az állást.
Én úgy képzelem, hogy amint bekapcsoljuk a klienseket, azok felcsatlakoznak, és automatikusan kiíródik a versenyzők neve a html oldalon a számokkal. Így megoldható lenne, hogy azonosítható az oldalról, hogy ki játszik, nem csak #versenyző1 #versenyző2 lenne.
A jelküldés hogyan oldható meg? pl. Nyomás történik A0 bemeneten, akkor html kéréssel léptet egy számot az oldalon. Valami ilyesmi kellene...
Nem mondom el mihez kellene pontosan, de nem is jut eszembe milyen projektben használhatnak hasonlót, hogy példa kódot keressek
-
Tankblock
aktív tag
válasz
Janos250 #6942 üzenetére
Hello,
Ha lenne annyi időm... már nem lenne
[link] de van akinek sikerül...
Maradtam a jó öreg Raspi 3 Mosquitto / Nodered párosnál, s ha már itt tartunk akkor a SonOff Touch egyet be is üzemeltem ma.
Alexa köszöni jól el van, szobában a fő villany már szépen kapcsolható web/Alexa/touch alapon....
esp32 nél a freeRtos vagyok úgy hogy jó lenne minden részét végigpróbálni, de a TaskNotify még nincs kész. Talán a hétvégén marad némi felesleges időm....
-
Victoryus
addikt
Köszönöm! Egyelőre csak gondolkodok/tervezgetek, amíg nincsenek itt az alkatrészek. Úgy néz ki rendelek akkor egy esp32-es vezérlőt is.
Végül is most 4 tervem van csak: hőmérés+kijelzés, led szalag vezérlése karácsonyra, led mátrix vezérlése feliratokkal, 1-2 guruló robot amit lehet távirányítani, aztán majd szumó.
Végül is tényleg túlgondoltam, mert annyi elég, hogy maradjon bent a körben, érzékelje hol a széle, és ha talál valamit maga előtt tolja ki. -
Janos250
őstag
válasz
Tankblock #6927 üzenetére
Ha már itt tartunk!
MQTT brokert telepítettél már ESP32-re?
Korábban, mikor néztem, nekem nem sikerült találnom, mindenütt a mosquittot ajánlották, de az meg - ugye? - nem megy ESP-n?
Ezért én félre is tettem a dolgot, és maradtam egy egyszerű server/client megoldásnál, pedig nálam is egy központi szerver van, ami tulajdonképpen a broker szerepét játssza, a topicok pedig valahol vannak.Hogy miért ragaszkodom az ESP-hez? Csak!
-
Janos250
őstag
válasz
Victoryus #6932 üzenetére
Mindkettőben van.
Én az ESP32-t javasolom mindenkinek. Nem sokkal drágább, viszont több szabad GPIO van. Továbbá a két mag se hátrány, mert a user programja önállóan fut egy magon, a rendszeré meg a másikon, ha nem variáljuk át.Na, közben látom, már kaptál jó választ, amivel én is egyetértek.
-
Tankblock
aktív tag
válasz
Victoryus #6932 üzenetére
1 szavazat az ESP32 re, ha minnéél kevesebb komponensből szeretnéd megoldani.
OKok:
sokkal töb GPIO lába van mint a ESP8266 nak, 2 core így nem kell yield() szórakozni.
Elegendő számítási kapacítása van hogy kiszolgáljon.
Bluetooth is van ráadásként....Vagy SMT32 ből és egy Wifi ESP8266 a kommunikációhoz , de ezt nem biztos, hogy én választanám.
Vagy Esetleg egy sima ESP8266 ha kell GPIO extenderrel ha kell.
Kérdés, mit szeretnél, mennyi GPIO lábra van szükséged. Javaslatom előszöt nézd meg mennyi szenzort szeretnél használni, milyen modulokat, hol lehet egyszerűsíteni (pl I2C több modult felrakni) és az alapján válasz ha megvan a system design......
SzerK: Ultrahang szenzor nem lát részleteket, a legközelebbi viszhangot tudod detektálni. arra kamera kell Rasperry Pi pl elegendő számítási teljesítménye van erre.
Sima LED Mátrix vezérlésre a ESP8266 is elegendő....
-
Victoryus
addikt
Melyik az a kütyü, amiben van alapból wifi és arduino kompatibilis? ESP8266? Illetve van esetleg ami jobban megérné? Esp32?
2 robotot építenék, amik lehetnek távirányítósak, vagy lehetnek "önállóak", és mondjuk egy körből kéne kitolniuk egymást, mintha szumóznának.
Ha szumó lesz, akkor honnan tudja az egyik robot, hogy a másiknak éppen melyik részét támadja? Nyilván könnyebb lenne kitenni az ellenfelet ha oldalba kapja, mint ha szembe. Lát az ultrahang szenzor részleteket?
A másik amire még használnám, led matrix vezérlésére, és wifin kapná meg amit ki kéne írni. Ez gondolom lehetséges.
Egyelőre még mindig csak a 2 motoros kisautós készletem van meg, a másik pakk bolyong valahol már egy hónapja, így nem haladtam előre... -
Janos250
őstag
Eléggé elkanyarodtunk az eredeti témától, vagyis, hogy a telefonnak kell-e sűrűn pollozni, vagy a szerver magától is tud adatot küldeni, ha változás van. Az elnevezés számomra másodlagos, tehát akkor szerver és kliens szavak nélkül így fogalmaznék:
Ha az ESP-n létrehozok a WiFiServer osztálynak egy példányát (ne nevezzük szervernek, hanem mondjuk kiskutyának), akkor egy másik ESP-n meg a WiFiClient osztálynak létrehozok egy példányát (ne nevezzük kliensnek, hanem mondjuk kismacskának), akkor, ha a kiskutya változást érzékel, anélkül is tud adatot küldeni a kismacskának, hogy kismacska pollozna.Persze ebből az egész eszmefuttatásból szabifotos - a kérdező - egy fikarcnyit se profitál.
Ő legtöbbet Tanblock hozzászólásából profitálhat:
https://prohardver.hu/tema/arduino/hsz_6927-6927.html -
válasz
Janos250 #6923 üzenetére
A telnet más tészta, mint a http kapcsolat.
De ha arról akarsz meggyőzni, hogy az esp-n fut egy telnet szerver, és te egy telnet klienssel bejelentkezel rá pc-ről, akkor ezek után az esp kérés nélkül tud adatot küldeni a pc-re a telnet kliensnek, akkor arra csak azt tudom mondani, hogy egy fenét.Ugyanis a kérés a kliens felől akkor kezdődik, amikor bejelentkezel vele a szerverről, és akkor zárul, mikor kijelentkezel. Ha te kijelentkezés után is tudnál az esp szerverről adatot küldeni a pc-s kliensre, oly módon, hogy a célgépen elindul a putty, és felépül a telnet kapcsolat,
akkor lenne igazad. De fogadjunk, hogy erre még Te sem vagy képes. -
Janos250
őstag
Akkor ha pl. PC-ről belépsz egy telnet szerverre mondjuk putty-al, és küldesz oda adatot, akkor a Te géped lesz a szerver, és a "szerver", amihez csatlakoztál, az lesz a kliens? És ha a "szerver" küld adatot valamelyik kliensre, mondjuk egy másik putty-ra, akkor ki a szerver, és ki a kliens. Lehet a nomenklatúrán vitatkozni, de egy biztos: ha ESP-n létrehozok egy szerver objektumot (WiFiServer szerveremNeve(port)), arra be lehet jelentkezni távolról kliensként, és a szerver a bejelentkezett kliensekre kérés nélkül tud adatot küldeni. Ha nem hiszed, felrakok ideiglenesen egy ilyen szervert, belépünk mindketten putty-al, vagy mással, én gépelek, és Te megkapod, anélkül, hogy kérnéd. Mondom, nevezhetjük bárminek, de ennek Arduinon szerver a neve.
-
Janos250
őstag
Rendben, legyen, nekem aztán tökmindegy.
Én éppen hogy nem arra gondoltam, hogy "néhány plusz klón UNO vagy NANO megvásárlásával", hanem, hogy miután a legalapabb dolgokat megtanulta, "elhajítja" ezt az olcsó kitet, és áttér ízlése szerint valamelyik korszerűbbre (pl. STM32, ESP), amik gyakorlatilag nem, vagy alig drágábbak, és ahhoz vesz valami szenzor készletet, szervo-, léptető motort, meg ilyesmit. Egy 12ezres készletben természetesen több minden van, azzal sokkal messzebbre jut. Vannak persze, akik "végleg" maradnak az UNO szintjén, az is egy verzió, azzal is nagyon sok mindent meg lehet csinálni, bár néha csak tótágast állva. Viszont a linkelt "UNO R3 Prototype Shield" lapot akkor is jónak tartom UNO-hoz.
Ez az én véleményem, másé meg más. -
Janos250
őstag
válasz
szabifotos #6907 üzenetére
Én is az ESP-t javasolom:
1. verzió:
2 db. ESP. router nélkül.
Egyik ESP csak állomás, másik AP (vagy is)
Az állomás bejelentkezik a másikra, mint AP-re, és küldi az adatokat.
Az AP számol, és egy szervert (azon egy WEB szervert) futtat, ami küldi a pillanatnyi állást.
A frissítés gyakoriságát Te állítod be
(<meta http-equiv=\"refresh\" content=\"5 url=http://192.168.4.1\">) ez pl. 5 secenként frissít.2. verzió:
3 ESP.
Egy AP, a másik kettő állomás, ők küldik az adatokat az AP-n lévő szervernek, az feldolgozza, és futtat egy WEB szervert, ami kiszolgálja a bíró bácsit.3. werzió:
Az előzők bármelyike azzal a különbséggel, hogy mindenki csak állomás, de van egy router, arra kell bejelentkezni, és azon keresztül történik a kommunikáció. Ez szükség esetén interneten keresztül távoli elérést is biztosítAz írásról, olvasásról itt
https://prohardver.hu/tema/arduino/hsz_6890-6890.html
írtam pár sort.Hány kliens kapcsolódhat?
Nekem az ESP8266-on 3 simán ment, 4 döglődött, 5 pedig egyáltalán nem ment.
ESP32-n 8-ig próbáltam, addig hiba nélkül ment.
Én többnyire ESP32-t használok akkor is, ha nem kellene, mert a múltkor egy akciónál 1100 Ft-ért vettem párat, most el vagyok látva. -
válasz
szabifotos #6910 üzenetére
Én mindenképp dedikált eszközt készítenék. Vagy vegyél egy mobiltelefont, amit csak erre használsz, és odaadod a bíró kezébe, de ugye az is dedikált eszköz.
Nyilván nem az ő telefonját fogod használni, kivéve, ha ő is szeretné, és mondjuk a play-ről tölthető appot csinálsz, vagy ugyanaz a bíró többször is képbe kerül.
Most már mondd el, mi ez a verseny.
Ha html felület lenne, lehetne a te telefonod a router, és a bíró is arra csatlakozik, de ahogy szó volt róla, a html erre szerintem lassú. Esetleg valamilyen ajax-os megoldás lehetne, ha már webes felület, vagy HTML5 push, de erre megint nem tudom, hogy alkalmas-e az esp. -
szabifotos
senior tag
Mármint feleslegesen erős oda? Minimum kettő, mert ugye két versenyző. Távolság passz. Átlagos wifi térerő elég lenne. Bár láttam külső antennás esp-t is valahol...
Lehetne dedikált eszköz is, saját kijelzővel de haladjunk a korral. Ma már minden okos telefonra hangolható. Ezért gondoltam, hogy helyi webszerver és telóról mehetne. Szervernek megintcsak azért nem jó telefon, mert nem felhasználóbarát. "Figyeljen bíró bácsi: átalakítjuk a tlóját szerverré, addig tessék ide adni. "
Csak a kezébe nyomni és működik felcsatlakozás után.Hmm.. lehet lassú a html, mire reagálna. Próbáltam már relét kapcsolni. ott is kellett kb. 3sec a reaction-re.
Akkor hogyan gondoljam újra az egészet? -
válasz
szabifotos #6907 üzenetére
A pi szerintem eléggé overkill erre a feladatra, én szervernek is inkább esp-t használnék, valamilyen lcd kijelzővel, bár nem tudom, router nélkül hány kapcsolatot tud kezelni. Nem írtad mekkora távolságot kellene áthidalni, mennyire kell bővíthetőnek lennie.
Ha router kellene, azt szerintem egy mobiltelefonnal ki lehet váltani, illetve maga a telefon is lehetne a szerver. -
szabifotos
senior tag
Sziasztok!
A következőt tervezgetem. Játékállást kell számolgatni. Pontosabban Digital pineken beérkező jelekre számoljon egy counter, wireless.
A terv: 2db NodeMcu esp modul csatlakozik egy helyi hálón AP-re (router vagy RasPi) és egyik versenyző az egyik modul, másik a másik. Az állást egy webszerveren látnánk pl.
0 .............-........ 0
Kis Pista ........ Nagy Janinulláz, gombok stb mondjuk egy html felületen.
Mindezt el lehetne érni telefonról, vagy akár külön Pi modullal dedikált "bírói" eszközt csinálni neki.
Node ESP+ mondjuk MQTT+ Pi? Vagy tenyérnyi router?
hogyan oldanátok meg? Esetleg valakinek van hasonló kódja példának? -
Janos250
őstag
"Át lehet méretezni, azaz, hogy több legyen a program memória és kevesebb az SPIFFS?"
Elvileg az IDE-ben be lehet állítani, de soha nem próbáltam, hogy tudja-e kezelni. Háttértárként (tehát adatokat fájlba írni rá, és olvasni) kezelni biztosan tudja a maradékot, próbáltam, kényelmes. Ugyanúgy történik a fájl kezelés, mint a szokásos. (megnyitjuk, írjuk vagy olvassuk, bezárjuk)
"Másik kérdés, hogy lehet a legegyszerűbben interneten keresztül adatot (byte szinten) küldeni és fogadni az ESP8266 és egy számítógép között (a számítógépen is C++ programot írnék)?"
Az ESP-n pl. így(a lényege):
WiFiServer EnServerem(port);
WiFiClient serverClientAmirolOlvasunk;
WiFiClient serverClientAmireIrunk;olvasás:
len = 0;
while(serverClientAmirolOlvasunk.available()) {
len++;
sbuf[len-1] = serverClient.read();
} ;Írás:
serverClientAmireIrunk.write(sbuf, len);PC-n nem tudom, de a PC-n az így küldött adatokat putty tudja fogadni, illetve oda ha ír, azt az ESP olvassa.
PC ügyben majd a windows hozzáértők válaszolnak. -
Dalee
aktív tag
ESP8266 ESP12E lapon van 4 MB flash. Alapból Arduino IDE 1 Mb-ot lát belőle program memóriaként. Át lehet méretezni, azaz, hogy több legyen a program memória és kevesebb az SPIFFS?
Másik kérdés, hogy lehet a legegyszerűbben interneten keresztül adatot (byte szinten) küldeni és fogadni az ESP8266 és egy számítógép között (a számítógépen is C++ programot írnék)?
-
válasz
fpeter84 #6881 üzenetére
Ha kültéren, hidegnek lesz kitéve, szerintem a két AA jobb megoldás, mint a li cella, utóbbi ha jól tudom nem szereti a mínusz fokokat.
Az esp konverter nélküli megoldást próbáld ki, hátha működik, én az 5V-os UNO lappal kísérleteztem, 3V-ról még szervókat is tudok mozgatni. -
fpeter84
senior tag
válasz
Janos250 #6880 üzenetére
Feltételezem a rajta lévő kapcsüzemű táp + AMS1117-nél lehet sokkal jobb üresjárati áramú tápot kreálni hozzá. Azt még nem álmodtam meg, hogy 2xAA elemről vagy 1x3.7V Li akkuról menjen e... Annak még utána kell nézni/ki kell próbálni hogy mit szólna az ESP a táp nélkül közvetlenül két AA elemről járatáshoz - gondolok itt a kicsit gyengülő elem állapotra, hogy meddig képes stabilan elindulni még róla. Ha pedig Li akku, akkor kell elé egy 1 fokozatú táp (nem kell 5V), aminek a létező legkisebb az üresjárati pazarlása...
Közben már keresgélek, de konkrét választ még nem találtam a mAh/várható készenléti állapot kérdésre... Régebbről rémlik egy videó, ahol az illető gombelemről járatta az ESP-t, és mintha közel 1 hónapos készenlét lett volna a konklúzió. No ezzel ki tudnék egyezni, akkor két AA-ról járatva nem kellene túl gyakran elemet cserélni
-
Janos250
őstag
válasz
fpeter84 #6878 üzenetére
A Wemos miért ne lenne jó?
Készenléti időről nem tudok mit mondani, mert én a gyakorlatban állandóan bekapcsolva tartok mindent, mert a hozzá kapcsolt áramkör egyébként is sokat zabál, ahhoz az ESP fogyasztása már nem számottevő.
A szerver épületben van, egy router mellett. Az állomások pedig mobiltelefon megosztott WiFijén keresztül kapcsolódnak a nethez, mert emberke hordozza.Így az altatás/ébresztés is csak elmélet nálam.
-
gyapo11
őstag
3-5 ezer Ft-ért lehet venni az ebayen valami pic-es modult, ami kvázi szkópként is használható, az analóg bemenetén leméri a feszt és az usb-n át a pc folyamatosan olvassa. Talán pár kHz-et írtak, most nem néztem utána. Szerintem ezt még az arduino is bírja.
De szerintem akár olcsóbban és jobbat is lehetne találni. Mit ajánlanátok? Arduinoból is vannak gyorsabbak, vagy az esp is 80 Mhz-es, csak nem tudom van-e analóg bemenete, vagy valami stm-es modul, pl. ez 3.75 $-ért, bár ez csak 72 MHz-es.
Szóval max 4000 Ft, minél gyorsabban tudja küldeni a mérési eredményeket. A virtuális soros portnak gondolom maxon kell járnia, vagy szóba jöhet a ramban tárolás, és onnan áttöltés, ehhez elegendő méretű ram kell a processzorban. -
fpeter84
senior tag
Köszönöm a tippeket!
tvamos: úgynézem ez a Ti platform elég borsos árú - jobban preferálom a filléres kínai megoldásokat - ahogy nézem a kész dev cuccok 30-40$-tól tartanak a csillagos ég felé... A referencia nyákterve pedig elég összetett ráadásul QFN IC-vel, így a hobbi projektekből kiesik...
ESP: no erre nem is gondoltam alacsony fogyasztású alternatívaként... Van Wemos D1 R2-ből és több - ez gondolom kevésbé alkalmas a célra - de van natúr ESP12 modulból is pár itthon. Meg van OpenWrt-s routerem is a házban, szóval adhatja magát a dolog, hogy az legyen a szerver... Milyen készenléti időt sikerült eddig elérni vele, ha csak pár percenként jelentkezik be? Interrupt-ra fel tud éledni alvásból, ha esemény van körülötte és jelentenie kellene?
-
Janos250
őstag
válasz
Gergosz2 #6876 üzenetére
Mindent a megfelelő helyre!
Van, amihez külön arduino lap is kell, de az ESP-hez nem kell, mert ő egyben az is.
Power:
Energiatakarékosságot minden rendszeren csak altatással lehet elérni. Hogyan néz ez ki ESP esetén?
Van egy ESP, szenzorral, és pici elemmel. Az élete zömében altatjuk, csak időnként ébresztjük fel annyi időre, hogy beolvassa a szenzor adatát, és elküldje.
Na, de biztos, hogy akkor a másik fogadni tudja? Itt jön a WiFi előnye.
Biztosan van a közelben egy olyan hely, ahol van elég energia és hely. Oda telepítjük az állandóan ébren lévő ESP-t. Ő fogadja az éppen felébredt adatgyűjtő adatait,
és amikor az az állomás felébredt egy pillanatra, akinek az üzenet szól, az megkérdezi az állandóan ébren lévő szervert, hogy küldött-e valaki adatot a számára.
Mivel a WiFi igen széles körben alkalmazott, mindenfélék elég olcsón kaphatók hozzá: routerek, jel erősítők (pl. Mantistek nagyon jó), stb.
Tehát innen kezdve csak ujjgyakorlat és C++ kérdése, hogy mit csinálunk meg.
Természetesen azt is meg lehet csinálni, hogy NRF üzen egy másiknak, és az szórja, vagy ha nem bírja, akkor átrakja más platformra és úgy továbbítja, szórja.Persze mindenki saját maga dönti el, mit csinál, kinek mi a kedvezőbb.
Mi leírjuk a lehetőségeket, ő meg választ. -
Janos250
őstag
válasz
fpeter84 #6873 üzenetére
Pap és papné esete!
Mindenki a saját kedvencére esküszik.
Nekem egy hasonló működik, jelenleg még nem üzemszerűen, ESP-vel.
Be lehet rá jelentkezni telnet jelleggel, és bármelyik kliens által küldött adatot továbbítja az összes többinek, mert nálam épp ez kell.
Egy fogja majd üzemszerűen küldeni, a többi meg várja az adatokat. Lehet putty-al is bejelentkezni, küldeni is, fogadni is.
WEBen meg lehet követni, kik vannak éppen bejelentkezve.Ja, és természetesen arduinoval.
Ha akarod, írsz privátot, és bejelentkezésekkel kipróbálhatod interneten keresztül.
-
vargalex
félisten
Az ESP8266 bármelyik PIN-jét használhatod I2C-re (is). Csak default-ban a GPIO4, illetve GPIO5 az sda/scl.
-
Dalee
aktív tag
A NodeMcu ESP8266 EPS12E tartalmaz ugye 4 MB flasht.
Ezért gondolom az SPI pineket nem tudom felhasználni. Kiestek a soros lábak (Rxd0,txd0), a GPIO0 a programozásnál használatos.
Fentiek alapján jól értelmezem, hogy 8 portot lehet a felül használni:
D0 - GPIO16
D1 - GPIO05
D2 - GPIO04
D4 - GPIO02
D5 - GPIO14
D6 - GPIO12
D7 - GPIO13
D8 - GPIO15Illetve ebben a 8 portban van az i2C busz (GPIO4,5)?
-
Janos250
őstag
válasz
gyapo11 #6854 üzenetére
"nem biztos, hogy ezeket egy gyári appal akarnám egyesével kapcsolgatni távolról. Akkor már kellene visszaigazolás is, hogy megtörtént-e a kapcsolás, vagy volt valami akadály. Volt-e áramszünet, resetelt-e valamelyik eszköz. Inkább rábíznám ezt egy arduinora "
Én is ezt próbáltam gagyarászni, csak nem biztos, hogy érthető volt. Ha weben keresztül használod, megvan a visszaigazolás. Pl., ha a lámpa fel van kapcsolva, akkor a kikapcsoló gomb jelenik meg, ill. fordítva.
"Persze ekkor már nem kell sonoff, csak relémodul."
A Sonoff az arduino (ESP8266) + relémodul egy panelra rakva.
"Már a wifiben sem tudnék igazán megbízni. A Tplink router a gyári fw-ekkel pár naponta dobta el a wifit"
Nálam a router működik, bár előfordul néha, hogy a klens arduino lekapcsolódik.
Az általam alkalmozott:
WiFi.setAutoReconnect(true);
illetve:
while (WiFi.status() != WL_CONNECTED ){
// Serial.println("try reconnect");
// digitalWrite(LED_BUILTIN, ledDark);
WiFi.begin(ssid, password );
delay(1000); // min 1000
} -
Janos250
őstag
Itt hivatkoznak egy cikkre, hogy 32Mbitesre cserélte valaki az ESP8266 memóriáját.
Próbált már valaki ilyesmit?
https://prohardver.hu/tema/okos_otthon_smart_home/hsz_937-937.html -
Janos250
őstag
válasz
gyapo11 #6834 üzenetére
"Soros portot hogy érem el? "
Így (első ábrán be vannak jelölve a helyek, oda teszel tüskéket):
https://github.com/arendst/Sonoff-Tasmota/wiki/GPIO-Locations"hogy töltöm át? "
Így:
Sonoffra feltöltés:
GND,VCC, Tx->Rx, Rx->tx bekötve,
Reset gomb benyomva tartva dugjuk be a PC-be az USB csatit.
Tehát a reset gomb nyomva tartása mellett adunk rá tápot.Természetesen a 230-ba ne legyen bedugva, mert mint tudjuk, az a vezeték amiben áram van, ugyanúgy néz ki, mint amiben nincs, csak a fogása más
"Meg az IDE-ben (1.8.0) se találok ESP8266-ot"
IDE-ben:
file/beállítások/További alaplap-kezelő URL-ek -hez beírod:
http://arduino.esp8266.com/staging/package_esp8266com_index.json
Utána látod az eszközök/alaplap/alaplapkezelő felületen
típus összes és látod
utána more info, akkor megjelenik a telepítés gomb
telepíted"Hanem írok egy programot, ami akár időpontokhoz akár más feltételekhez kötve kapcsolgatja a relét."
A loop-ba azt írsz amit akarsz, ugyanúgy, mint bármelyik másik lapnál, amire Arduino alatti programot teszel.
Ez is egy ESP8266, Arduino alatt (is) programozható lap, mint pl. az UNO. -
gyapo11
őstag
válasz
Janos250 #6833 üzenetére
Arra gondoltam, hogy nem webes elérést programozni, az benne van gyárilag. Hanem írok egy programot, ami akár időpontokhoz akár más feltételekhez kötve kapcsolgatja a relét. Azt sem értem, hogy a gyárilag benne levő program nem kavarodik-e össze az általam rátöltöttel. Soros portot hogy érem el, hogy töltöm át? Meg az IDE-ben (1.8.0) se találok ESP8266-ot, még ennek is utána kell néznem. Lehet maradok az arduinonál és a relé modulnál.
-
Janos250
őstag
válasz
gyapo11 #6831 üzenetére
Igen, már többször volt róla szó, de most nem keresgélem, inkább bekopizom, amit magamnak mentettem le régebben.
#define RELAY 12
#define LED 13Pin functions:
After having put another firmware onto the ESP8266,
we would probably want to be able to control the relay again,
and for that we need the pin number.Function GPIO NodeMCU
Button 0 3
Relay 12 6
Green LED 13 7
Spare (pin 5) 14 5The LED on the board is actually a red/green bi-color led,
but the red side is only connected to the RF module,
which in my version isn’t mounted.ESP8266 van benne, úgy kell programozni.
Én a következő beállításokkal használom:
Generic ESP8266 Module/ DIO / 1M(512K SPIFFS)/ Disabled/None/ck/40Mhz/80Mhz/115200Ez meg egy egyszerű minta program, bár úgy rémlik, mintha a led fordítva lenne bekötve:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
uint8_t relePin = 12 ;
uint8_t greenLEDpin = 13 ;void lampaBe () {
digitalWrite(12, HIGH) ;
digitalWrite(13, HIGH) ;
Serial.println("be");
} ;void lampaKi () {
digitalWrite(relePin, LOW) ;
digitalWrite(greenLEDpin, LOW) ;
Serial.println("ki");
} ;ESP8266WebServer server(80);
void handle_index() {
String sParameter = server.arg("lampa");
if (sParameter == "be")
lampaBe () ;
else
if (sParameter == "ki")
lampaKi () ;
Serial.println(sParameter);String s = "<html>\r\n";
s += "<!DOCTYPE HTML>\r\n";
s += "<head>\r\n";
s += "<meta http-equiv=\"refresh\" content=\"5 url=http://192.168.4.1\">\r\n";
s += "<meta charset=\"UTF-8\">\r\n";
s += "<title>SONOFF</title>\r\n" ;
s += "</head>\r\n";
s += "<body>\r\n";
s += " <font size =\"7\"> \r\n" ;
s += "\r\n";
s += "\r\n";
s += " <BR>\r\n";
s += " <BR>\r\n";
s += " <a href=http://192.168.4.1/?lampa=be>bekapcs</a>\r\n" ;
s += " <a href=http://192.168.4.1/?lampa=ki>kikapcs</a>\r\n" ;
s += "</body>\r\n";
s += "</html>\n";server.send(200, "text/html", s);
delay(100);
}void setup(void)
{
pinMode(relePin, OUTPUT);
digitalWrite(relePin, LOW) ;
pinMode(greenLEDpin, OUTPUT);
digitalWrite(greenLEDpin, LOW) ;
Serial.begin(9600);
delay(2000); // 2s késleltetés az ESP8266 feléledéshezWiFi.mode(WIFI_AP); // AccessPoint
WiFi.softAP("Sonoff-02","legyenegyjelszo"); // SSID, pw
server.begin(); // start the HTTP server
server.on("/", handle_index); // ezt hajtsa végre, ha a rootba lépünk
}void loop(void)
{
server.handleClient();
delay(500);
} -
szabifotos
senior tag
válasz
vargalex #6826 üzenetére
De 5V-os. Egyszer már meg is csináltam hogy működjön régebben, most nem tudom mi lehet a gond. Kapcsolni kapcsol, tehát behúz a relé ha valamelyik HIGH pinre kötöm. A gond, hogy wifin nem változtatja az állapotát. ESP app-ban nyomkodom villog a led, de a relé nem vált...
SZERK: Jut eszembe... Lehet tranzisztort tettem közé...
-
Janos250
őstag
válasz
vargalex #6819 üzenetére
NEM !!!!!!!!!!!!!!!
Formailag ugyan kérdés, de a kérdőjel után az ELKÜLDENDŐ ADATOT szerepeltetem.
A szerver nem automatikusan válaszol, hanem a kérésre lefut egy C++ metódus. Abban szabom meg, hogy mi történjék.
Pl. válaszoljon rá,
vagy ne válaszoljon, hanem valami egész mást csináljon (pl. állítsa a fűtést -10-el lentebb)
vagy tárolja le valahova a linkben megkapott adatokat
vagy több mindent is ezek közül.Ez nem a megszokott szerver használat, de lehet így is.
Kezdeményezni valóban nem a szerver kezdeményez, de a nálam előforduló feladatokban nem is kell, mert a szenzort kezelő kliens dönti el, mikor küldjön.
Persze a "telnetserver", ahogy a neten hivatkoznak rá, az könnyebben érthető, és jól használható, ha az emberfia kijavította a hibát. Ezt is használom, másodpercenként pár kiló adatot küld egy "szenzor" a telnet szervernek, ami részben tárolja, részben továbbküldi mindenkinek, aki be van jelentkezve. ESP8266-on 4 bejelentkezett kliensig ment, ESP32-nél 8-ig próbáltam, addig ment. (tovább nem volt türelmem)
-
Janos250
őstag
válasz
vargalex #6791 üzenetére
Én mindkettőt használom feltöltésre, adatgyűjtésre.
A client módszerre a "telnetserver" jó keresőszó. (ESP32-re a multitelnetre leggyakrabban bejövő program hibás! A for ciklusban break kell)
A webszervert is használom adatgyűjtésre, mind get, mind post módszerrel.
Az ő feladatára:
- a feltöltéshez a client,
- lekérdezéshez a webes módszert gondolom jobbnak, de ha csak az egyiket akarja megtanulni, akkor a web mindkettőre jó. -
Janos250
őstag
válasz
BTminishop #6780 üzenetére
Én is azt javasolom, hogy az arduinon csinálj egy WEB szervert, ahhoz egy WEB lappal könnyen tudsz csatlakozni, és könnyen tudod kezelni. Egyszerűbb mint az app, és univerzálisabb. Nem kell semmit feltölteni a telefonra, böngészőből működik. Ez sokkal könnyebb, mint appot írni.
ESP8266-on a ESP8266WebServer.h
ESP32-n a WebServer.h (az ESP8266WebServer-ból átírtat!)
szervereket használjuk. (ez nem annyira egyértelmű, mert többféle is van, de ezek a legjobbak.)
Én mindenkinek javasolom az ESP32-t. Már az ára is lement 2eFt alá, és már az arduino rendszerbe illesztés is elég tűrhetően meg van oldva. Akár az UNO-ra írt programok is - többnyire - változtatás nélkül futnak rajta, nagy sebességgel. -
Janos250
őstag
"Milyen macerára gondolsz?"
Én régen, amikor foglalkoztam vele, jó időbe telt, mire rájöttem, hogyan is kell programozni. Más is panaszkodott rá. Én végül rájöttem, de azóta már nem emlékszem, hogyan. A múltkor, mikor valaki kérdezte, elővettem egyet, megpróbáltam programozni. Nem ment, hagytam a csudába. Pedig emlékszem, hogy régebben végül símán ment.Az unon van polyfuse? Ezt eddig nem is tudtam. Igaz, ezer éve nem vettem a kezembe unot. Már jó ideje csak ESP-t és STM-et használok.
Nemrég jött meg ez a lap:
http://www.ebay.com/itm/Open407V-D-Core407V-Development-Board-Standard-STM32F4-DISCOVERY-ARM-Cortex-M4-/172740399220?var=&hash=item2838215074:m:mXcPXqbE1cuL4cDPC68OwOg2600 Ft-ért, de még nem próbáltam. Most erre leszek kiváncsi, de nincs rá időm kipróbálni. Ennyiért STM32F407 ajándék, ha rendesen megy.
-
Janos250
őstag
válasz
gyáliSanyi #6690 üzenetére
Persze! Gyakorlatilag ugyanaz, csak centire kisebb.
Mellesleg a szeptember 11 körül linkelt akcióban 300 Ft volt darabja szállítással együtt.
Én is rendeltem - fogalmam sincs minek, azon kívül, hogy olcsó, mert itthon meg 1990 Ft + szállításért árulja egy ismert webáruház - 5 darabot. Jó darabig nem küldték, hogy nincs raktáron, hátha lemondom a rendelést. Aztán végül postára adták a Banggood szerint. Akkor volt 1100 Ft az ESP32 is, de azt azóta se küldték. Várom, mi történik, mert abból még kellene is, de azóta 1800 Ft. Végülis a halom cuccból minden postára lett adva, van ami már meg is érkezett, csak az ESP32 a "Back Order". Érdemes néha nézni az ilyen akciókat, mert időnként nagyon olcsón lehet vásárolni. Olyan dolgokat is, ami az embernek soha nem kell -
Janos250
őstag
válasz
Teasüti #6659 üzenetére
Az arduino is a main.cpp-t futtatja, akkor is, ha az el van rejtve a szemeink elöl.
Viszont megtalálható, nálam a
C:\Arduino\arduino-1.8.2\hardware\espressif\esp32\cores\esp32
könyvtárban. Itt látható, hogy elvileg inkludolva vannak:
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "Arduino.h"
A gyakorlatban - nem tudom miért - nekem mégis néha inkludolnom kellett a könyvtár fájljait a programban.
C:\Arduino\arduino-1.8.2\hardware\espressif\esp32\tools\sdk\include\freertos\freertos
helyről.Itt van némi leírás:
https://techtutorialsx.com/2017/05/06/esp32-arduino-using-freertos-functions/Itt fel vannak sorolva a függvények, hogy melyik mit csinál.
http://www.freertos.org/a00125.htmlHa meg akarod nézni, itt van nekem egy próbálkozásom:
http://kkft.bme.hu/~johnny/ESP32mintaTobbTask-CoreKiirasBeallitas.inoValami itt van a BT-ről, de nem használtam, csak könyvjelzőztem
https://techtutorialsx.com/2017/07/17/esp32-bluetooth-advertising-a-spp-service-with-sdp/Mellesleg én a mobiltelefonnal is WiFin keresztül tartom a kapcsolatot,
internet megosztás módszerrel, és nem zavar semmit. -
Janos250
őstag
válasz
Teasüti #6647 üzenetére
Ez egy elég jó leírás egy csomó példával az ESP32 használatára:
http://www.instructables.com/id/IOT-Made-Simple-Playing-With-the-ESP32-on-Arduino-/
Van benne egy csomó dolog, digitális, analóg input, output, led trimmer, szervo , internet, stb.
Egyébként még sokan előnynek tartják, hogy akár WiFin keresztül is töltögetheted rá az új programokat. Én ezt a részét nem használtam, nekem ez nem volt szükséges eddig.
Szó van benne a hardver PWM-ről is, ami bizony jól jön számos helyen: led, szervo vezérlés, stb. Egészen más, ha a hardvert beállítom, és az önállóan dolgozik tovább amíg nem babrálom, mintha pl. egy szervonál folyamatosan szoftverből kell küldözgetni a jelet, mint egyes régebbi lapoknál. -
Janos250
őstag
válasz
Teasüti #6647 üzenetére
A WiFi használatára egy összefoglaló:
https://www.arduino.cc/en/Reference/WiFi
Az arduinonak épp az a lényege, hogy ha egy új processzort tartalmazó lapot beillesztenek a redszerbe,
akkor ugyanazokat az osztályokat, ugyanazzal a névvel, funkcióval, tagfüggvényekkel meg kell rá írni. Ez a portolás lényege.
AZ ESP32-re a gyártó illesztette a freeRTOS-t. Az arduinora portolás során gyakorlatilag azt tették, hogy az arduinonak megfelelő nevekkel,
paraméterekkel, stb. megírták az új osztályokat, amiben hivatkoznak - az egészen más nevű, logikájú - freeRTOS függvényeire.Célszerű a mintaprogramokat megnézni. Az ESP8266 WiFire sok példa van, gyakorlatilag ugyanazok mennek az ESP32-n is.
Viszont WEB szerverre célszerű az ESP8266 WEB szerverét használni, mert az jobban ki van dolgozva WEBre. Portolták as ESP32-re is:
http://www.fisch.lu/junk/ESP32-WebServer.zip
Itt már átírták a nevét 32-re, és pár dolgot módosítaniuk kellett benne.A BT-t nem tudom, nem használtam.
UI.: most látom, hogy a ESP8266 WEB szerver linkje nem él, de majd ha összefutok vele, felteszem
-
Teasüti
nagyúr
válasz
Janos250 #6642 üzenetére
Megvan az ESP32 dokumentációja, de van arról vmi infó, hogy a fent linkelt lapon lévő perifériákat hogy kell használni? Gondolom ezek a lapok nem szabványosak, vagy nem homologizáltak, így a rajta lévő BT+Wifi használatáról hol lehet tájékozódni? Vagy honnan lehet tudni milyen portokra vannak ezek bekötve?
-
Janos250
őstag
válasz
Teasüti #6643 üzenetére
"Én teljesen abban voltam, hogy ez külön platform, mint a ARM"
Én az STM (ARM) procikat is jól tudtam/tudom használni Arduinoként. A spéci, hardverközeli libek persze nem mennek, de a hardverközeli részt megoldottam a regiszterek közvetlen írásával (pl PWM). Annak szerencsére a regiszterekről egészen jó leírása van, ami az ESP32-ről egyelőre még nem mondható el. Viszont amit az emberfia nem tud egyszerűen megoldani, akkor ott van a freeRTOS rengeteg függvénye. Mint korábban írtam, az ESP32 arduinoja a freeRTOSra van ráültetve. -
Janos250
őstag
válasz
Teasüti #6643 üzenetére
Azért a kompatibilitás csak a C++ -ra érvényes, a hardverközeliekre természetesen nem!
pl. Serial (hardver) 3 db. van rajta, de alapból a puffert az Arduino 256-ra állítja, én egyből átírtam 2048-ra, mert néha az ESP8266-on megtelt, így itt már kapásból magasabbra raktam. UNO-n meg a kis sebesség miatt nem is tudnám a programomat használni.
A sebességekre egy összehasonlítás. Az STM32F7 sorozat persze gyorsabb, de az méregdrága. Persze az ESP32 kettő magját kihasználva, azért ezen lehet gyorsítani.
https://hilo90mhz.com/arduino-esp32-esp8266-101-speed-test-comparison-chart/ -
Janos250
őstag
válasz
Teasüti #6639 üzenetére
"Milyen IDE-ben dolgozol vele?"
Ugyanabban az Arduino IDE-ben, mint a többi lappal.
Minden ugyanúgy megy, mintha mondjuk UNO lenne, csak nem UNO-t, hanem a NodeMCU-32S-et választom ki.
"Gondolok itt arra, hogy ha vmit elkészítenek Arduino-ra, akkor találok alternatívát ESP-re?"
EZ IS ARDUINO!
Ha csak C++-ban írt program, akkor egy akár UNO-ra írt program simán megy. Ha spéci, az Atmel proci sajátosságait kihasználó részek vannak benne, akkor az persze változtatás nélkül nem megy. Viszont egyre több minden készen van.
"Pl ws2812 lib"
Ez pl. sokkal egyszerűbben megy, mert az ESP32-ben van RMT = Remote Peripheral, (értsd infra távirányító) kezelő (szimuláló) hardver, így ezt hardver szinten megoldja. Nekem is az elsők között jutott eszembe a WS2812. Ez pl. rendesen működik, kipróbáltam én is:
https://github.com/MartyMacGyver/ESP32-Digital-RGB-LED-Drivers
Mivel hardver szinten intézi, nem is kell variálni a magok között.
Egyébként alapból a rendszer dolgai a 0-ás magon mennek, a useré pedig az 1-esen, ha nem változtatunk.
Ha éles a realtime dolog, akkor a realtime mehet az 1-esre, a ráérősebb pedig alacsony prioritással a 0-sra, a rendszer dolgai mellé. Akkor nem kell se interrupt letiltás, se egyéb, mert az 1-esen csak a szigorúan realtime dolog megy. -
-
Janos250
őstag
ESP32 dicsérete:
Közel egy év után újra alaposabban használni kezdtem az ESP32-t.
Úgy látszik, nagyon sokat fejlődött a rendszer. Az egy évvel ezelőttivel ellentétben semmi érthetetlen fordítási hiba nem volt, mindent megtalált a könyvtárakban.
Teljesen fel vagyok dobva tőle. 1700 Ft-ért valódi 2 magos, ténylegesen multitasking rendszer, félmega RAM-mal, közel ugyanannyi FLASH-el a processzorban, "hozzácsomagolva"
az esp-wroom-32 tokozásban 4M flash, amit háttértárként a szokásos file műveletekkel tudok használni. Utána feltöltök egy másik programot, ami az előző által feltöltött fájlokat használja.
Ténylegesen több taskot (C++ függvényeket) tudok egymással párhuzamosan indítani/futtatni/leállítani/újraindítani. A delay nem várakozik, átadja a vezérlést a másik tasknak.
A taskoknak prioritást adhatok, megadhatom, hogy melyik magon melyik fusson, de ha nem adom meg, a rendszer automatikusan elhelyezi valamelyikre.
Pl. az egyik task olvassa a szenzorokat, amiben jócskán vannak várakozások az időzítés miatt, de alkalmazhatom a delay()-t, nem kell tótágast állni az időzítéshez, mert a delay alatt a többi task fut.
Egy másik task feldolgozza az eredményeket, a harmadik küldi WiFi-n internetre, az ország másik szegletében lévő telnet szerverre (szintén ESP), ami továbbítja az ország harmadik felében lévő bejelentkezett kliensekre, (mondanom se kell, hogy azok is ESP-k) stb.
Az Arduinot a freeRTOS-ra ültették rá, ezért a freeRTOS gyakorlatilag összes dolgát is közvetlenül használhatom.
Sok GPIO láb, sok - hardverrel segített - periféria kezelés, stb.
Letöltöttem próbára netről pár UNO-ra, MEGA-ra írt programot, simán futottak rajta, elképesztő sebességgel. (persze a lábak sorszámát néha át kellett írni)
Végezetül, mindenkinek csak ajánlani tudom!!!
http://www.ebay.com/itm/162618521044?ssPageName=STRK:MESINDXX:IT&_trksid=p3984.m1436.l2649 -
Janos250
őstag
válasz
gyapo11 #6599 üzenetére
Aki arduino cuccokat akar vásárolni, az most tegye, mert ma estig élnek az alacsony árak:
1121 Ft: SONOFF® DIY Wi-Fi Wireless Switch For Smart Home With ABS Shell Socket Remote Control Switch Module
3500 Ft: Geekcreit® UNO R3 Basic Starter Learning Kit No Battery Version For Arduino
1958 Ft: Geekcreit® 37 In 1 Sensor Module Board Set Kit For Arduino Plastic Bag Package
1069 Ft: ESP32 Development Board
860 Ft: NodeMcu Lua ESP8266 ESP-12E
-
vargalex
félisten
válasz
peter1998 #6549 üzenetére
Ha nem a microUSB-ről programozod, hanem úgy, mint egy normál ESP8266-ot, akkor nem elég a VCC, GND, TX és RX lábak bekötése.
A CH_PD-t a VCC-re kell kötnöd (ez gondolom megvan a NodeMCU-n), illetve a program feltöltéshez a GPIO0-át a GND-re.A kimenet szerintem csak üres flash-t jelent.
-
peter1998
tag
Szevasztok!
Van egy ESP8266 nodemcu fejlesztői panelem.[link]Ha a microusb kábelen csatlakoztatom a gépre akkor nem ismeri fel. Egy USB-UART átalakítót csatlakoztatok hozzá, erről táplálom meg. A rx és a tx pinek is csatlakoztatva vannak. Így az arduino IDE-ben megnyitva a soros portját, a sebességet 115200 baudra állítom akkor folyamatosan egy hiba üzenetet kapok.ets Jan 8 2013,rst cause:4, boot mode:(3,7)
wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ldprogramot nem tudok feltölteni az eszközre. valak beleszaladt már egy ilyen hibába ?
-
válasz
Victoryus #6480 üzenetére
Akkor át kéne gondolni, hogy (ha már úgyis nulláról indulsz) ne uno-t, hanem kisebb méretű lapot használj (pl arduino pro micro) vagy rögtön alkalmasabb platformot, mondjuk esp alapú wemos d1 mini, amiben eleve van wifi, kisebb méretű, csak másfajta shield-ek kellenek hozzá. Én az utóbbit választanám.
-
vargalex
félisten
A két kérésed is GET kérés. Ezért értetlenkedem. Attól, hogy GET-nek hívják, az még adatküldésre alkalmas query string-el.
Az eredeti példánál maradva az egyszerűsített verzió:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#define DEFAULT_STATE LOW
// Replace with your network credentials
const char* ssid = "Your_SSID";
const char* password = "your_password";
// GPIO for controlling the relay
uint8_t relay_pin = 12;
ESP8266WebServer server(80);
void setup(void){
//Set default state
digitalWrite(relay_pin, DEFAULT_STATE);
//Turn on serial output
delay(1000);
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// logging to serial output
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// web server setup
server.on("/on", []() {
digitalWrite(relay_pin, HIGH);
Serial.println("Relay turned on");
server.send(200, "text/plain", "Relay turned on");
});
server.on("/off", []() {
digitalWrite(relay_pin, LOW);
Serial.println("Relay turned off");
server.send(200, "text/plain", "Relay turned off");
});
server.on("/state", []() {
String relay_state = (digitalRead(relay_pin)) ? "true" : "false";
server.send(200, "text/plain", relay_state);
});
server.begin();
Serial.println("HTTP server started");
}
void loop(void){
server.handleClient();
}Ha jól láttam, a sonoff-on a 12-es GPIO-ra van kötve a relé. A relé kapcsolgatása mellett a led-et is kapcsolhatod a 13-as GPIO-n. A fenti példa a kapcsoláskor is ad vissza választ, mert szerintem egy web szervernek illik (legalább a HTTP 200-at visszaadni).
-
Janos250
őstag
Na, akkor egy kis részletezés, bár vargalex programja szerintem is jó.
"Html nem szükséges"
Ha nem akarsz html-t, akkor nagyon megbonyolítod az életed! A legegyszerűbb, ha a szerver html lapba ágyazva küldi neked az adatot, mert azt bármilyen eszközön, bármilyen böngésző meg tudja jeleníteni (pc, telefon, tablet, másik ESP-vel kiszedheted, ha úgy tartja úri kedved, stb.)
A GET és a POST tapasztalom szerint egyaránt kényelmesen használható. Továbbá a link is, GET-tel.
GET:
Ugye hátrányának szokták emlegetni, hogy titkosítatlanul megy a neten, tehát túl kíváncsi emberek láthatják. Nem hiszem, hogy összedől a világ, ha a CIA megtudja, hogy éppen be vagy ki van kapcsolva a Te Sonoffod, tehát ez szerintem indifferens.
Előnye, hogy ha az az óhajod, kézzel bepötyögve a böngésző címsorába pl. a "http://192.168.4.1/?relay=mi", akkor visszaírja az állapotot, valamint pötögéssel állíthatod, pl. "?relay=be"-re bekapcs, "?relay=ki"-re kikapcs.Ez persze, ha mindig kézzel kell beírogatni, az kissé snassz.
Megoldás:
1.: A Sonoffról simán a http://192.168.4.1 -el kérsz egy WEB lapot, amiben benne lesznek a megfelelő linkek valami emberi szöveggel, és ezekre kattintva megvan a megoldás.
2.: POST: Csinálsz gombokat, pl.:
<input type=\"button\" value=\"Be\" onclick=\"location='http://192.168.4.1/?relay=be';\" style=\"font-size:50px; height:300px; width:300px\">Persze csinálhatod szebbre, ahogy vargalex példájában van, jquery használatával, de akkor meg kell tanulnod a jquery használatát.
IP címeknek a defaultot írtam, bármire állíthatod. -
Bazs87
tag
Sziasztok!
Megjött a sonoff relém, ezt szeretném kicsit meghackelni a következőképp:
webserver és posttal kapcsolni, gettel pedig állapotot lekérdezni. Html nem szükséges.Nézegettem az esp webserver után google-ön, de nem találtam egyszerű megoldást.
(talán lehetne a webserveren 1 gomb, ill egy text, amit html vágással kiszedek, netán ha beírom a gomb által generált kódot kapcsolja, de ez nagyon ganaly megoldás sztem( talán nem is menne a linkes gombnyomás), igényesebb lenne a get post)
egy egyszerű minta rengeteget segítene nekem.
Köszi előre is nektek!
-
Janos250
őstag
Még egy kis adalék a magyar árusokhoz, hogy mennyire értenek hozzá. "Arduino Pro Mini Atmega328 5V 16M mudul mikroszámítógép ESP8266".
Szegény tapasztalatlan vásárló jól ráfázik, ha ESP8266-ot akar venni!
Arduino Pro Mini Atmega328 5V 16M mudul mikroszámítógép ESP8266 -
Janos250
őstag
válasz
Teasüti #6253 üzenetére
A spéci dolgok természetesen nem mennek más lapokon. A nem spécikből a lábak nevei nem egyeznek meg, azt meg kell nézni a pins_arduino.h fájlban az adott laphoz tartozó helyen a variants könyvtárban, hiszen a lapokon még ugyanannál a procinál is vannak jelentős különbségek. Pl. egyes ESP lapok a kevés valós lábszám miatt egyeseket kettőznek.
Mondjuk egy WS2812B ledsor meghajtása sem túl esélyes, hogy simán átvihető egyik lapról a másikra,
mert ott mélyen bele kell gázolni a proci lelkivilágába a microsecnél is pontosabb időzítési igény miatt. Igaz ugyan, hogy ez a user számára nem látszik, ő csak kész osztályt használ. Az Adafruit ugyan próbálta úgy megcsinálni a saját osztályát, hogy minél több lapon menjen, de azért az nem az igazi.
Mondjuk egy ESP8266WebServer osztályt sem célszerű megpróbálni futtatni más procikkal. Viszont pl. az ESP8266 Arduino rendszerbe illesztését is úgy csinálták meg, hogy az UNOn (is) használt dolgok meglegyenek, azonos legyen a nevük, és a paramétereik, és a WiFi shieldhez is passzoljon.
Pl. általános, hogy a pinmode paraméterének a 0. bitje jelzi, hogy input/output, stb. Így a usernek csak INPUT, vagy OUTPUT (stb.) előre definiált konstansokat kell beírni, procitól függetlenül, és a rendszer dolga, hogy az adott környezethez ezt értelmezze. -
Janos250
őstag
válasz
csubuka #6220 üzenetére
Az Arduino két dolog:
Elsődlegesen egy programozási szabályrendszer C++ -on belül, halom kész osztállyal, aminek minden Arduino lapra meg kell lenni.
Továbbá lapok, amik - akár - Arduino rendszerben is programozhatóak, mert ki vannak dolgozva rájuk az Arduino rendszerben szokásos dolgok. Pl., hogy pinmode-nak kell nevezni ami megadja, melyik pin mire lesz használva, előre példányosítva van egy serial nevű UART, stb.
Az eredeti olasz gyártó aki ezt kidolgozta, csinált pár lapot, elsődlegesen az UNO-t, majd megát. stb. Ezek ma is kapható, de drága lapok.
Látván ennek a rendszernek az előnyét, több gyártó is elkezdett olyan lapot gyártani, ami jól illeszkedik ebbe a rendszerbe. Nem csupán az eredeti Atmel proc. típusokkal, hanem másokkal is. Még az Intel is beszállt a buliba, de ő nemrégiben ki is szállt, látta, hogy számára ez a vonat már elment. Jó lapokat gyártanak pl. STM csipekkel, meg ESP WiFis csipekkel. Persze az eredeti Atmel csipes klónok is jók, csak azok a csipek már kissé öregecskék. Ezek mind passzolnak az Arduino vonalba. Így ki lehet használni azt az előnyt, hogy ha egy Arduino lapra írtál már programot, nem kell egy másik lapon ismét azt bogarászni, hogy mit hogyan is kell csinálni. Tehát hasonlóan járt ez a rendszer, mint a linux annak idején. -
válasz
csubuka #6226 üzenetére
Nem akarok nagy hülyeséget mondani, de az arduino a maga idejében kb. akkora újítás volt, mint az iphone a gombos telefonok közt. Most utánakerestem, 2005-ben léptek piacra, és ugye tudjuk, hogy 12 év a számítástechnikában mekkora idő. Azt pontosan nem találom, hogy mondjuk az uno-t mikor kezdték gyártani, de az esp-vel összehasonlítani olyan, mintha az első szériás Iphone-t mondjuk a Samsung S7-tel hasonlítanád össze.
-
Janos250
őstag
válasz
csubuka #6214 üzenetére
Verzió 1.:
veszünk mindenféle kiegészítőket az Arduinohoz.
Verzió 2.:
Eleve olyan lapot veszünk, amin sok minden rajta van, akkor olcsóbban és kényelmesebben megússzuk. Szenzorok persze akkor is kellenek.Én a netre csatlakozás során a WiFi híve vagyok, mert nincs kábeles csatlakozás, nem lehet tönkretenni semmit.
Ha megnézed neten, hogy mi mindent tud pl. ez a lap 2300 Ft-ért elcsodálkozol. Nem fake, nekem legalábbis beküldték, a napokban érkezett meg.
WIFI & Bluetooth WEMOS Lolin32 V1.0.0 Card Based ESP-32 ESP-WROOM-32 4 MB FlashWifi, BT, 240 MHz dual core, 520 KB SRAM, 448 KByte ROM, 4 MB Flash, Ultra-low noise analog amplifier, Hall sensor, 10x capacitive touch interfaces, 34x GPIO, 3 x UARTs, 3 x SPI, 2 x I2S, 12 x ADC input channels, 2 x DAC, 2 x I2C
PWM, SDIO.Vagy ez a korábbi konstrukció 1800-ért:
NodeMCU-32S ESP32S NodeMCU32S ESP32 WiFi Bluetooth Development Board Dual-CoreA DOIT ESP32 lapja is jó, most éppen azt használom.
Persze kisebb tudással, de az ESP8266 lapok is igen jók. Pl. Wemos ESP8266 d1, Wemos d1 ESP8266 R2, Wemons ESP8266 mini.
Meg ez se rossz:
NodeMcu Lua ESP8266 CH340G ESP-12E Wireless WIFI Internet Development BoardEzen meg 32 M van:
NodeMCU V3 Lua WIFI module integration of ESP8266 + extra memory 32M flash, USB-serial CH340GAz interneten szinte minden program az "UNO-ra van írva", de ez csak megszokás, hogy mindent azon (is) szokás kipróbálni internetre rakás előtt. Pont az a jó, hogy ami UNO-n megy, az a többin is.
Nagyon jók még az STM32 ARM lapok is.Én szoktam ajánlani ezt:
http://www.ebay.com/itm/USB-saleae-Logic-Analyzer-Device-Set-USB-Cable-24MHz-8CH-24MHz-MCU-ARM-FPGA/141694353386?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649
mert ez tényleg működik.meg ezt:
http://www.ebay.com/itm/MAX7219-LED-Dot-matrix-8-Digit-Digital-Display-Control-Module-for-Arduino/172472962960?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649
vagy ezt:
http://www.ebay.com/itm/8-Tasten-Ziffern-Digital-LED-8-Bit-TM1638-Display-Module-f%C3%BCr-AVR-Arduino/172471641665?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649Persze stabil, lehetőleg változttható táp is kell, és néhány sensor se árt.
Új hozzászólás Aktív témák
Hirdetés
- iPhone 13 128Gb fehér (starlight) első tulaj, patika állapot, akku 85%, új kijelzóvédő
- Ez már Kóros (Core 5)! Új Samsung Galaxy Book4 Intel Core 5 120U 16GB 512GB
- HP EliteBook 830 G7 i5-10210U 16GB 256GB 1 év garancia
- FÉLÁRON! Gyeon Q2 Mohs EVO kerámia védelem (50 ml)
- MacBook Pro 16 i7-9750H 32GB RAM 512GB SSD RX 5300M 1 év garancia
- HATALMAS AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
- Dell Precision 5810 Intel E5-1650 v3 128GB RAM 2x512GBHDD 1x512GB SSD Quadro K4200
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5600 / RX 6700XT 12GB / 16GB DDR4 / 500GB SSD
- Bomba ár! HP Elitebook 840 G1 - i5-4GEN I 8GB I 180GB SSD I 14" HD+ I Cam I W10 I Garancia!
- Dymo LabelWriter 400 hőpapíros címkenyomtató
Állásajánlatok
Cég: FOTC
Város: Budapest