- Mobil flották
- Milyen GPS-t vegyek?
- Samsung Galaxy A55 - új év, régi stratégia
- Milyen okostelefont vegyek?
- Redmi Watch 5 - formás, de egyszerű
- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- Második bétánál jár a One UI 8
- Megvan, milyen chipet használ a Pura 80 Ultra
- Garmin Instinct – küldetés teljesítve
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
-
Mobilarena
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
"Nem szeretném mindig újra megadni a kliensnek, hogy melyik IP-re csatlakozzon. Az lenen a jó, ha bekapcsolom akkor az ismert cím alapján a szervert egyből felismerje mindenféle plusz felhasználói beavatkozás nélkül."
Ha nem akarod valami miatt Vargalex által írtat alkalmazni:
Nem akarom ide ismét bemásolni, de ami linket korábban küldtem, abban:
31-33. sor
62-71. sor -
Tankblock
aktív tag
Hello,
Routeren a dhcp részén ha tudod a MAC címet (szintén kileshető a dhcp listáról) akkor 2 sec alatt lehet beállítani otthoni fix ipt. Ha a szolgáltatótól sueretnél az már más kérdés.
UART szerintem az operációs rendszer szeretné azt a UART chipet mindenáron 1 com portra rendelni. Eszközkezelőben nézd meg mi van akkor ha mind a kettő be van dugva. Az egyik tippem szerint ismeretlen eszköz lesz. Arra telepitsd a drivert megint és rendelj hozzá egy még nem használt com portot
-
Janos250
őstag
Ha tovább kíváncsiszkodsz, itt megnézheted:
[telnet szerver minta]
Ha ennél is tovább, akkor privátban küldök egy IP címet és port számokat. Valami telnet programmal (pl. putty) belépsz duplán, s amit az egyik ablakban begépelsz, a másikban visszajön. A web szerveren meg plusz infókat látsz. -
Tankblock
aktív tag
[link] full documentation.
Youtubon is van jónéhány magyarázó videó.
Dióhéjban:
Van egy szerver amit brokernek hívnak és ide iratkozik fel mindenki. A feliratkozott csatornáról kapod az összes információt (subscribe). Küldeni is lehet (publish) amit a feliratkozók megkapnak.TCP/IP felett is megy, de láttam már Websocket felett is. A lényeges része h a küldő meghatározhatja a Qos (Quality of Service) szintet:
At most once (0)
At least once (1)
Exactly once (2).Azaz hányszor kaphatja meg a feliratkozó ugyanazt az üzenetet. Erről itt: [link]
A uControllernek nem kell mindig online lennie, de amikor az megkaphatja azokat az utasításokat amik szükségesek a további működéshez. Pl infót h van új Firmware lehet letölteni ha van elegendő energia hozzá.
-
Janos250
őstag
MQTT szerver része - tudtommal - nincs megfelelően kidolgozva ESP-re, csak linux alá, pl. Pi-re.
Küldés:
Én a következőt csinálom:
Van egy ESP32 szerver, amire neten (akár helyi WiFi-ről, akár az ország másik feléből) lehet küldeni adatokat, és minden bejelentkezett kliensnek továbbküldi, azok meg értelmezik, hogy kell-e ez nekik. Nem azt mondom, hogy ez Neked jó, ez csak egy példa, amit én használok. A bejelentkezettek küldhetnek is, és elküldésre kerül a bárki által megosztott adat (Pl. másik ESP32-ről, windows alól putty-al, stb) -
vargalex
félisten
Vannak, akik rendelkeznek ilyen műszerrel, ők mérték. Youtube-on is lehet róla videót találni. Nekem sincs, így én elhiszem. És természetesen a lényeg, hogy deepSleep hívás után ne húzd semmivel LOW-ra az RST lábat. Majd a timer lejártakor a GPIO16 LOW-ra állításával reset-eli a boardot.
Tuti működik, hiszen a percenként hőmérsékletet mérő cucc 1 Li-Ion cellával (notebookból bontott) elmegy 90+ napot.
-
Teasüti
nagyúr
De, ugyanaz a kiosztás. Csak nyilván olyan panelt nem használhatsz külső modulhoz, amin már rajta van egy.
Az UART busz hülyét kap, ha két modult kötsz rá.(#8934) Janos250
A linkelt programozón nincs rajta az a két tranyó, ami kell az invertált logikához. Így az auto letöltés bukta.
Valamint ránézésre a 3,3 voltot valszeg feszültségosztóval állítja elő egyéb hijján, ami meg hááát...
Azok a 0603-as ellenállások nem úgy néznek ki, amire szívesen rákötnék akár csak 100 mA-t.
Az 1/10W-os korlátjukba legfeljebb 68 mA fér bele 1,7V-os drop-nál, ezzel meg nem biztos, hogy meg lehet hajtani egy ESP32-t. (Nem jártam utána.)
Szóval az UART kommunikáción kívül konkrétan semmire nem jó.
A devkit panelje meg semmivel nem kerül többe, vagy talán még olcsóbb is mint egy tisztességes FTDI programozó. És szerintem bekötni is ugyanannyi, mint egy FTDI programozót: usb az egyik végén, dupoint a másik végén. -
Teasüti
nagyúr
Nálam nem gond, egy egyszerű áramtalanítás megteszi reset-nek.
A devkit panellel meg a NYÁK-ra ültetett modult gondoltam programozni.
Nem kell a devkit-re beültetni semmit, csak a megfelelő tüskéit rákötni a NYÁK-on lévő modulra és voilá: éppen úgy programozod, mintha devkit-re lenne beültetve. Talán még eddig ez a legideálisabb megoldás - automatikus letöltés és nagy sebesség -, ha nem is a legpraktikusabb. -
Teasüti
nagyúr
Nem tudom ez a programozó mennyivel jobb mint egy FTDI
Ha megfigyeled az ESP32 programozót, akkor azon rajta van az auto letöltéshez szükséges két tranyó is, ami lehúzza az EN és IO0 lábakat. Gyakorlatilag a Devkit áramköre egy az egyben CH340g-vel. Így mint írtam volt megspórolható még a két gomb is a NYÁK-ról.
Ezzel konkrétan nem kell semmi kiegészítő a modul mellé az EN felhúzó ellenállásán kívül. Kivezeted 6 tüskére a Vcc, GND, RX, TX, EN, OI0 lábakat, rá erre a programozóra és uccu neki!
Mondjuk a CP2102-es programozó szimpatikusabb lenne, ilyen van a devkit-en is, de az mellé kell egy auto-program áramkör még pluszban vagy a NYÁK-ra, vagy vhova (vagy hát különben nyomogatod a gombokat).
Talán az volna a legideálisabb, ha gyorsan összeraknék magamnak egy ilyen programozót a fenti mintájára CP2102-vel.szerk: hmm ami azt illeti nem is kell saját, találtam hozzá "eredeti" devkit programozót!
(#8925) tvamos
Nem lehet, hogy a fura program nyelv miatt?
Állítólag nem rég jött hozzá ki egy C fordító.
8 független mag azért elgondolkodtató.
De tényleg nincs elterjedve egyáltalán. Teljesen véletlenül találtam rá. -
Teasüti
nagyúr
100u lesz az inkább, 0,1u-ból a modulon belül is van egy maréknyi.
Én ezen a programozón gondolkozom még, ehhez elég csak kivezetni tüskére azt a 6 lábat, nem kell se gomb, se semmi. Egyedül az EN-re a felhúzó és egy bypass kondi az üzemszerű működéshez.
Mondjuk sebességben csak 115200-at tud, ami elég karcsú: a devkit-en lévő chip 8x ekkora sebességet biztosít.
Ha generic FTDI csatolót használok, ahhoz meg kellenek a gombok is. Bár lehet ez a programozó meg jó lenne más 3,3V-os chipekhez is, mint pl a 8266.A második részében azért elég vicces miket bénázik. Nem egy idegbeteg állat. Én már kivágtam volna az ablakon.
Erre lesz jó a forró levegős forrasztás, ez az egész megvan vele 2 perc alatt sokkal szebben.
Én már próbáltam pákával alulról beforrasztani hűtőpadot, nekem nem működött a dolog. Az a fránya ón sehogy se akart felszívódni a másik oldalra. Mondjuk nálam 0,7 mm-es via-k voltak, nem tudom amúgy mekkora átmérőnél életképes a dolog. Én mondjuk tuti ezzel kezdtem volna a többi láb előtt, ha sikerül akkor erősen megtartja a chip-et, ha meg nem sikerül akkor könnyen le lehet szedni. A kontinuitás vizsgálat nem elég, ahhoz néha még forrasztani sem kell. -
Teasüti
nagyúr
Elültetted a bogarat a fülembe:
Azt nézem, hogy a wroom32-höz tényleg nem kell semmi külső hardver a működéshez. A gombok is csak a programfeltöltéshez max.
A devkit-en lévő rakás kondi és ellenállás is mind a táphoz van és az usb-ttl chip-hez.
Hmmm, készítek egy barebone nyáktervet is, úgy is tervben van egy levegős forrasztóállomás, azzal szépen be lehet ültetni mindenféle IC-t.
Mondjuk a modul alján lévő hűtőpadot nem tudom hogy lehetne reflow kemence nélkül, te azt hogy fogod megoldani? Lehet egy bazi nagy via-t kéne odarakni és "felforrasztani" a lyukat. -
Teasüti
nagyúr
Most minden funkciót beletenné legszívesebben, de annak meg nem sok értelme van
Már hogyne lenne értelme?! Nálam ez úgy nézne ki, hogy ma még kínai mutatós óra kicsi képernyővel, holnap már smart mirror digitális órával a felső sarokban.
Így vagyok a saját projektemmel is. Amit lefényképeztem nyákot már megterveztem egy jó ideje, de a múlt héten láttam mit lehetne még belepaszírozni és azóta 3x újraterveztem már. GPS tracker se volt betervezve eredetileg, de aztán megláttam mennyibe kerülnek a kész termékek, aztán megnéztem mennyibe lenne csak a modul. Ekkor már nem volt visszaút. -
Teasüti
nagyúr
Na várj csak, ez nem is vezérelt mechanika! Legalábbis semmi jelét nem látom, hogy bármihez kapcsolódna egy elemen kívül.
Azt hittem motoros mutatókat tervezel, amit természetesen az mcu vezérelne.
Akkor ez egy időjárás állomás lesz, kínai analóg órába építve?Ami a hálózatot illeti, kifelé egyszerűbb a helyzet, mert a router ezt megoldja alapból.
Külső kérés a belső hálózatra nem működik publikus IP cím nélkül.
De nem látom semmi okát mi értelme volna közvetlenül az órára kapcsolódni, ha egyszer amúgy is az már tölti fel az adatokat vhova. Szóval ez a része szvsz tárgytalan. Én tuti szerverre küldeném ki, ahhoz nincs szükség közvetlen hálózati kapcsolatra az óra és a felhasználó között. -
Teasüti
nagyúr
LOL, kicsi a világ.
A hajlik résznél kicsit ráncoltam a homlokom. Mekkora nagyságrendekről beszélünk? Század, tized milliméter? Van ennek jelentősége? Tudnál mutatni ilyen automotive előírásokat? Én csak AS szabvány szerint készítem a dolgokat, de ha volna ilyen támpontom, az biztos javítana rajta.Amúgy ahogy nézem van egy rakat ilyen mini barebone ESP. Még válogatni is tudsz.
Úgy tűnik mindnek a 8266 az alapja.
Hogy oldod meg a mutatók működését? Jó nyilván léptető motorral, de honnan tudja majd hogy áll a mutató? Mi lesz a nullpont? -
Teasüti
nagyúr
Az egy accelero + gyro szenzor. Egy gyorsulásérzékellő önmagában tényleg szar erre a felhasználásra. Eleinte a féklámpát szerettem volna működtetni vele, de megtapasztalva mennyire szarul működik más termékekben ez a koncepció éppen az általad felsorolt problémák miatt, így azt inkább a sebességszenzorból okoskodom ki. Ebben az accelero csak segéd szenzor lesz, a kettő adattal együtt már lehet érzékelni hiba nélkül az intenzív gyorsítást és lassítást. (Többek közt ezzel válik majd interaktívvá a ledszalagos világítás is.) Önmagában egyik sem ideális - előbbi a megcsúszó kerék miatt adhat fals adatot, utóbbi meg a zaj miatt.
Amúgy a nyers G erőt csak egy tengelyen olvasom, a rázkódás meg általában nem a motor hosszanti tengelyén keletkezik. Persze hatásosan lehet szűrni is a jelet.
Amúgy menet közben inkább a DMP-t fogom használni, a gyro-t meg nem zavarja a rázkódás a pontos szögelfordulásoknál. Ez wheeli és stoppie érzékeléshez, valamint dőlésszög monitorozáshoz lesz használva.
Álló helyzetben meg nincs rázkódás, ekkor a nyers szenzor adatok tökéletesek védelmi funkciókra, DIY riasztóként. Ezt megtámogatva a GPS+GSM modullal telefonra kapom majd az értesítést, ha vmi történik. Ekkor ez a szenzor megint csak fő szerepet fog játszani, hogy meg lehessen állapítani viszik-e a gépet vagy csak meglökte vki. A beavatkozás is ez alapján történik majd.Az meg hogy a nyák rezonálni fog... Azért egy tüskesor elég stabilan tud tartani. Az alaplap meg le lesz csavarozva. Ennek a merevsége meg nem is kérdéses. Főleg, hogy relatív kicsi méret és 1,6 mm vastag üvegszálas lap.
De ha nagyon megerőltetem magam, akkor olyan burkolatot nyomtatok neki, hogy a szenzor a fedlaphoz lesz hozzácsavarozva, ha muszáj.Az órához kapcsolódóan:
Gondolom NTP szerverről veszed majd a pontos időt. Ehhez nem volna célszerűbb egy ESP-01? -
Teasüti
nagyúr
Persze, simán. Egyszerűbb beültetni egy tüskesort, mint kézzel beforrasztani azokat az oldallábakat. Na meg így megvan minden alkatrész, ami kell a működéshez. Nem kell baszakodni usb porttal, meg a QFN tokozású USB-Serial konverterrel. (Ezt reflow nélkül konkrétan fel se lehet rakni. Talán esetleg gázzal?) Meg ott van az a rakás kondi és ellenállás, ledek, reset gomb, LDO, FET-ek, stb. Mit nyerek vele? Sok szopást. Azon kívül max egy letisztultabb arculatot. Ugyanannyi helyet foglal a PCB-n a hozzá járó alkatrészek miatt, ha meg shield formátumban használom, akkor tudok pakolni egyéb dolgokat a tüskesorok közé is.
Majd ha lesz reflow kemencém, akkor elgondolkodok rajta. De addig hobbi szinten meg szerintem teljesen felesleges miniatürizálni. Ez már ipari kategória, amihez ipari eszközök kellenek.SSOP-24 chip-et se élveztem beforrasztani, abból is nagyobbat vettem volna ha van.
-
Janos250
őstag
Nem kell megijedni az IDF, freeRTOS függvények használatától arduino rendszerben, mert az is ezek felett dolgozik, általában használhatók a függvényei. (Általában, mert pl. a vTaskList() nem)
Pl.:
"The I2S peripheral supports DMA meaning it can stream sample data without requiring each sample to be read or written by the CPU."
https://espressif-docs.readthedocs-hosted.com/projects/esp-idf/en/latest/api-reference/peripherals/i2s.html -
Tankblock
aktív tag
Hello
Tárolva hogy mekkora MHz működjön azt a sdkconfig-ban van.
MSYS32 ben / Linux alatt ha betallózod akkor
make menuconfig
paranccsal tudod editálni relatíve egyszerűen.Nem javaslom kezdőként hogy ehhez hozzányúljon bárki is, főleg ha 3rd party Arduino libeket futattok amik függnek az órajeltől.
DMA más kérdés Technikal reference és a példaprogramok mutatják az utat. Én az ESP-IDF drivereit használom mert ahhoz van dokumentáció, és működik a DMA is --> RTM jó példa.
-
Janos250
őstag
Én a ccountot olvastam. Mivel az 32 bites, ezért kb 17 secenként átfordul, ezért kell még egy szó.
Én nem használtam interruptot, mert párszáz nanos időzítések kellettek, addig nem érte meg másra terelni a CPU-t. Ezért egyszerűen egy ciklusban olvastam, mikor éri el a szükséges értéket.
http://arduinouser.hu/esp32/ccount/ccount.txt -
Janos250
őstag
" a 2 mag egyben 240 MHz-e, tehát külön 120-120 MHz-en fog menni?"
Mindkettő külün-külön 240-en jár. Ez biztos, használtam.
"órajel pontosságról nincs információd?"
Sajnos nincs.
"Jó lenne ha fejlesztenék a kevésbé használt részeket is ESP32-nél."
Fejlesztegetik azt,
https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
A legutóbbi májusi. Ez az ESP32-re a biblia.
RTC: 0x3FF4800C, 0x3FF48010 ? 634. oldaltól
A DMA-ról is van valami, a 115. oldaltól.
Ne feledd, hogy az AHB bus csak 80 Mhz-es! Mivel az összes periféria bármely pinhez kapcsolható, ezért egy - számomra - szokatlan megoldást használ, de ha beleéli magát az ember az ESP32 gondolkodásmódjába, elég jól használható.
Időzítésre én az órajel ciklusok számlálóját használtam, az a 240 Mhz miatt nagy felbontású. -
Janos250
őstag
"ESP32S az melyikhez tartozik,"
Egyikhez se! 240-en megy. Az ESP32S az ESP32WROOM hibrid leánykori neve, ami tartalmazza magát a procit, + memóriát, és pár egyéb alkatrészt.
https://c.76.my/Malaysia/ai-thinker-esp32-esp-32s-wifi-wlan-bluetooth-module-varsembedded-1703-21-varsembedded@9.jpg
https://pbs.twimg.com/media/Cuf9fLzVIAEdzo_.jpg"Ha nem RTOS-t használok"
Tudtommal bárhogy is használod - extrém alacsony szintet kivéve - mindenképpen RTOS felett dolgozol, legfeljebb nem látod, de használható a teljes apparátusa.
Ha Arduino alatt használod, akkor a WiFi a 0-n megy, a saját programjaid az 1-en, de megszabhatod, mi hol menjen. Hogy a loop hol menjen, azt a main.cpp-ben állíthatod.
"DMA-val nem nagyon találtam mintákat sajnos, kíváncsiságból pedig jó lenne." Én se, pedig én is kíváncsi ember vagyok :-)
"Ezek közül jelenleg csak az órajel a kérdéses, illetve az, hogy azt honnan veszi"
Nem tudom honnan veszi, de 240Mhz. Egyik módszerrel LED meghajtásnál én ebből számoltam az időzítést, és szkóp szerint is jó lett.
"nehézkesebb egy STM32-höz képest." Így igaz! :-(
Az RTC, azt hiszem tud használni külső 32kHz-es kristályt, de az KÜLÖN PROCESSZOR,SAJÁT UTASÍTÁS KÉSZLETTEL, SAJÁT MEMÓRIÁVAL! Azt assembly szinten programozni szintén macerás.
Egyébként az STM32-nél is muszáj megnézni a manuálban a regisztereket, ha érteni akarod, hogy mit csinálsz.
A hardver manualja már az ESP32-nek is elég jó, bár messze nem teljes, sőt, hibát is találtam benne. -
Janos250
őstag
CPU órajele 240 Mhz. Van valahol egy fájl - úgy emlékszem - ahol lehetne csökkenteni, de nem emlékszem mi, nem próbáltam.
A prifériák órajele 80 Mhz.
"Ha nem rtos-ban programozok". Tudtommal nincs kidolgozva az RTOS nélküli lehetőség ESP32-re magasabb szinten.
"DMA-t támogatja az ESP"
Úgy tudom, hogy az SPI, UART, I2S ezt használja, de mintha külön engedélyezni kellene, nem használtam.
A DMA mindenképpen csak az iRAM-ot tudja használni, tehát amit használni akarsz, oda kell helyezni.Minden, ami benne van használható, csak egyik-másik elég macerás. A Technical Refrence már elég jó, abból lehet kibogarászni, de munkás dolog regiszter szinten állítgatni az egyes biteket.
Én az RMT használatát bogarásztam ki, és tanultam meg, de bizony idő kellett hozzá. -
Tankblock
aktív tag
Hello,
Nekem is digi van,
Dynamic DNS szervert használatával ez megoldható, routeren a belső szerver portját kell kigele forwardolni és voala.
Még egy jó tanács: Kifelé ne konvencionális 80 v 8080 portot használj. Autentikáció kötelező, ja van rá energia akkor secured kapcsolat.
Sajnálatosan ezek nélkül megpróbálhatják feltörni, kolléga banana pi je áldozatul esett egy ilyennek.
-
vargalex
félisten
-
Teasüti
nagyúr
Hát ha vki webszerver-t szeretne beállítani otthon, akkor szerintem eléggé alapvető, hogy tudja mik azok a számok amikről screenshot-ot mutattál.
De fogalmazhatnék úgy is, hogy ha nem értesz hozzá, akkor ne babráld a router és a Windows hálózati beállításait!
...mert egyszer csak azt fogjuk látni, hogy xbox89 utoljára bejelentkezve 3 nappal ezelőtt. -
Janos250
őstag
Ugyebár csatlakozol egy WiFi routerhez. Ennek van egy tartománya, amit használhatsz.
Gyakran a 192.168.1.1-től a 192.168.1.254-ig
Ez megvan a router gépkönyvében.uint8_t gatewayIPlocal[4] {192,168,1,1}
magának a roternek a címe, szintén a gépkönyvben van meg. Gyakran a 192.168.1.1uint8_t subnetIPlocal[4] {255,255,255,0}
: megadja a használható IP címeket. Gyakran ez. Ha igen, akkor a fenn leírt tartomány használható.
Ha a vége 128, akkor csak a 128 alatti címek használhatók. (nagyjából)uint8_t ServerIPlocal[4] {192,168,1,140}
: a hasunkra ütünk és kiválasztunk egy nem használt címet az engedélyezett tartományból. Lehet, hogy 128 alatti kell. -
Teasüti
nagyúr
Egyenes arányosság. Általános iskolás matematika.
A max kimenő feszültséget meg értelemszerűen a várható max bemenő feszültséghez kell igazítani.
Én GPIO bemenetekre amúgy mindig rakok Zener-t, úgy nem okoz problémát a túlfeszültség se (meg a negatív feszültség se). Persze nyilván a diódát a feszültségosztó áramához kell méretezni. Általában én mikroamperes tartományban szoktam mérni (R1+R2 = 10-100 kOhm) és 1/2 wattos furatszerelt diódákat pakolok mellé. Bombabiztos. Mondjuk elemes üzemnél lehet lejjebb is menni, pár száz kOhm-os osztó és smd dióda.Amúgy ha az akku kapocsfeszültségére méretezel és aztán ráadod a töltőfeszültséget, akkor lehet ott túlfeszültség.
-
choco01
addikt
Igen én is így értelmeztem ebből: solar UV light intensity de sehol sem találtam eddig UV index képletet..
Túl sokan nem csináltak ezzel projketet meg aki csinált is annál sem látom az átváltást hogy mi alapján cisnálta..
Egy másik fajta szenzornál így cisnálták:
String readSensor()
{
String UVIndex = "0";
int sensorValue = 0;
sensorValue = analogRead(0); //connect UV sensor to Analog 0
int voltage = (sensorValue * (5.0 / 1023.0))*1000; //Voltage in miliVolts
if(voltage<50)
{
UVIndex = "0";
}else if (voltage>50 && voltage<=227)
{
UVIndex = "0";
}else if (voltage>227 && voltage<=318)
{
UVIndex = "1";
}
else if (voltage>318 && voltage<=408)
{
UVIndex = "2";
}else if (voltage>408 && voltage<=503)
{
UVIndex = "3";
} -
choco01
addikt
Szerintem is elölről kezdem ezt a webserver dolgot mert minden más flottul megy már az UV kiolvasas is a VEML6070 szenzorbol meg ki is irja a kijelzore..
Nem tudod véletlen hogy ez amit kiir az UV szenzor érték miben értendő mert most az udvaron ilyen 180as értéket ír ki és ugye én 1-11 ig szeretném látni az UV indexet majd ha süt a nap.. Erre alkalmas lehet?
-
choco01
addikt
Na most letöltöttem egy másikat a ami direkt esp32 és i2c és abban már át van írva alapból így már megy!
Elvileg mennie kéne mellette a webservernek is?Itt elindul kiírja serialra az IP-t de csak tölti az oldalt nem jön be..meg így mellette a kijelző sem frissül mint ha megakadna a net függvény..
8266-on ment simán, itt valamiért nem akar pedig lefutni lefut ez a kód:
void net()
{
WiFi.enableSTA(true);
delay(2000);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
delay(300);
server.begin();
Serial.println ( "HTTP server started" );
WiFiClient client;
client.println( "<!DOCTYPE html>");
client.println( "<html>");
client.println( "<head><META HTTP-EQUIV=\"refresh\" CONTENT=\"15\"></head>");
client.println( "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />");
client.println( "<body>");
client.println("<br><br>");
client.println("<body><h1>Időjárás adatok:</h1>");
client.println("<table border=\"2\" width=\"456\" cellpadding=\"10\"><tbody><tr><td>");
client.print("</td><td colspan=\"2\"><h2>Hőmérséklet = ");
client.println(hom);
client.print("<h2>Páratartalom = ");
client.println(pt);
client.print("%</h2></td></tr><tr>");
client.print("<h2>Harmatpont = ");
client.println(hp);
client.print("°C</h2></td>");
client.print(" <h2>Légnyomás = ");
client.println(lny);
client.print("hPa</h2></td></tr><tr>");
client.println("</h3>");
client.print("<br>");
client.print("</body>");
client.print("</html>");
delay(100);
client.stop();
Serial.println("Lecsatlakoztatva.");
} -
choco01
addikt
+vargalex:
Most így néz ki a kód közös i2c-n 21 és 22-es lábon:
#include <Wire.h>
#include "Adafruit_BME280.h"
#include "SSD1306.h"
#define I2C_SDA 21
#define I2C_SCL 22
#define SEALEVELPRESSURE_HPA (1013.25)
#define BME280_ADD 0x76
Adafruit_BME280 bme(I2C_SDA, I2C_SCL);
SSD1306 display(0x3c, 21, 22);
double pt,lny,hp,hom;
/*double lny=1015.20;
double hp=-32.12;
double hom=-32.12;
double pt=62.07;*/
void idojaras(void);
void kijelzo(void);
void setup() {
Serial.begin(115200);
Serial.println("Program Start");
idojaras();
delay(100);
kijelzo();
delay(100);
}
void loop()
{
idojaras();
delay(1000);
kijelzo();
delay(3000);
}
void idojaras()
{
pt = bme.readHumidity();
hom = bme.readTemperature();
hp = hom - 0.36 * (100.0 - pt);
lny = bme.readPressure() / 100.0F ;
delay(1000);
}
void kijelzo()
{
display.init();
display.drawString(0, 0, "Hömérséklet:");
display.drawString(62, 0,String(hom) );
display.drawString(90, 0, " °C");
display.drawString(0, 10, "Páratartalom:");
display.drawString(65, 10, String(pt));
display.drawString(90, 10, " %");
display.drawString(0, 20, "Harmatpont:");
display.drawString(62, 20, String(hp));
display.drawString(90, 20, " °C");
display.drawString(0, 30, "Légnyomás:");
display.drawString(60, 30, String(lny));
display.drawString(98, 30, " hPa");
display.drawString(0, 40, "Légszenny.:");
display.drawString(60, 40, "nA");
display.drawString(85, 40, " %");
display.drawString(0, 50, "UV sugárzás:");
display.drawString(65, 50, "nA");
display.display();
} -
Janos250
őstag
"Resetet nem VCC-re kell húzni?" Nem. Földre.
"Másik hogy az USB-TTL konverter az UNO lapon szerintem 5V-os, te pedig 3v3-ra kötötted a 8266-ot"
Az UNO kapta a delejt a gépről, azaz 5V-ot. Az ESP 3.3V-ot.
Az ESP több információ szerint elviseli az 5V-os szintet a lábain, ha VCC 3.3V.Mellesleg jellemző a kis kínaira:
A konverter chipre HX van írva, a programjuk meg XA/HXA-ként azonosítja.
"Windows 8 is NOT supported in HXA/XA chip versions" -
Teasüti
nagyúr
Azért kell reset-ben tartani az Uno-t, mert ugyanazon az UART porton van ilyenkor az Atmel328 és az ESP8266. Soros buszon meg nyilván nem lóghat egyszerre három eszköz.
Mondjuk szerintem az is jó, ha kikapod az IC-t a helyéről, de akkor már egyszerűbb bedugni egy darab vezetéket a reset-re.(#8605) aryes
Prózai oka van: nincs usb-soros konverterem. És miért vegyek külön, amikor van belőle minden usb képes lapon? A Nano-kon ott a CH340g, az eredeti Uno-mon meg tököm tudja mi. De működik szuperül. -
Teasüti
nagyúr
Laptop töltők azok harmatgyengék és általában 19V-on működnek. Na meg mit kezdjek 60-70 wattokkal, amikor egy 5 méteres 300 ledes szalag 90W?
Ehhez még kellene külön egy-egy DC-DC konverter, külön az uC-hez hisz a legtöbb uC-n a fesz. stab. elmelegszik 10V fölött.5V-os dugasztápból csak kínai van, és hát a 12V-osból is csak utángyártottat látok Ebay-en.
Esetleg márkás kompakt 12V led tápokkal lehet próbálkozni kisebb szalagokhoz (5V-os nincs), de abból a pénzből már ott van az ATX.
És annál jobb nincs, csak kisebb max.Hardverapróról vettem ehhez a projekthez 3000-ért nem túl öreg FSP tápot, ami 20/30 ampereket tud leadni.
És van benne túlfesz., túláram, hő, meg még tudja tököm milyen védelem.
Szerinted? Nem az volt a legfőbb szempont, hogy kicsi legyen. Elfér. -
Teasüti
nagyúr
Hideg-meleg fehér. Kinek mi tetszik. Szüleim a hideg fehér mellett voksoltak, azt hiszem 7000 Kelvinre volt beállítva. Mondjuk így ennyi idő elteltével megismertem a ledes világításokat kicsit közelebbről és már tudom, h ha világításra kell, akkor legközelebb vmi magas CRI indexű szalagot nézek. Az olcsó RGB dekornak jó, de látni nem igazán lehet vele jól.
ATX táp: olcsó és jó. Sok helyet foglal és forrasztani kell, de ezerszer inkább ez mint vmi kínai dzsunka led táp.
Azért egy ATX tápoknál kevés jobb minőségű és megbízhatóbb táp van a piacon már ha létezik egyáltalán. Persze ugyanabban az árban.
Nem beszélve, hogy mindenféle védelemmel van ellátva.
Én előszeretettel használok ATX tápokat.FB videóra más is panaszkodott, de nem mindenki. Érdekes. Nem tudom miért olyan válogatós az az oldal.
Elvileg public link. -
Teasüti
nagyúr
Egy darab kanóc egy ADC porton, kanóc végén egy réz alátét.
Nagyon csúnya megoldás, de működik.
A sínhez nem csatlakozik, a kapacitásnak kicsinek kell maradnia, hogy érdemben meg tudja különböztetni a 8 bites mérés, hogy megfogtad-e vagy sem. Az alu sín kapacitása túl nagy, így nem okoz mérhető változást ha megfogod. 12 biten már talán mérhető lenne. -
Teasüti
nagyúr
Hogyne lenne, ne szórakozz!
Szüleim csalódottak lesznek ha ezt meghallják, hisz másfél éve egy darab vezetéket fogdosva kapcsolgatják a konyhapult világítást.
Én gombot szerettem volna, de apám rá volt gerjedve az érintő kapcsolóra. Épp csak nem volt kéznél tisztességes interfész.A 2 méter alu sínt meg a 8 bites ADC nem érzékelte.
-
Teasüti
nagyúr
Igaz, én raktam a vezeték végére egy darab rezet.
Ez másfél éve volt, azóta is vígan fut azon a Nano-n az ADCtouch library vagy mi a szösz.Touch sensor bármi lehet, aminek kellően kicsi a kapacitása, hogy mérhető kapacitásváltozást okozz a testeddel. Mondjuk 8 bites ADC-nél kicsi kapacitás kell, 12 bitesnél már talán meg lehet csinálni nagyobb dolgokat is, pl egy ledszalag aluminium sínjét monitorozni. 8 bitesnél ez hibahatáron belül volt.
Nekem még tetszik az elektromosan vezető festék is, azokkal is láttam sok érintő pados példát.(#8569) aryes
Abban a kapcsolásban a port le van húzva. Lehet érdemes volna kipróbálni egy kisebb lehúzóval, nem is értem miért kell oda ekkora ellenállás. (Elemes üzem?)
Viszont szkóppal meg kéne nézni a felfutó és lefutó éleket, én arra tippelnék hogy feszesebb lehúzó kellene. -
Tankblock
aktív tag
Hello,
Párhuzamosan természetesen ...
A kapcsolási rajzok jónak tűnnek, és csak pár plusz alkatrész nem a világ vége. Inkább mint kitalálni, hogy melyik interrupt hányszor és miért lett triggerelve, játszani 20v 50 [ms] a jó. Aztán másik gomb és kezdheted előről a kisérletezést....
A másik simán a gomb bekötve nálam min 8 interruptot okoz, inkább többet.
-
Attix70
aktív tag
Azért nem sorosan mert akkor csak amíg a kondi ki nem sül (vagy töltődik fel) addig lesz aktív, tehát ha hosszú ideig aktív kapcsoló kell akkor eleve alkalmatlan. A kondival sorba azért kell ellenállás, hogy amikor pl. megnyomod a gombot akkor gyakorlatilag zárlatot csinálsz a kondira. A mai kis smd kerámiakondik már olyan kis soros veszteségi ellenállással bírnak, hogy komoly áramok lépnek fel rövid ideig ami károsíthatja a kapcsolót akár. A felső ábrák is jók lennének ha a kondival lenne sorbakötve 100Ohm nagyságrendű ellenállás.
-
Nagyon szívesen!
Ebben a sorban:if ((millis() - lastDebounceTime) > 50) {
ha a millis() átfordul, és kisebb lesz, mint a lastDebounceTime, a legrosszabb, ami történik, hogy kb 50 naponta egyszer egy gombnyomást nem fog érzékelni. Ha jól tévedek.
Illetve most jöttem rá, hogy mivel a gomb úgyis egyszerre több interruptot vált ki, azt a kimaradt gombnyomást pont a pergés miatt nem fogod észrevenni. -
Tankblock
aktív tag
Hello,
Ha marad a hw gomb akkor 1uF kondenzátor megoldja a problémád. Ahogy lenyomod a gombot szépen töltődik a kondenzátor. Amint megvan a fesz szint szépen menni fog az interrupt.
Pont ezzel küzdök én is, IR könyvtárat írok c++ - ban eclipse alatt, és a teszteléshez kell pár gomb.
Még refaktorálnom is kell, meg a design fele kuka, csak a megértést segitette.
-
Próbáld meg ezt a kódot:
volatile unsigned long lastDebounceTime = 0;
void setup() {
pinMode(buttonPin, INPUT);
attachInterrupt(digitalPinToInterrupt(buttonPin), buttonInterrupt, FALLING);
....
Hőmérő inicializálás;
....
}
void loop() {
óra kiíratása;
....
Hőmérséklet kijelzőre küldése;
...
}
//gomb megszakítás függvény
void buttonInterrupt() {
if ((millis() - lastDebounceTime) > 50) {
clockHour++;
if(clockHour > 23)
{
clockHour = 0;
}
Serial.println(clockHour);
//delay(200);
}
lastDebounceTime = millis();
}Ha még ezzel is pereg a nyomógomb, az 50-et növeld addig, amíg megszűnik a probléma. Szerintem 200-ig simán lehet növelni, cserébe másodpercenként 5 gombnyomástól többet nem fog regisztrálni (mondjuk annál gyorsabban úgysem igen lehet gombot nyomogatni
).
-
-
_q
addikt
detachInterrupt(buttonPin);
Ezzel a függvénnyel kikapcsoltam az gomb megszakítást majd a ha lefut a loop bekapcsolom ismét. Így most nem prelleg viszont így lassan fut le, mivel a hőmérséklet lekérdezés 2 másodpercenként megy,így a megszakítás is 2 másodperc múlva kapcsol vissza. Lehet érdemes megszakítással kezelni a hőmérséklet lekérdezést és a loop-ba csak a kijelző frissítést tenni.
-
Tankblock
aktív tag
Hello
Sw watchdog is van sokféle, pl lehet monitorozni adott idő alatt hányszor futott le adott szál, illetve minden fontos szál lefutott-e. Esp-idf ben volt rá példa.
Másik amikor 2 magon futtatod ugyanazt a számolást és megnézed hogy az eredménye ugyanaz e.
Hw wachdog legegyszerűbb megvalósítása N555 ahogy Teasüti leírta, de vannak bonyolultabb megoldások is, pl időre kérdés válasz elvén egy másik uC nézi h pl adott szám komplemensét kapja e vissza...
Biztonságkritikus alkalmazásnál a tervezéskor is a biztonság az első. Monitorozásokat kell beépíteni és informálni a vezetőt ha valamelyik részkomponens nem megbízhatóan működik, és funkciót letiltani.
Szép szakma ez
-
Teasüti
nagyúr
SW watchdog amikor az ESP32 újraindul, mert szarul írtad meg a programot és az egyik mag túl nagy időszeletet kap a program számolására és nem adja vissza a vezérlést az oprendszernek.
Atmel328p-n is lehet készíteni egyfajta SW watchdog-ot - van rá kész könyvtár is. Én sikerrel debug-oltam vele a programjaimat, amik megakadtak mondjuk egy végtelen ciklusban vhol.HW watchdog meg az, amikor egy külső chip a proci működését figyeli és ha az kifagy, akkor reset-eli a rendszert.
ESP32-n úgy rémlik van SW és HW watchdog is. Így az én esetemben csak meghibásodásról beszélhetünk.A HW watchdog-ot én egy monostabil 555 chip-el oldottam meg, amit a kontroller pwm jele triggerel és fent tart egy relét, ami a bemenetek közt vált (külső vagy belső pwm).
-
Teasüti
nagyúr
Nagyon egyszerű. Túl sok a periféria.
A 16 bites expanderen is be van kötve 15 port a motor kezelőszerveinek beolvasásához, két ledes nyomógombhoz, meg egy dupla usb töltő vezérléséhez.
Ehhez hozzájön még I2C buszon egy numerikus led kijelző és egy UV/IR/Light szenzor. -
Teasüti
nagyúr
Neeem, ez az IC maga lesz kihelyezve az uC-től vagy egy-másfél méterre (két másik I2C eszköz társaságában).
Szimplán csak azon okból, mert kellenek a plusz portok.
Hogy az 5V-os busz hogy fogja bírni a távolságot - ami miatt nem aggódok egyáltalán -, azt majd szkóppal ellenőrzöm.
Egy 5 méteres 300 ledes szalagon esik a fesz 1V-ot kb ha jól emlékszem. És ott azért nem kicsi áramok mennek. Az I2C buszon meg uA-mA tartományban vagyunk, nem számítok feszültségesésre. Kalkulátor szerint 2 méteren 5V 10mA 0,02%-ot esik. Szerintem kár aggódni. A busz kapacitása lesz inkább érdekes.
18 AWG becsléseim szerint 30-40 pF lesz a kellő hosszúságon.
Mindkét végén lesznek felhúzók és szintillesztők, abban bízom majd azokkal szépen be lehet hangolni a jelet.
De ha nagyon sokat esne, akkor még mindig megemelhetem a busz feszültségét is akár 12V-ra is. A mosfet-ek 20V-ig bírják elvileg (ha nagyon perverz akarok lenni, akár ráakaszthatnám a jármű elektromos hálózatára közvetlenül is a felhúzókat.Szerintem).
-
tvamos
nagyúr
L3GD20, ami a 32F429IDISCOVERY kiten van. De nem használom. Kipróbáltam, tök jó. (És nem Arduino frameworkkel, hanem IAR EWB.) De ezzel nem vagy előrébb, mert 6.2mA. Amivel előrébb lennél, az mondjuk az LSM6DSL. Ez beéri 0.65mA-rel. Remélem, előbb-utóbb lesz lehetőségem kipróbálni!..
-
zka67
őstag
Szia, én mikrohullámú mozgásérzékelőt tennék fel, ehhez nem kell hozzányúlnod az ajtóhoz:
10.525 HB100 220V DC 12-24V 5.8GHz 24GHz Microwave Motion Detector Sensor Switch
Új hozzászólás Aktív témák
Hirdetés
- Mibe tegyem a megtakarításaimat?
- Macron betiltatná az EU-ban a közösségi médiát a 15 év alattiaknak
- Formula-1 humoros
- Viccrovat
- One otthoni szolgáltatások (TV, internet, telefon)
- gban: Ingyen kellene, de tegnapra
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- bitpork: MOD Júni 13 Augusztus 2- szombat jelen állás szerint.
- Ford topik
- Nintendo Switch 2
- További aktív témák...
- ÚJ PS5 Slim - FW 8.40 - Lemezolvasó - Lua Loader - Lua játék - Lapse
- új, bontatlan, iPhone 16E gyárilag kártya-független, apple világgaranciával
- Üzletből, garanciával, Macbook Pro Retina 16" 2019, Gray i9 64GB RAM 1TB SSD Radeon Pro 5500M
- Üzletből, garanciával, Macbook Pro Retina 16" 2019, Gray i9 64GB RAM 2TB SSD Radeon Pro 5600M 8GB
- MacBook Pro 14" M1 MAX - 32GB / 1TB (2021) - 1 év garancia
- Epson Workforce DS-530II Dokumentum szkenner
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Egyedi ékszerdobozka
- 2db Dell PowerEdge R740 2U Rack Szerver és 3db Netapp FAS2040 NAS
- Telefon felvásárlás!! Apple iPhone SE (2016), Apple iPhone SE2 (2020), Apple iPhone SE3 (2022)
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest