- Nem a Microsoft gyártaná a következő Xbox konzolokat?
- Bluetooth hangszórók
- Apple notebookok
- VR topik (Oculus Rift, stb.)
- Milyen egeret válasszak?
- Amlogic S905, S912 processzoros készülékek
- Visszatérne a PC-s kliensbizniszbe az NVIDIA
- Milyen billentyűzetet vegyek?
- iPad topik
- Kormányok / autós szimulátorok topicja
Hirdetés
-
Kooperatív akció-kalandjáték lesz a Sanctua
gp A premier kicsit még odébb van, jövő év közepén érkezik a PC-s verzió.
-
Oukitel WP35 - az 5G-s faék
ma Kedvező árú, 5G strapamobil bukkant fel szerkesztőségünkben.
-
Spyra: nagynyomású, akkus, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
-
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
-
_q
addikt
válasz Janos250 #9058 üzenetére
Köszi. A küldés monitorozást megcsináltam és ott minden rendben volt, valami a szerver oldalon van. Arra jutottam hogy a
while(client.available())
{
....
}okozza. Nem jól programoztam le a fogadott adat kiíratását. Így mikor küld a kliens, de a szerver nem tudja fogadni, akkor egy W bentmaradt és azt írja ki illetve üres sort, hogy nincs adat. Így már csak az maradt kérdés, vajon miért nem sikerült továbbítani a kliensnek az adatot. 10 db wifi hálózat érhető el , lehet bezavarnak egymásnak és teljesen normális az, hogy nem mindig sikerül a kliensnek wifi routeren kersztül a szervernek elküldeni az adatot?
[ Szerkesztve ]
-
_q
addikt
válasz Janos250 #9062 üzenetére
0-ás magra raktam a wifi kliens fogadás taskot 0-ás prioritással. Semmi más nem fut rajta, legalább is általam nem, max a háttérben amiről korábban írtál 6-7 task a rendszer által futhat esetleg. A kód elkészültével a végén csak 5-10 percenként akarom hogy hőmérséklet adatot küldjön a kliens (jelenleg 2-10 másodpercekkel teszteltem), de elkerülve, hogy pont akkor történjen más művelet, mikor pont jönne a klienstől adat, minden mást a core 1-re tettem. Az hogy leterhelném a cpu-t nem gondolnám, a fogadáson kívül 1-2 konverziót csinálok csak, de azért bemásolom ide is:
void wificlientTask( void * parameter)
{
unsigned long CLIENT_TIMEOUT = 0;
int idxBatLevel = 0;
int idxTemp = 0;
int i = 0;
while(1)
{
WiFiClient client = wifiServer.available();
if (client) {
CLIENT_TIMEOUT = millis();
while (client.available() == 0) { //itt jon a hiba, timeout-al valtozo idokozonkent
if((millis() - CLIENT_TIMEOUT) > 10000) {
Serial.println(">>> Client Timeout !");
client.stop();
break;
}
}
if (client.available()) { // if there's bytes to read from the client,
String clientData = client.readStringUntil('W');
clientData = clientData + 'W';
Serial.println(clientData);
client.stop();
idxTemp = clientData.indexOf('Y'); //get the index of Y separator (25.47Y)
idxBatLevel = clientData.indexOf('W'); //get the index of W separator (3.12W)
clientTemp = clientData.substring(0, idxTemp); //25.47
clientBatLevel = clientData.substring(idxTemp+1, idxBatLevel); //3.12
Serial.print("temp: "); Serial.println(clientTemp);
Serial.print("bat: "); Serial.println(clientBatLevel);
delay(10);
}
else{
Serial.print("temp: "); Serial.println("-");
Serial.print("bat: "); Serial.println("-");
Serial.println("");
}
}
delay(10);
}
}A javasoltak alapján átraktam a változó deklarálást az elejére, hogy csak 1x történjen meg, ne minden ciklusban, illetve a client.read-et lecseréltem, hát ha az okoz gondot, de nem. (Egyébként érdekes mert én 11 karaktert küldök, még is 12-re kellett a tömböt létrehozzam a client.read-né még. client.print küldésnél a végére betesz valamilyen jelző bitet, \r, \n vagy valamit?)
"A wifi vétel elvileg pufferelt, és a 0-ás magon fut. "
Ezt úgy érted, hogy mindegy hogy én a bemásolt task-ot core 0 vagy core 1-re teszem, a wifi fogadása mindenképpen a core 0-án, a háttérben történik? Tehát ha én egy client.read vagy client.readStringUntil meghívást csinálok, akkor már nem a klienstől fog olvasni, hanem egy már háttérben beolvasott bufferből szedi ki az adatot? Tegyük fel működik, hogy átteszem core 1-re a kiolvasást. Akkor a core 0-ra nem tehetek semmit? A core 1-en van ntp lekérdezés, hőmérséklet olvasás, kijelző és még a wifi kliens olvasás is ide kerülne, nem lesz ez sok a core 1-en? A 4 taskból a wifi lekérdezést ezért akartam core 0-ra tenni, hogy még is zökkenőmentesen menjen, mert a core 1 ami igaz nem időkritikus de már így is 3 taskot futtat.[ Szerkesztve ]
-
_q
addikt
válasz Janos250 #9064 üzenetére
Megpróbálom majd a delay-t magasabbra tenni. Nem AP módban hozom létre a szervert, hanem fix ip és router beállításokat használva (socket server kiegészítve fix IP-vel), így szerintem a linkelt függvényt nem tudom használni. Ha jól sejtem, akkor wifi socket szerver-kliens esetben a routeren tudom átállítani a csatornát, mivel jelen esetben az az AP.
"Nálam az egyik projekt egy erősen "zajos" wifi környezetben gyakran hibázik, de kisebb forgalmú helyeken hibátlan. "
A zajos környezet jelentheti azt, hogy kb. 9-10 elérhető wifi hálózat van körülöttem? Megnézem majd hogyan alakulnak a wifi csatornák, lehet az ESP pont egy sokak által használt csatornán kommunikál és ebből adódik időközönként a kommunikációs probléma.[ Szerkesztve ]
-
_q
addikt
válasz Janos250 #9095 üzenetére
Sajnálom, ha nem voltam követhető
Lényeg, hogy működik ESPnow + wifin keresztül routerre csatlakozás, onnan adat lekérés. A megoldás az volt, hogy nem elég a két ESP-t 1-es csatornára tenni, hanem még a routert is 1-es csatornára kellett állítani. Más kombinációval sajnos nem működött.
Jó a webserver-kliens is, ha nem kellene fix IP címmel dolgozni, ahol már UDP is szóba jön, legalább is NTP adat lekérésnél kell UDP is. Onnantól, hogy fix IP cím van és UDP függvényeknél is megjelenik az
IPAddress
osztály, onnantól nem működik sajnos az NTP. Legalább is nekem nem sikerült megoldani. -
AcCEsS
senior tag
válasz Janos250 #9123 üzenetére
Linuxos vagyok, simán a terminált, vagy az Arduino IDE soros monitorát használom. Terminálban a "screen /dev/ttyUSB0 115200" paranccsal sasolom meg a kiírásokat. A csatlakozás közvetlenül történik a számítógéphez egy jó minőségű USB kábellel. Csak az RST és a D0 van összekötve. Ilyen a nodeMCU.
Mellékelek egy képet egy 3 menetből álló folyamatról 115200-ra állítva a terminált.
1. Csatlakozik a Wifi-hez, 10mp deep sleep, majd ébredéskor krixkrax és fagyás. Az egyik (kék) led folyamatosan világít.
(Utána nyomtam egy reset-et (LED kialudt), elindult, és azt írja, hogy az ok "Deep-Sleep Wake". Ez érdekes...)
2. Itt nem sikerült csatlakoznia a Wifi-hez (direkt leárnyékoltam meg a jelerősség is szar) és 15mp próbálkozás után ESP.restart();
3. Ugyanaz mint az 1.
Ugyanez a helyzet "screen /dev/ttyUSB0 74880"-al is, csak minden olvashatatlan krixkrax. Próbáltam külső tápot és másik kábelt is használni, szerintem a végkimenet ugyanez lehetett, mert egyszer sem tudtam pingelni és pár mp múlva a kék LED folyamatosan világított.
[ Szerkesztve ]
AcCEsS (https://www.metalenciklopedia.hu)
-
nope
tag
válasz Janos250 #9137 üzenetére
Igen, csak nálam egy fiókban lesz az összes elektronika - gyakorlatilag egyetlen nyákon. Nem akartam még egy lehetséges gyenge láncszemet beépíteni a rendszerbe, szóval ha valamit be tudok kábelezni, akkor nem rádiózok.
A wifinek is lesz szerepe, egyrészt OTA frissítés (8266-on működik, ESP32-n még nem tudtam kipróbálni), NTP lekérdezés (DST megoldást is kell keresnem), majd később egy websocket is tervben van.
[ Szerkesztve ]
-
_q
addikt
válasz Janos250 #9139 üzenetére
Magasabb szintű WEB kezelés mit jelent?
(#9141) Janos250
Én is ezen az úton indultam el, viszont ha nem akarom a weblapot folyamatosan frissíteni az adatok lekérdezésére, akkor már egy fokkal nehezebb, hogy frissüljön egy grafikon vagy egy változó értéke, de persze járható út mintakódok alapján.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Janos250 #9144 üzenetére
Létezik ilyen?
Miért fűrészelnéd mikor elég elcsípni fogóval?! Még le se kell reszelni a végét, ha nem okoz gondot az éle.Amúgy breakable a szó, amit keresel.
Én csak kerek lyukast látok.[ Szerkesztve ]
-
Janos250
őstag
válasz Janos250 #9192 üzenetére
Ja, ha több mint egy millisec, akkor nem megy :-(
Az interrupt tiltással azért még próbálkoznék. Bár ekkora eltérést valószínűleg nem okozhat.
Vagy I2S? (csak elmélet, mert soha nem használtam)
Vagy valami egyéb hardver megoldás.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
nope
tag
-
quint
aktív tag
válasz Janos250 #9267 üzenetére
Tökéletes cucc, és kábé mindenhol lehet kapni.
-
_q
addikt
válasz Janos250 #9283 üzenetére
Lehet, hogy tényleg jó a wire könyvtár, mert az, hogy véletlenszerűen történik az összeakadása a programnak az fura. Ha rossz lenne, akkor nem szabadna 1000-2000 lekérdezésig jó lennie, majd ha rossz, akkor egy esp reset után ismét jól mér. Most biztos ami biztos alapon átraktam mindent core1-re és újrahúztam az egész esp könyvtárat.
[ Szerkesztve ]
-
Tankblock
aktív tag
válasz Janos250 #9283 üzenetére
Hmm,
most h van nálam gép is:
Datasheet:
RHCT Conversion Time(7)
8 bit resolution 2.50 ms
11 bit resolution 3.85 ms
14 bit resolution 6.50 msilletve
TEMPERATURE SENSOR
TEMPACC Accuracy(7) 5°C < TA< 60°C ±0.2 ±0.4 °C
TEMPREP Repeatability(7) 14 bit resolution ±0.1 °C
TEMPCT Conversion Time(7) 11 bit accuracy 3.65 ms
14 bit accuracy 6.35 mslássuk a könyvtárat:
double ClosedCube_HDC1080::readTemperature() {
uint16_t rawT = readData(HDC1080_TEMPERATURE);
return (rawT / pow(2, 16)) * 165.0 - 40.0;
}
uint16_t ClosedCube_HDC1080::readData(uint8_t pointer) {
Wire.beginTransmission(_address);
Wire.write(pointer);
Wire.endTransmission();
delay(9);
Wire.requestFrom(_address, (uint8_t)2);
byte msb = Wire.read();
byte lsb = Wire.read();
return msb << 8 | lsb;
}szóval ha itt minden ok --> cserélném a delayt:
delayMicroseconds(9000);
akkor még lehet akár HW issue is. A felhúzó ellenállások megvannak? Feszültség megvan? Milyen hosszú a vezeték? ...
Release the Beast....
-
Teasüti
nagyúr
válasz Janos250 #9283 üzenetére
Pedig nekem Uno-n is volt gondom a Wire könyvtárral, gyakorlatilag ugyanazt produkálta, mint itt ebben az esetben: egy idő után egyszerűen leállt a busz működése. Csak a reset segített rajta.
3rd party I2C könyvtárral zökkenőmentesen működött ugyanaz a kód.
Ez úgy két éve volt, azóta úgy vettem észre javítottak a Wire-n.
Egy ESP implementációnál meg ki tudja mit rontottak el és hol.Ezért kéne ránézni a buszra, amikor ezt produkálja.
Ha csak a nagy csend van akkor tudjuk, hogy kód hiba.[ Szerkesztve ]
-
_q
addikt
válasz Janos250 #9299 üzenetére
Köszi, sajnos ez se oldotta meg. Neten github és még pár oldalon elég sokan foglalkoznak a témával. Van aki vett 5 db ESP32 doit panelt, 3 működik boot gomb nélkül, 2-nél muszáj nyomni program letöltés közben a boot gombot. Sajnos megoldást nem találtam ami működne.
(#9290) xboy89
Eddig nem omlott még össze az i2c,úgy hogy Core 1-re pakoltam a összes (4 db) taskot, core 0-á nem futtatok semmit. Még tesztelem azért pár napig.
Amit tapasztaltam és várható volt, hogy a webserver-t nem mindig lehet elérni. Ez a következőből adódhat:
1) Fut a hőmérséklet kiolvasás ami 150 db elemű tömbbe pakolja az adatot, ha megtelik akkor 1-el mindig eltolja a tömb indexét és ezt for ciklusban oldottam meg. Ez lehet annyi idő, hogy ha pont akkor akarom megnyitni a weblapot, akkor nem tud még futni az a task.
2) A webserver-t String-es megoldással rakom össze. Ez azt jelenti, hogy 150 db elemét a tömbnek for ciklussal rakom bele a webserver kódba, ráadásul 2 ilyen for ciklus is van ami hőmérséklet és aksi mért értékeit pakolja a szerverhez. Itt a for ciklusban a 20 adat belepakolása után kap egy 15 ms delayt (különben watchdog problémázna), majd folytatja. Viszont a 15 ms alatt másik task kap futási időt, pl.: hőmérséklet olvasás/adat pakolós task, ami lehet 15 ms alatt nem végez, a webserver nem tudja folytatni a weblap összerakását -> nem tölt be a honlap.Ha jó időpontba nyitom meg a weblapot, akkor betölt. Erre van valakinek ötlete? Lehet többek között ezért is raspberry-t használnak ilyen esetekben? Jó lenne az esp32-vel megoldani.
-
válasz Janos250 #9311 üzenetére
Köszi! Ez hatalmas. Mondjuk a galván hiánya kevésbé zavaró, de maga az hogy minőségi nyák ennyiért, ez nagyon kész.
Tényleg érdekes technológia lehet, ha nem kell hozzá semmi (nem lehet, hogy a 3D nyomtatáshoz hasonlóan nyomtatják?)@Teasüti : Nekem nem is szoktak nagyobbak kelleni.
Mutogatni való hater díszpinty
-
RAiN91
őstag
válasz Janos250 #9366 üzenetére
Sajna nagyon kezdő vagyok, így sokat nem mond amit írtál. Előtte egy NodeMCU-t használtam, de GSM modul nélkül, egy telefon nyomógombjait nyomkodtam GPIO-n keresztül. Most a telefont váltanám le erre a GSM modul-ra.
Mit jelent, hogy "gyalog" küldöd a dolgokat? Csak annyit szeretnék, hogy ha egy adott feltétel igaz, akkor hívja az adott számot.
-
tvamos
nagyúr
válasz Janos250 #9372 üzenetére
Vajon ez is ugyanolyan, csak más a neve?
Nem tudom, mennyit számít, hogy a copy-copy-jának melyik copy-ját veszed. De ez csak magán vélemény, nincs mindből darabom, egy aoyue van, ami megy, meg egy weller. Nem vagyok nagy weller fan, de ez tényleg jó. Én nem szívesen veszek ilyesmit e-bay-en. (Nem, az aoyue nem e-bay, és nem kínai webshop.)
Ha megnézed a hozzászólásokat, ott valami vaterás megoldást javasol valaki."Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
tvamos
nagyúr
válasz Janos250 #9374 üzenetére
azt csinálja, amit én akarok, a weller meg amit ő akar
Gondolom magneses kattogos wellered van. A weller sem olyan mar, az egy nagyon regi eszkoz. Nem is ertem, miert hozzatok fel folyton, es hasonlitgatjatok azt a haboru elotti megoldast egy modern, allithato hofokszabalyozos pakahoz. Ez nem fair!
Amugy meg a weller holegfuvojarol beszeltem. Az nem olyan bumfordi, mint ezek a videon. Sokkal jobb. Ossze sem lehet hasonlitani, mennyivel ugyesebb.A "vaterás megoldások"
Oda is irtam, hogy en nem vaterazok, nincs is felhasznalom, nem vasarolok onnan. Amit a halozatba kell dugni, csak olyan boltbol veszem, ahol van jotallas, masnak is ezt javaslom."Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
Vladi
nagyúr
válasz Janos250 #9374 üzenetére
2. ha nem jóval drágább, akkor hasznos, mert nem 6 hét mire ideér. Mondjuk ebayen a cucc 600 forint, ő meg árulja 850-ért. Ezeket én inkább szeretem, mert hamar megvan a cucc. Ezt kereskedelemnek hívják, semmi kivetni való nincs benne...
Az én problémám sokszor az, hogy nem tudom melyik a jó márka. Annyi sok kínai szar van már, hogy nem tud az ember jót kifogni.
Ezt a többi szerszámra is értem. Pl: behajtót milyet vegyek? Black and decker, Bosh, Makita. Mind jó márka, de mind made in china!!!! Jó a boshba van magyarba gyártott.Más szerszámos cégek meg sokszor olyan néven árulnak, amit földi halandó még sose hallott: pl sok Reca-s szerszámunk van a cégbe, de annak az üzletkötője mindig jön és próbál valamit rám sózni. Bárki hallott már erről a márkáról? Na ez pl: osztrák. De nem olyan ott kötött ki a kínai hajó osztrák, hanem tényleg. Brutál drága, de tényleg nagygon jó szerszámaik vannak. Pl: egy induló satu, 120-as, forgó talppal 140+áfa.
Multiméterből már 2-t kinyírtam. Az egyik nem mér elleneálálst, csak néha és össze vissza. ezt lehet javítható. A másikkal meg mértem, aztán egyszercsak seholse volt áramkör. wtf. A mérőhegyből kiesett a drót.... Oké ez kínai piacos.
Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!
-
nagyúr
válasz Janos250 #9382 üzenetére
Köszi! És miben tudhat ez kevesebbet egy komolyabb készüléknél? Azt látom az adatlapján, hogy 200kHz-ig mér, ami azért már egy fokkal jobb, mintha vmi hangkártyára kötött barkács megoldással próbálkoznék, de azért már arduino-nál is ütközhetek korlátokba vele. Digitális jeleket lehet amúgy ezekkel analizálni (láttam olyan videót, ahol a protokollt is felismerte, és kiírta az átvitt adatokat is hexa kóddal), vagy ehhez már céleszköz kell?
-
_q
addikt
válasz Janos250 #9398 üzenetére
Driver asszem az, amit még te linkeltél korábban. Ha tapasztalok hasonlót megpróbálom más baud rate-el. Köszi a tippet.
Amúgy az új driver mitől lehet rossz, ha pl. silabs, tehát a gyártó honlapjáról töltöm le a legfrissebbet a CP2102-höz. Gyárilag miért adnának ki nem megfelelőt?
[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Janos250 #9398 üzenetére
Komolyan? Pedig Arduino IDE-ben is ez az alapértelmezett. Nekem sose volt gondom vele még, pedig nem Juicebit kábellel programozom.
Amúgy tudtátok, hogy bekerült az alaplapkezelőbe az ESP32 Arduino core? Már nem kell kézzel telepíteni, elég csak hozzáadni a Github repo linkjét az IDE-hez.
[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Janos250 #9445 üzenetére
Nyomtattam. Venni nem könnyű saját logóval a tetején. De még elég kiforratlan a dolog, nem túl jó minőségű.
(#9444) xboy89
0805 méretben rendeltem mindent szinte.
De ahogy elnéztem a gyakorló nyákon, a 0603 sem akkora nagy kihívás. Alap páka heggyel is ment.
Viszont nem nyerek vele sok helyet a 0805-höz képest, ezért nem is erőltettem.
Ha reflow kemencés gépi beültetés lenne és SMD clearance távolságra lehetne elhelyezni őket (egymástól kb 8 mil) csökkentett footprint-en, akkor azt mondom oké, de hobbi szinten még a footprint-ben sincs nagy különbség.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Janos250 #9468 üzenetére
Adatlap 1.4.3 bekezdésében szerepel, valamint az 1.6 bekezdésben lévő blokk diagramban. Viszont nem tárgyalja sehol az adatlapon.
Valamint van egy szép hosszú topik az Espressif oldalán róla.
Ezen kívül neten találni hozzá lib-et is és egy-két példát is.[ Szerkesztve ]
-
_q
addikt
válasz Janos250 #9492 üzenetére
Volt 1.19 GBP ~ 1.5 USD-ért is. Szintén ebayről berendeltem. Már késő, de azért belinkelem: [link]
(#9491) Tankblock
Tehát nem csinálsz külön ennek is helyet a nyákon. Persze fejlesztés alatt próbapanelen csinálom én is. Viszont utána nyákot tervezek hozzá. Az lett volna szép, ha mindent alkatrészenként rá tudok tenni a nyákra, helyette most úgy néz ki, hogy lesz rajta 2-3 rész, amit modul formájában teszek rá, tehát tüskesoros megoldással, ahogy írod. Így sokkal praktikusabb, habár esztétikailag kicsit zavar. Lesz egy másik nyák, szerencsére ott meg tudom oldani modul nélkül is, az alkatrészeket direktbe rátéve.[ Szerkesztve ]
Új hozzászólás Aktív témák
- Kertészet, mezőgazdaság topik
- Politika
- Kínai, és egyéb olcsó órák topikja
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- Diablo IV
- Windows 7
- Nem a Microsoft gyártaná a következő Xbox konzolokat?
- Autószerelők, autószerelés
- Bluetooth hangszórók
- Huawei Watch GT 3 Pro - korlátolt szépség
- További aktív témák...
- Ipad Pro 12.9" 1. GEN 256GB WIFI+Cellular, Szép Állapot, üzletből, garanciával
- Ipad Pro 12.9" 1. GEN 256GB WIFI+Cellular, Ezüst- fehér-Szép Állapot, üzletből, garanciával
- Smart Keyboard Folio for iPad Pro 11inch szép állapotban,
- ASUS ROG GTX 1060 OC 6GB Gaming (ROG STRIX-GTX1060-O6G-GAMING) - Garancia + Számla, BeszámítOK!
- Intel Core i5-8400 6-Core 2.80GHz LGA1151 Processzor- Számla + Gari, Ár alatt! BeszámítOK!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Ozeki Kft.
Város: Debrecen