- Samsung Galaxy Watch6 Classic - tekerd!
- Samsung Galaxy S25 - végre van kicsi!
- Elkészült és telepíthető az Android 16
- iPhone topik
- Honor 400 - és mégis mozog a kép
- Apple iPhone 16 Pro - rutinvizsga
- Google Pixel topik
- Android alkalmazások - szoftver kibeszélő topik
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Térerő gondok, tapasztalatok
-
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
válasz
choco01 #8793 üzenetére
Így?
#define WEBport yyyyy
ESP8266WebServer WEBserver ( WEBport );
vagy ESP32WebServer WEBserver ( WEBport );
uint8_t ServerIPlocal[4] {192,168,1,140} ; //Node static IP kinek mi
uint8_t gatewayIPlocal[4] {192,168,1,1} ; // ami neked
uint8_t subnetIPlocal[4] {255,255,255,0} ;
const char* ssid = "mySSID";
const char* password = "1234567890";
void setup(void) {
WiFi.begin(ssid, password );
delay(1000); // min 1000
WiFi.config(ServerIPlocal, gatewayIPlocal, subnetIPlocal) ;
delay(1000);
WEBserver.on("/", handle_index);
WEBserver.begin();
} ;
void handle_index() {
String s = "<html>\r\n";
s += "<!DOCTYPE HTML>\r\n";
s += "<head>\r\n";
s += "<meta charset=\"UTF-8\">\r\n";
s += "<title>minta</title>\r\n" ;
s += "</head>\r\n";
s += "<body>\r\n";
.
.
.
.
.
s += "</body>\r\n";
s += "</html>\n";
WEBserver.send(200, "text/html", s);
} ; -
Janos250
őstag
válasz
choco01 #8790 üzenetére
"milyen lehetőségeim vannak"
Pl. a legegyszerűbb:
ESP32 AP, WEB szerver, és erre kapcsolódnak a szenzorok is.
Rálépsz az ő wifi hálójára telefonnal és látod.Ha kintről is akarod látni: Egy Wii routerhez kapcsolódik az ESP 32. WEB egy adott portra, amit a routerben átirányítasz az ESP-re. Így Ausztráliából is látod.
-
Tankblock
aktív tag
válasz
choco01 #8777 üzenetére
MQTT egy protocol csak. MQTT brokerre lesz szükséged, én a Mosquitto-t ajánlom egy raspin elmegy már évek óta.
Hogy mit kezdesz az adatokkal az már más kérdés. Én a NodeRed et használom, de vannak más haonlóan szofisztikált megoldások, ki mit szeretne.....
@ (#8778) tvamos :
Abban nem vagyok biztos hogy az MESH. Nem láttam még a teljes kódot. Azt keresem, hol van megvalósítva z atchitectúra lenyomata. Az hogy mindenkinek elküldünk mindent az sztem nem MESH. Ha lesz időm kipróbálom 3-5 noddal és tesztelem kicsit, mivan ha a node csak néha aktív, vagy ha kiesik egy része.
-
choco01
addikt
válasz
choco01 #8689 üzenetére
Ez a dokksi beszél róla, de most azt sem tudom hogy ezen melyik kivitel van a 270K-s szerintem de ott a 1 vagy 2 vagy 4T mit takar?
-
_q
addikt
válasz
choco01 #8683 üzenetére
Be kellene pár serial monitorozást tenni a kódba, ahol úgy gondolom megáll a kód, így lehetne debugolni. Illetve megnézni, hogy először is ki tudsz-e olvasni a szenzorból, utána ki tudsz-e íratni a kijelzőre fix-en számokat, utána a kettőt egybe, ezután a wifi rész. Ha minden egybe van úgy a legnehezebb. Ha külön megy és egybe nem akkor megint csak serial monitorozni kell.
-
_q
addikt
válasz
choco01 #8681 üzenetére
Ha minden igaz ez a mintakód neked is meg van, az esp32-vel települ fel. Itt csak a wifi.h kell. Webserver, Webclient nem. Nem tudom ezek mennyire "official" fájlok, de próbáld meg csak a wifi.h-t használni többi wifi-s header fájlt kommentezd ki, lehet másikban is van hasonló és bezavar.
WebServer server ( 80 );
Ezt pedig ne így nevezd el hanem:WiFiServer server(80);
-
choco01
addikt
válasz
choco01 #8679 üzenetére
Most ilyen: De ugye hibát dob annál a sornál..
Lehet a WebServer server ( 80 );-vel van baj? WifiServer server(80) is létezik..
#include <ESP32WebServer.h>
#include <Wire.h>
#include "Adafruit_BME280.h"
#include "SSD1306.h"
#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
WebServer server ( 80 );
const char* ssid = "esp";
const char* password = "12345678";
#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 html(void);
void setup() {
Serial.begin(115200);
Serial.println("Program Start");
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
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());
server.begin();
bme.begin();
idojaras();
delay(100);
kijelzo();
delay(100);
}
void loop()
{
idojaras();
delay(1000);
kijelzo();
delay(1000);
html();
delay(100);
}
void idojaras()
{
pt = bme.readHumidity();
hom = bme.readTemperature();
hp = hom - 0.36 * (100.0 - pt);
lny = bme.readPressure() / 100.0F ;
lny=lny+13;
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();
}
void html()
{
WiFiClient client = server.available();
while (client.connected())
{
if (client.available())
{
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE HTML><html><head>");
client.println("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"></head>");
client.println("<h1>ESP32 - Web Server</h1>");
client.println("</html>");
break;
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(10);
client.stop();
Serial.println("client disconnected");
}
}
} -
_q
addikt
válasz
choco01 #8675 üzenetére
Szerinetm a wifi inicializálás és weboldal kiíatás nem egy helyen kellene legyen. Mert így minden egyes net függvény hívásnál ismét csatlakozik wifire, inicializál stb. Nem mondom, hogy ez a hiba, de elsőre ezt vettem észre.
Plusz egy ilyen is hiányzik szerintem a WiFiClient client után:
WiFiClient client = server.available(); // listen for incoming clients
Meg egy ilyen:
while (client.connected()) { // loop while the client's connected
if (client.available()) { // if there's bytes to read from the client,Tehát a net függvényt így kellene kezdeni szerinetm:
WiFiClient client = server.available(); // listen for incoming clients
while (client.connected()) { // loop while the client's connected
if (client.available()) { // if there's bytes to read from the client, -
_q
addikt
válasz
choco01 #8670 üzenetére
Adafruit_BME280.h-ban írd át a címét a szenzornak 0x76-ra. 0x77-en van és ezért elvileg nem tud kommunikálni. 77 SPI esetén, 76 I2C esetén használatos. Adafruit mintakód SPI-ra van így a header fájlban is ezért szerepel 77-es cím. Ettől függetlenül a bme.begin() kelleni fog az inicializálás miatt.
-
_q
addikt
válasz
choco01 #8665 üzenetére
Igen, ahogy (#8666) vargalex mondja ugyan arra az i2c-re kösd rá a kijelzőt, mint amire a szenzort is kötöd. Ezek után csak el kell küldeni neki amit ki akarsz íratni. Én mikor teszteltem külön teszteltem a szenzort, külön a kijelzőt, majd a végén raktam össze a kettőt.
Valószínű a kódban lehet valami. Amikor megvan pl. hőmérséklet, akkor a következő függvénnyel tudod elküldeni a kijelzőnek:display.drawString(0,0, "Temp: " + String(readtemp));
Ahol a Temp: konstans szövegként kerül a kijelzőre, majd a kettőspont után a kiolvasott hőmérséklet, ugyan az amit serial monitoron is kiíratsz. Illetve az elején a 0, 0 adja meg hogy melyik sorba/oszlopba legyen kiíratva.
-
_q
addikt
válasz
choco01 #8659 üzenetére
Én HDC1080-al próbáltam és nem volt gond oled kiíratással. Szerintem először serial monitoron próbáld kiíratni és csak utána menj tovább az oledre, Lépésről lépésre. Ha serial monitor is 0-t ír ki akkor a kóddal lesz a gond. Nem tudom hogy magad írtad-e meg a kommunikációt vagy arduino könyvtárat használsz. Ha utóbbi akkor egy minta kódot érdemes nézni pl.: ezt vagy ezt. Emellett érdemes megnézni a bekötés jó-e az szokott még gond lenni.
-
Janos250
őstag
válasz
choco01 #8415 üzenetére
Nem nehéz.
Ez a main.cpp (mivel az Arduino programja is C++, természetesen van main.cpp is, csak arra nem szokták felhívni a figyelmünket.)#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "Arduino.h"
#if CONFIG_AUTOSTART_ARDUINO
#if CONFIG_FREERTOS_UNICORE
#define ARDUINO_RUNNING_CORE 0
#else
#define ARDUINO_RUNNING_CORE 1
#endif
void loopTask(void *pvParameters)
{
setup();
for(;;) {
micros(); //update overflow
loop();
}
}
extern "C" void app_main()
{
initArduino();
xTaskCreatePinnedToCore(loopTask, "loopTask", 8192, NULL, 1, NULL, ARDUINO_RUNNING_CORE);
}
#endifAlapesetben, ha nem írod át a main.cpp-ben, akkor a loop a core 1-en fut.
Ha csinálsz függvényt, azt ugyanígy a xTaskCreatePinnedToCore-al tudod hívni, és meghatározhatod, hogy melyik magon fusson.
Itt mutattam rá egy programomból egy mintapéldát.
https://prohardver.hu/tema/arduino/hsz_8403-8403.html -
Janos250
őstag
válasz
choco01 #8413 üzenetére
Az ESP8266-nál valahonnan a netről töltöttem le, és a mintapéldában láttam a használatát. Egyszerűnek tűnt. ezért azt használtam. Utána írták, hogy az esp8266WEBserver működik némi megszorításokkal az ESP32-n is, aztán valaki elkezdte bütykölni, hogy rendesen menjen. Valaki írta, hogy neki egyszerre csak egy klienst tud lekezelni, de nekem az elég.
-
Janos250
őstag
válasz
choco01 #8411 üzenetére
Én - ha jól emlékszem - ezt töltöttem le:
http://www.fisch.lu/junk/ESP32-WebServer.zipAzért ezt, mert én az ESP8266-on is ennek az elődjét használtam, és azt megszoktam.
Egyéb oka nem volt.Segédletem sajnos nincs.
-
Janos250
őstag
válasz
choco01 #8407 üzenetére
Nekem ez az eleje:
#include <WiFi.h>
#include <WiFiClient.h>
#include <ESP32WebServer.h>"DHT22 miert NA adatot ír állandóan"
Én ezért szoktam saját lekezelőt csinálni, mert a kész könyvtárak időnként nem azt csinálják, amit én szeretnék. DHT11-re csináltam sajátot, 22 még nem. -
Tankblock
aktív tag
válasz
choco01 #7738 üzenetére
Hello,
Igen az optikailag leválasztott jó lehet, de ne a sütőt kösd rá. Én nem használnám ki a 10 A -t. Ha csak 1 kell akkor sonoff basic ajánlom. Hackekhető és megbízható. Ha csaj világítást szeretnél arra is van sonoff touch a kapcsoló helyére, igaz kell null vezeték is bekötni.
-
Tankblock
aktív tag
válasz
choco01 #7735 üzenetére
A probléma köre az, hogy 0 C alatt a LiPo nem ajánlott. A téli üzemre illik méretezni ezeket. előfordul h nincs 3 hétig értelmezhető nap. A töltése az akksinak ilyekor jó esetben 1 - 2 hasznos óra.
Nyár az teljesen más. Természetesen meg tudod oldani h akkumulátor feszültséget is továbbítod, max télen szépen feltöltöd :-P
Egy ilyenem van, még nincs sok tapasztalat vele. Csak anyi h feltölt szépen 3000mAh LiPo-t, de tud LiFePo4 et is.
Szerintem van akkumulátor kapacítás számító.
-
Tankblock
aktív tag
válasz
choco01 #7728 üzenetére
Hello
Működhet, de a vesztesége a rendszernek (csak a konverzós veszteségek) már tetemesek lehetnek.
kijelzőt én nem tennék rá, bár eink nagy részben nem használ semmilyen plusz energiát.15 percnyi deepsleep nagyban növeli az élettartamot. Ki kell számolni a kapacítást és beleszámolni a veszteségeket is....
LiFePo akksinál pl nem kellene lefele konvertálni a feszt.
-
Janos250
őstag
válasz
choco01 #7719 üzenetére
Tapasztalatom szerint nincs felhasználás szempontjából lényegi különbség a különböző ESP32 panelek között, kivétel, ha nagyon régi.
ESP-WROOM-32 legyen rajta. Ez ugyanaz, ami korábban az ESP32S. USB szintén legyen rajta, amiről programozni is, tápolni is lehet. A többi szerintem mindegy.
Én ezekből használok/tam párat.
link -
Tankblock
aktív tag
válasz
choco01 #7724 üzenetére
hmm,
az sokmindentől függ.... 3v3 melett induláskor mikor a Wifi scannel akár 500+ mA is 10 [sec] ig, ha 700mA csúcsokkal. utána 130 mA nagyátlag, de 600 mA tüskékkel amikor a Wifi használja.
ehhez jön hozzá a szezorok ha Bosch 280 vagy újabb az > 1 mA fogyaszt. A Raindropra nincs lövésem sem
LM319 data sheet Power dissipation(5) 500 mW na ez P = UI => 152 mA max.Ha nem számoltam el 280 mA - 300 mA átlagban.....
Megfelelő minőségű USB kábel is legyen. Napelemről tisztán a véghardveben nem ilyen dev boarddal ugranék bele, hanem csak a WROOM chip és töltőáramkör sem eygszerű kérdés, meg a Napelem méretezése maga is.... (éjszaka, tél, 3 hét hó/eső, felhős idő.....)Milyen akkumulátor technológiát választasz, pl Lipo-t minuszba nem szabad használni. LiFePo még jó lehet.
-
Tankblock
aktív tag
válasz
choco01 #7722 üzenetére
Hello,
ESP32 van egy csomó Analog input, a kérdés, hogy hogyan is szeretnéd használni. Nem kell hozzá multiplexer szerintem.
Ha egyszerűen csak digitális GPIO pint akarsz használni akkor az 5 [V] TTL logika szerintem itt még egy egyszerű elleállás osztóval is megoldható.
milyen táppal lesz meghajtva ha egyszerű akksi akkor javaslom olvass utána a FET eknek és a deep sleep témának, különben gyorsan tud meríteni az aksit....,
ja és akkor belinkelt mellé kell még venni töltő áramkört is....
-
brickm
őstag
válasz
choco01 #7719 üzenetére
A pnelen a 4-es tüskesornál ottvan, hogy AO(analog out) és DO(digital out) A leírás is ír valami ilyesmit, de csak épp ránéztem.
(szerk.: jjh, ottvan, hogy wide range comparator van rajta. beállítod az értéket és kidobja hogy 0 vagy 1. Meg gondolom párhuzamosan adja az AO-n az analog output értéket amit a komparátor is mér.)
-
Tankblock
aktív tag
válasz
choco01 #7719 üzenetére
Hello,
Leírásban ott a válasz:
AO analog output can be connected to the microcontroller AD port to detect the size of the drops in the above rainfall. --> Analóg csatornán ad valamekkora arányos jelet
DO TTL digital outputs can also be connected to the microcontroller detects whether there is rain.
--> digitális, komparátorral ad szint felett 1 est.Az ESP32 3V3 működik ez meg 5V. bár azt írja h megy 3-5V között...
Operating voltage: 3.3V-5V
Voltage: 5Vén használák valami voltage level shiftert ha 5 V kellene használni.
Új hozzászólás Aktív témák
Hirdetés
- Milyen videókártyát?
- Témázgatunk, témázgatunk!? ... avagy mutasd az Android homescreened!
- Samsung Galaxy Watch6 Classic - tekerd!
- Formula-1
- Fejhallgató erősítő és DAC topik
- Samsung Galaxy S25 - végre van kicsi!
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Kecskemét és környéke adok-veszek-beszélgetek
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Hamarosan megkezdődik a nubia 2,8K-s táblagépének szállítása
- További aktív témák...
- DELL G2724D / Samsung Odyssey G5 1440p 165hz árak leírásban.
- Asus RTX 4070 12GB DDR6X - DUAL-RTX4070-O12G-EVO-DLSS 3 Garancia
- Apple iPhone 14 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 14 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- Új Apple iPhone 16 Pro 128GB, Kártyafüggetlen, 3 Év Garanciával
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- Lenovo ThinkPad X270 (16) - i5-7300U, 16GB, 512GB SSD, 12" FULL HD
- Telefon felvásárlás! Samsung Galaxy A15, Samsung Galaxy A25, Samsung Galaxy A35, Samsung Galaxy A55
- Bomba ár! Lenovo ThinkPad L480 - i5-8GEN I 16GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- ÁRGARANCIA! Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged