Fórum témák
- • Alternativ HE találkozó(k)
- • Kaputelefon
- • Robotfűnyíró vagy fűnyíró robot
- • Felajánlás, azaz ingyen elvihető
- • Crystal radio - detektoros rádió
- • Számítógép hiba, de mi a probléma?
- • Általános antennás kérdések, válaszok
- • Elfogadnám, ha ingyen elvihető
- • Mosógép vezérlők és általános problémáik
- • Tápegységgel kapcsolatos kérdések
- • Napelem alkalmazása a lakás energia ellátásában
- • Androidos okos telefonok
- • Elektromos fűnyíró probléma
- • Motorgyújtás
- • XBOX kiegészítők, javítások átalakítások
- • Oszcillátor építése rajzok
- • Szünetmentes táp javítása, élesztése
- • Milyen zsebrádiót vegyek,amivel a gyenge rádióadókat is tudom fogni?
- • Érdekességek
- • Magas nyomású tisztító működése, javítása
- • Rádióamatőrök topikja
- • Hangsugárzó építés, javítás - miértek, hogyanok
- • Nyák nyomtató kérdések
- • Tápegység
- • Theremin
- • Börze
- • LCD TV probléma
- • Inverter javítás
- • Erősítő mindig és mindig
- • V-FET és SIT erősítő kapcsolások
- • Digitális mérleg
- • Parkside akkuk javìtása
- • Briggs töltés
- • Erősítő építése elejétől a végéig
- • Vásárlás, hol kapható?
- • 3D nyomtatás
- • Laptop javítás, tuning
- • Kapcsolóüzemű táp 230V-ról
- • Transzformátor készítés, méretezés
- • Elektromos kerékpár, robogó házilag
- • Relé kérdés
- • PIC - Miértek, hogyanok haladóknak
- • Erősítőhöz való hangsugárzó védelem (koppanásgátló)
- • Autórádió (fejegység) problémák, kérdések, válaszok
- • Arduino
- • Oszcilloszkóp, avagy hogyan kell használni?
- • Analóg oszcilloszkóp javítása
- • Akkumulátor töltő
- • Dansk 3f-T3535, és minden, ami vele kapcsolatos
- • Klíma szervizelés, javítás
- • PC-ről vezérlés
- • Labortápegység készítése
- • Videoton EA 6383 s (tuning)
- • Rossz pénztárgép
- • METEX műszer
» Több friss téma
|
Fórum » Espressif mikrokontrollerek
1) Kérdés, hogy mennyire van szükséged pontos értékre. Kézenfekvő megoldás lehet egy rail to rail műveleti erősítővel kivonni a tápfeszültségből a minimum értéket, így valóban nagy felbontást kaphatsz, cserébe ennek a tápját is kapcsolhatod.
2) A múltkor láttam SOT23-DIP adaptereket. Egy ilyen megoldással nem lehet korlát az SMD alkatrész. (ChipCad)
Érdemes megfontolni a LiFePO 4 akkumulátorokat. Nem kell hozzá semmi, közvetlenül használható az ESP8266-hoz. Bővebben: Link
1) Az említett 4.8 -> 3,3 V feszültségcsökkentést szeretném megjeleníteni 100% -> 0% skálán. Elegendő ez esetben az 1% megjelenítés. Amit meg tudok valósítani, az a 4.8 V leosztása 1V-ra, abban bíztam van valami további ellenállásos "trükközés", hogy csak (4,8-3,3) =1,5 V-ra vonatkozzon a mérésem. Nem tudom mi az a rail to rail, de utánaolvasok. Ha bonyolult, akkor marad a sima 2 ellenállásos osztás, és programból visszaszámolom a megfelelő értékeket.
2) Ok, akkor nem zárom ki a sot23-at, de továbbra sem tudom milyen mosfet-et és hol vegyek.
Azaz milyen paraméterekkel kell rendelkeznie, hogy a 4,8V-ot átengedje,alapból ne engedjen át SEMMIT, azaz 0 uA idle, de az ESP GPIO portja ( 3.3V) vezérelni tudja mérés során.
Vannak ilyen paraméterek, hogy Vgss, azaz gate to source, ennek pont 3.3V értékünek kell lennie vagy valamivel nagyobbnak?
Van olyan paraméter, hogy Vdss, azaz drain to source, itt ennek pont 4.8V értékünek kell lennie, vagy lehet nagyobb? Itt a 4.8V az -4.8 V -ot jelent, azaz mondjuk egy -6V vagy -20V jó lehet?
Bocsánat az amatőr kérdésekért.
rail to rail : az erősítő kimenete teljesen +/- tápfeszültségig kivezérelhető (duál tápnál)
vagy 0 és tápfeszültség között (ha szimpla tápos).
Tehát nincs maradék feszültség a kimeneten. (maradék lehet maximális kimenő fesznél tápfesz-pár tized volt vagy minimális kimenőnél 0+pártized volt )
Sziasztok
Egy kérdésem lenne, ESP8266-ról szeretnék feltölteni thinkspeak-re adatokat de nem tudom hogy ezt basic-on keresztűl meg lehet e oldani. Ha igen akkor esetleg valami mankót tudnátok ajnálani?
Köszi de nem teljesen tiszta.
Elküldöm az azonosítóm , mező szám (ez még ok) de a mező tartalom az mondjuk a változóm?
Ha jól értelmezem akkor a következőt kell beírni a basic programba: SENDTS ({betű és szám keverék azonosító},{field (ami most pl kazan)},{mondjuk a változóm értéke}
SENDTS (kulcs, mező azonosító [1 és 8 között], érték [numerikus érték])
A kulcs az, amit a TS megadott az adott csatornához.
Valami nem jó SENDTS ({AIP azonosító},{1},{curr})
Próbáltam kapcsoszárójellel is meg nélküle is
Már a program hibára áll ki
Idézet: „Error at5 line 43:Failed to reach end of input expression, likey malformed input
Error at line 43: Syntax error
Error at line 43: Halted” A hozzászólás módosítva: Okt 8, 2017
Pontosvesszővel a végén próbáltad?
Még nem, de az egész programban nincs pontosvessző memclear
SERIALPRINTLN "restart page"
cls
let curr = 0
let setp = 30
let stat = On
print
Button "Setpoint", [refresh]
textbox setp
wprint "CurrTemp="
textbox curr
wprint "<br>"
wprint "Heater="
textbox stat
wprint "<br>"
button "Exit", [quit]
timer 4000, [refresh]
wait
[on2]
io(po,2,0)
SERIALPRINTLN "PIN 2 ON"
let stat = "On"
Wait
[off2]
io(po,2,1)
SERIALPRINTLN "PIN 2 OFF"
let stat = "Off"
Wait
[refresh]
curr = temp(0)
SENDTS (IFSL3CKY4RLI5P9Z,field1,curr)
SERIALPRINTLN curr
if curr < setp then goto [on2] else goto [off2]
Wait
[quit]
timer 0
wprint "<a href='/'>Menu</a>"
end
A hozzászólás módosítva: Okt 8, 2017
Valami az azonosítóval lesz, most találtam egy oldalt ahol le van írva hogy mindennek amit küldök, stringnek kell lenni de nem értem hogy miért nem megy az azonosító már külön van egy értéknek megadva de így sem jó.
Sikerült
Nagyon figyelni kell a szoközöket mert nem mindegy hogy van vagy nincs.
Itt a cód ami nekem most megy: memclear
SERIALPRINTLN "restart page"
cls
id1$ = "ifsl3cky4rli5p9z"
field1$ = "1"
let curr = 0
let setp = 45
let stat = off
print
Button "Beallitas", [refresh]
textbox setp
wprint "<br>"
wprint "Kazan homerseklet="
textbox curr
wprint "<br>"
wprint "Szivattyu="
textbox stat
wprint "<br>"
wprint "Aksi fesz="
textbox a
wprint "<br>"
button "Exit", [quit]
timer 4000, [refresh]
wait
[on2]
io(po,3,0)
SERIALPRINTLN "PIN 3 ON"
let stat = ""
Wait
[off2]
io(po,3,1)
SERIALPRINTLN "PIN 3 OFF"
let stat = "Megy"
Wait
[refresh]
curr = temp(0)
a = io(ai) / 219.411
adat1$ = str(curr)
SENDTS(id1$ , field1$ , adat1$)
SERIALPRINTLN curr
if curr < setp then goto [on2] else goto [off2]
Wait
[quit]
timer 0
wprint "<a href='/'>Menu</a>"
end
Hali!
Ez milyen nyelven van?
Ebben tudnátok még kicsit segíteni?
Előzmény: Ehhez a feladathoz ( Zéró mérés ) keresek P csatornás mosfetet, csak a leírásban nem szerepel konkrét típus, vagy paraméter
Esp8266 GPIO portjával akarom be illetve teljesen kikapcsolva hagyni a mérő áramkört: Zéró mérés
Ha jól tudom a GPIO porton 3.3 V jelenik meg, az áramforrás pedig 4*1.2V AA pakk lenne.
Egy ilyen jó lehet nekem a feladtra? Bár nem a legszimpatikusabb tokozásban van ![](/pic/smile/sad.gif) (
IRML 6302
Vagy ezt találtam még, ennek szimpatikusabb a tokozása:
LP0701N3-G
Köszönöm előre is. A hozzászólás módosítva: Okt 9, 2017
Jónak tünik az irml, és az lp is.
Esetleg még bss84 PFET SMD 2.5Vgs-nél 2 ohm az ellenállása
Ez az érték amit írtál a 2 ohm az Rds ellenállás? A pontos értéket táblázatból vagy grafikonból nézted? Vagy kb írtad. Csak hogy tanuljak is valamit.
Ez az ellenállás minél kisebb legyen?
Találtam is egy nagyon kis értékűt 0,025 ohm , ez is jó lehet? mtp-50p03hdlg-pmos Ez raktáron is van, magyar bolt, és TO220 tokozású is. Megnézéd még kérlek, hogy ez jó-e a "projektemhez". Köszi.
Hali
Az alabbi kodra probalok raeroltetni valami web (http) beleptetot, felhasznaloval es jelszoval, de semmikeppen nem akarodzik.
Esetleg tudnatok-e segiteni ?
// Wifi
const char* ap_ssid = "Wemos_2";
const char* ap_pass = "pass";
# define port 82
IPAddress ap_ip(192,168,4,1);
IPAddress ap_gw(192,168,4,1);
IPAddress ap_sn(255,255,255,0);
String webSite,javaScript,XML;
int sensorPin = A0;
int sensorValue = 0;
void buildWebsite(){
buildJavascript();
webSite="<!DOCTYPE HTML>\n";
webSite+=javaScript;
webSite+="<BODY onload='process()'>\n";
webSite+="<BR>This is the ESP website ...<BR>\n";
webSite+="Runtime = <A id='runtime'></A><BR>\n";
webSite+="LDR = <A id='LDR'></A>\n";
webSite+="</BODY>\n";
webSite+="</HTML>\n"; }
void buildJavascript(){
javaScript="<SCRIPT>\n";
javaScript+="var xmlHttp=createXmlHttpObject();\n";
javaScript+="function createXmlHttpObject(){\n";
javaScript+=" if(window.XMLHttpRequest){\n";
javaScript+=" xmlHttp=new XMLHttpRequest();\n";
javaScript+=" }else{\n";
javaScript+=" xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');\n";
javaScript+=" }\n";
javaScript+=" return xmlHttp;\n";
javaScript+="}\n";
javaScript+="function process(){\n";
javaScript+=" if(xmlHttp.readyState==0 || xmlHttp.readyState==4){\n";
javaScript+=" xmlHttp.open('PUT','xml',true);\n";
javaScript+=" xmlHttp.onreadystatechange=handleServerResponse;\n"; // no brackets?????
javaScript+=" xmlHttp.send(null);\n";
javaScript+=" }\n";
javaScript+=" setTimeout('process()',1000);\n";
javaScript+="}\n";
javaScript+="function handleServerResponse(){\n";
javaScript+=" if(xmlHttp.readyState==4 && xmlHttp.status==200){\n";
javaScript+=" xmlResponse=xmlHttp.responseXML;\n";
javaScript+=" xmldoc = xmlResponse.getElementsByTagName('response');\n";
javaScript+=" message = xmldoc[0].firstChild.nodeValue;\n";
javaScript+=" document.getElementById('runtime').innerHTML=message;\n";
javaScript+=" xmldoc = xmlResponse.getElementsByTagName('responseLDR');\n";
javaScript+=" message = xmldoc[0].firstChild.nodeValue;\n";
javaScript+=" document.getElementById('LDR').innerHTML=message;\n";
javaScript+=" }\n";
javaScript+="}\n";
javaScript+="</SCRIPT>\n"; }
void buildXML(){
XML="<?xml version='1.0'?>";
XML+="<Donnees>";
XML+="<response>";
XML+=millis2time();
XML+="</response>";
XML+="<responseLDR>";
XML+=sensorValue;
XML+="</responseLDR>";
XML+="</Donnees>"; }
String millis2time(){
String Time="";
unsigned long ss;
byte mm,hh;
ss=millis()/1000;
hh=ss/3600;
mm=(ss-hh*3600)/60;
ss=(ss-hh*3600)-mm*60;
if(hh<10)Time+="0";
Time+=(String)hh+":";
if(mm<10)Time+="0";
Time+=(String)mm+":";
if(ss<10)Time+="0";
Time+=(String)ss;
return Time; }
void handleWebsite(){ buildWebsite();
server.send(200,"text/html",webSite); }
void handleXML(){ buildXML();
server.send(200,"text/xml",XML); }
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_AP); WiFi.softAPConfig(ap_ip,ap_gw,ap_sn); WiFi.softAP(ap_ssid, ap_pass); IPAddress myIP = WiFi.softAPIP(); delay(100);//
Serial.print("Station IP address: "); Serial.println(WiFi.softAPIP());
server.on("/",handleWebsite);
server.on("/xml",handleXML);
server.begin();
}
void loop() {
sensorValue = analogRead(sensorPin);
delay(250);
server.handleClient();
}
Hali!
A librarykban ezeket a mintákat nézted?
Authorization.ino
HttpBasicAuth.ino
SimpleAuthentification.ino
Hali! ez szerintem rosszabb
Az a lényeg neked, hogy miné alacsonyabb Vgs-nél nyisson ki, legyen alacsony az ellenállása, vagy nagyobb áram. Sajnos sokszor Vgs 10-20V os paramétereket írkálnak le
Az adatlapon
1. a táblázatokban keresgélsz paramétereket amit minél alacsonyabb Vgs-hez adnak meg,
pl áram, vagy ellenállás
2. diagramban keresgélsz pl Vgs-Rds , vagy Vgs-Ids görbéket, már ha van... ott nagyjából látszik milyen gatesfesz környékén nyit ki/mekkora az ellenállása/árama. Az áramot a max terhelhetőséghez viszonyítsd
Az utolsot probalgattam de semikeppen nem akart a root-ba lepni. Elfogadta a belepot es a jelszot de nem lepett ki a /login -bol mint ahogy abba a peldaba csinalja.
A masodikkal nem igazan foglalkoztam mert nem tudtam kilepot (logout) irni neki.
Az elso, az nem csak kliens?
Így nálam fut rendesen.
Lehet kicsit összekutyultam azért bocs. ![](/pic/smile/smile.gif)
Weboldalakat hogy hogy nem progmemben tartod?
// Wifi
const char* ap_ssid = "Wemos_2";
const char* ap_pass = "123456789";
#define port 80
//const char* ssid = "****";
//const char* password = "********";
IPAddress ap_ip(192, 168, 4, 1);
IPAddress ap_gw(192, 168, 4, 1);
IPAddress ap_sn(255, 255, 255, 0);
String webSite, javaScript, XML;
int sensorPin = A0;
int sensorValue = 0;
void handleWebsite();
void buildJavascript();
//Check if header is present and correct
bool is_authentified() {
Serial.println("Enter is_authentified");
if (server.hasHeader("Cookie")) {
Serial.print("Found cookie: ");
String cookie = server.header("Cookie");
Serial.println(cookie);
if (cookie.indexOf("ESPSESSIONID=1") != -1) {
Serial.println("Authentification Successful");
return true;
}
}
Serial.println("Authentification Failed");
return false;
}
//login page, also called for disconnect
void handleLogin() {
String msg;
if (server.hasHeader("Cookie")) {
Serial.print("Found cookie: ");
String cookie = server.header("Cookie");
Serial.println(cookie);
}
if (server.hasArg("DISCONNECT")) {
Serial.println("Disconnection");
server.sendHeader("Location", "/login");
server.sendHeader("Cache-Control", "no-cache");
server.sendHeader("Set-Cookie", "ESPSESSIONID=0");
server.send(301);
return;
}
if (server.hasArg("USERNAME") && server.hasArg("PASSWORD")) {
if (server.arg("USERNAME") == "admin" && server.arg("PASSWORD") == "admin") {
server.sendHeader("Location", "/");
server.sendHeader("Cache-Control", "no-cache");
server.sendHeader("Set-Cookie", "ESPSESSIONID=1");
server.send(301);
Serial.println("Log in Successful");
return;
}
msg = "Wrong username/password! try again.";
Serial.println("Log in Failed");
}
String content = "<html><body><form action='/login' method='POST'>To log in, please use : admin/admin<br>";
content += "User:<input type='text' name='USERNAME' placeholder='user name'><br>";
content += "Password:<input type='password' name='PASSWORD' placeholder='password'><br>";
content += "<input type='submit' name='SUBMIT' value='Submit'></form>" + msg + "<br>";
content += "You also can go <a href='/inline'>here</a></body></html>";
server.send(200, "text/html", content);
}
void buildWebsite() {
buildJavascript();
webSite = "<!DOCTYPE HTML>\n";
webSite += javaScript;
webSite += "<BODY onload='process()'>\n";
webSite += "<BR>This is the ESP website ...<BR>\n";
webSite += "Runtime = <A id='runtime'></A><BR>\n";
webSite += "LDR = <A id='LDR'></A>\n";
webSite += "</BODY>\n";
webSite += "</HTML>\n";
}
void handleWebsite() {
buildWebsite();
server.send(200, "text/html", webSite);
}
//root page can be accessed only if authentification is ok
void handleRoot() {
Serial.println("Enter handleRoot");
String header;
if (!is_authentified()) {
server.sendHeader("Location", "/login");
server.sendHeader("Cache-Control", "no-cache");
server.send(301);
return;
}
handleWebsite();
// String content = "<html><body><H2>hello, you successfully connected to esp8266!</H2><br>";
// if (server.hasHeader("User-Agent")) {
// content += "the user agent used is : " + server.header("User-Agent") + "<br><br>";
// }
// content += "You can access this page until you <a href=\"/login?DISCONNECT=YES\">disconnect</a></body></html>";
// server.send(200, "text/html", content);
// server.send(200, "text/html", "mn,mnb,mnb,mN");
}
void buildJavascript() {
javaScript = "<SCRIPT>\n";
javaScript += "var xmlHttp=createXmlHttpObject();\n";
javaScript += "function createXmlHttpObject(){\n";
javaScript += " if(window.XMLHttpRequest){\n";
javaScript += " xmlHttp=new XMLHttpRequest();\n";
javaScript += " }else{\n";
javaScript += " xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');\n";
javaScript += " }\n";
javaScript += " return xmlHttp;\n";
javaScript += "}\n";
javaScript += "function process(){\n";
javaScript += " if(xmlHttp.readyState==0 || xmlHttp.readyState==4){\n";
javaScript += " xmlHttp.open('PUT','xml',true);\n";
javaScript += " xmlHttp.onreadystatechange=handleServerResponse;\n"; // no brackets?????
javaScript += " xmlHttp.send(null);\n";
javaScript += " }\n";
javaScript += " setTimeout('process()',1000);\n";
javaScript += "}\n";
javaScript += "function handleServerResponse(){\n";
javaScript += " if(xmlHttp.readyState==4 && xmlHttp.status==200){\n";
javaScript += " xmlResponse=xmlHttp.responseXML;\n";
javaScript += " xmldoc = xmlResponse.getElementsByTagName('response');\n";
javaScript += " message = xmldoc[0].firstChild.nodeValue;\n";
javaScript += " document.getElementById('runtime').innerHTML=message;\n";
javaScript += " xmldoc = xmlResponse.getElementsByTagName('responseLDR');\n";
javaScript += " message = xmldoc[0].firstChild.nodeValue;\n";
javaScript += " document.getElementById('LDR').innerHTML=message;\n";
javaScript += " }\n";
javaScript += "}\n";
javaScript += "</SCRIPT>\n";
}
String millis2time() {
String Time = "";
unsigned long ss;
byte mm, hh;
ss = millis() / 1000;
hh = ss / 3600;
mm = (ss - hh * 3600) / 60;
ss = (ss - hh * 3600) - mm * 60;
if (hh < 10)
Time += "0";
Time += (String) hh + ":";
if (mm < 10)
Time += "0";
Time += (String) mm + ":";
if (ss < 10)
Time += "0";
Time += (String) ss;
return Time;
}
void buildXML() {
XML = "<?xml version='1.0'?>";
XML += "<Donnees>";
XML += "<response>";
XML += millis2time();
XML += "</response>";
XML += "<responseLDR>";
XML += sensorValue;
XML += "</responseLDR>";
XML += "</Donnees>";
}
void handleXML() {
buildXML();
server.send(200, "text/xml", XML);
}
void setup() {
Serial.begin(115200);
WiFi.stopSmartConfig();
WiFi.mode(WIFI_OFF);
WiFi.disconnect();
WiFi.mode(WIFI_AP);
WiFi.softAP(ap_ssid, ap_pass,4);
WiFi.softAPConfig(ap_ip, ap_gw, ap_sn);
/*
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
*/
//IPAddress myIP = WiFi.softAPIP();
delay(100); //
Serial.print("\nStation IP address: ");
Serial.println(WiFi.softAPIP());
server.on("/", handleRoot); //server.on("/", handleWebsite);
server.on("/login", handleLogin);
server.on("/xml", handleXML);
//here the list of headers to be recorded
const char * headerkeys[] = { "User-Agent", "Cookie" };
size_t headerkeyssize = sizeof(headerkeys) / sizeof(char*);
//ask server to track these headers
server.collectHeaders(headerkeys, headerkeyssize);
server.begin();
}
void loop() {
sensorValue = analogRead(sensorPin);
delay(250);
server.handleClient();
}
Hali, Király vagy
Ilyesformán probálgattam én is. Az utolsó probám ezekkel volt:
String header = "HTTP/1.1 301 OK\r\nLocation: /login\r\nCache-Control: no-cache\r\n\r\n";
String header0 = "HTTP/1.1 301 OK\r\nSet-Cookie: ESPSESSIONID=0\r\nLocation: /login\r\nCache-Control: no-cache\r\n\r\n";
String header1 = "HTTP/1.1 301 OK\r\nSet-Cookie: ESPSESSIONID=1\r\nLocation: / \r\nCache-Control: no-cache\r\n\r\n";
Mintha nem ugyanaz lenne a sorrend mint ahogy te irtad a kodba, vagy esetleg még más eltérés is van összességébe, már nem igazán fontos.
A weboldalt progmembe fogom tarolni, mint ahogy szokás, csak elöbb meg kellet gyözödjek a beléptető funkcionalitásárol. Ebbe a kódba bezavart nekem az xml letezese, ami parhuzamosan (belépéskor), vagy csak magara kell feltoltodjek (frissítéskór) Az én logikám szerint.
KÖSZI A hozzászólás módosítva: Okt 13, 2017
Sziasztok!
Szeretnék építeni esp-vel egy online rádió lejátszót. Semmi extra nem kellene bele csak h a programba meg adom a a link-et honnan kellene lejátszani. Ez megoldható lenne? Én pwm kimenetre gondoltam rárakni a hangszórót.
Segítségeket előre is köszönöm!
A pwm az kevés ide, neked valami olcsó DAC modul kell.
Amúgy ha rákeresel találsz több kész projectet is, amit csak le kell másolni.
Nem kevés, illetve határeset szoftveres dekódolással. t0bi fórumtárs már készített ilyet: Bővebben: Link
|
|