Fórum témák
- • Audiofil, High End Audio
- • Gáz fogyasztás monitorozása
- • Villanyszerelés
- • Hűtőgép kompresszor
- • Transzformátor készítés, méretezés
- • Eredményjelző
- • Dióda helyettesítés
- • Kapcsolási rajzot keresek
- • Vezetéknélküli termosztát
- • Mosógép vezérlők és általános problémáik
- • Oszcilloszkóp, avagy hogyan kell használni?
- • Kapcsolóüzemű táp 230V-ról
- • Rádióamatőrök topikja
- • Vicces - mókás történetek
- • Hűtőgép probléma
- • Analóg oszcilloszkóp javítása
- • Elfogadnám, ha ingyen elvihető
- • A műhely (bemutató topik, ahol az alkotások készülnek)
- • Opel Astra elektromos hibák
- • Számítógép hiba, de mi a probléma?
- • Arduino
- • Felajánlás, azaz ingyen elvihető
- • Rádió áthangolása, OIRT - CCIR konverter
- • Kazettás magnó (deck) javítása
- • Kombikazán működési hiba
- • Klíma szervizelés, javítás
- • Klíma beszerelése, fűtés-hűtés házilag
- • Tápegységgel kapcsolatos kérdések
- • Fejhallgató erősítő
- • Labortáp javítás
- • MOSFET-ek
- • Sprint-Layout NYÁK-tervező
- • Tápegység
- • Androidos okos telefonok
- • Tervezzünk nyákot EasyEDA-val
- • Hegesztő inverter javítás
- • Videomagnó problémák
- • Ellenállás
- • Szobatermosztát bekötése
- • HESTORE.hu
- • Multiméter - miért, milyet?
- • Érdekességek
- • Villanymotor bekötése
- • Menetszámolós tekercselőgép házilag
- • Leválasztó transzformátor
- • Szigetelésvizsgáló
- • USB 3.2 HUB modul
- • Kamerás megfigyelőrendszer
- • Tranzisztorok helyettesítése
- • Borhűtő vezérlő panel
- • CNC építése házi alkatrészekből az alapoktól
- • Sütő javítás
- • Kondenzátor
- • Eberspacher állófűtés javítása
- • Dobozolási technikák, műszerdobozok
» Több friss téma
|
Fórum » Espressif mikrokontrollerek
Modemként nem lehet használni?
Őőő nem értem
Még nem volt szerencsém optikai interneteléréshez, de koaxoshoz már igen. Akkor az UPC letette a ConnectBoxát, én meg megkérdeztem a telepítőt, hogy mi lesz a mostani hálózattal? Áttelepíti, vagy használjam a régi routert? Az utóbbi mellett döntött. A Connectbox egy klikk hatására modemmé változott. Kaptam egy publikus IP címet, ethernet csatlakozóval, amire rákötöthettem régi routert. Nincs okom feltételezni, hogy optikai kapcsolat esetén másképp működne a dolog. A hozzászólás módosítva: Dec 13, 2017
Ezen a routeren 1 darab optikai bejövő vonal van, és kijön belőle 1 telefonvonal (2 jön ki, de az egyik nem működik), 1 tv vonal (analóg + digitális csatornákkal), és internet vonal. Én is láttam már pár elektromos vonalra kötött cuccot, de ez másmilyen. Eszembe jutott, hogy talán kotrok valamit a keleti hacker site-okon és megtördelem egy kicsit a firmware-t rajta, de nekem végső soron egy normális szolgáltatás kell, nem robot agyúakkal veszekedni, vagy eléfeküdni a jogászaiknak, hogy büntetést fizettessenek velem. A hűségidő jövő március végén lejár.
Hali!
Nekem is optikai digim van, utána egy saját router.
A digi csak valami adsl tárcsázós kapcsolatot igényel, abba nekem szükségtelen belépni, nem kell benne konfigurálni semmit. Beszóltam a diginek hogy publikus ipcí,et adjanak, adtak ingyen, így kívülrül is látszom, a portforwardot csak a saját routeremben kell állítgatni.
Te tudod, de szerintem az ügyfélszolgálat (beleértve a szervizeseket) független a szolgáltatótól. Igaz, én könnyen beszélek, az utolsó munkában eltöltött húsz évben hasonló munkakörben dolgoztam. Egy kedves szó, mosoly csodákra képes. Ott is csak emberek dolgoznak.
Hat sajnos. nálam csak egy plusz routerrel működik. és IP szolgáltatóval... helyesebben még így se mert szenvedek a beállítással!
De hogy a Topicnál maradjunk, van valakinek bevált kódja ESP hez autonóm repeaternek?
Szia! A weblapomra feltettem egy kis php-t, ami tárolja az eszközeim IP címeit. Mikrotik routereim vannak, azok automatikusan meg tudnak hívni webcímet, így nekem magától frissül. itt fel tudok ajánlani egy helyet neked is. A linket akár böngészőben el tudod menteni ami frissíti az oldalon levő IP-t, de az ESP-vel pillanatok alatt megoldatod. Magánban küldöm a címet. A hozzászólás módosítva: Dec 14, 2017
A Connect box, bár van ilyen funkciója, nem nevezhető igazán routernek.Mit értesz autonóm repeateren?
Ez a cucc van neked is? Egyébként igen, a szervízes jó fej, épp csak nem tehet semmiről. Neki segítettem telepíteni, tesztelni, kínáltam mindenfélével (nem fogadott el semmit). Viszont a beállításokkal ő nem tudott tenni semmit. Előkészített cuccot adtak a kezébe, ő azt telepítette. Telefonos ügyfeles dettó. Ő sem tudja azokat, csak a központi hibaelhárítás, de őket meg nem érhetem el, csak hibát jelenthetek be, és majd kiküldik a szervizest. Nincs kétirányú kommunikációra valós lehetőség.
T-Link WR1043 van már időtlen idők óta. Most fogok Mikrotik-re váltani. Kapcsoltasd ki a WiFit, és csak egy publikus IP címet adjanak. Ezt csak meg tudják oldani? Onnan kezdve menni kell mindennek, amit a router tud. Hozzáteszem, nem vagyok már képben a számítástechnika legújabb vívmányaival, így egy hozzáértő megerősíthetne. A hozzászólás módosítva: Dec 14, 2017
Távol álljon tőlem a kötözködés... de nallam a ConectBox
a modem és routeri feladatokon kivül mást nem tud ellátni! IP-t oszt csatlakozik switch ként oszt stb stb... Ennél Routerebb már nem is lehet egy router szerintem! De ha tévedek kérlek javítsatok ki
Repeater alatt olyat értek hogy a programba megadom neki az ssid-t a kodot és utanna amikor tápot kap akkor automatikusan csatlakozik, és az eredeti jelet szorja tovább!
Ez (1) volt a gond. Köszi!
Sziasztok!
Először is kellemes ünnepeket mindenkinek!
Másodszor pedig egy esp8266-01 -es panelcsodával szenvedek épp. Van egy programocskám, ami egy html lapot generál és GPIO-t vezérel. Annyi kiegészítés kellene hozzá, hogy a gpio állapotát vissza is monitorozza.
Amiket eddig én találta a neten megoldások(gondolom az én hibámból) de nem működtek, olyannyira, hogy hibára állt ki beírásnál is. Amit meg én kitaláltam, az nem igazán működik.
kódom:
-- Wifi Modul GPIO with control, Dynamic IP from DHCP server, and web page on port:80
--2017.12.22
uart.setup(0,115200,8,0,1)
wifi.setmode(wifi.STATION)
wifi.sta.config("TP-LINK_B791981","")
print(wifi.sta.getip())
gpio_1 = 3
gpio_2 = 4
gpio.mode(gpio_1, gpio.OUTPUT)
gpio.mode(gpio_2, gpio.INPUT, gpio.PULLUP)
gpio.write(gpio_1, gpio.LOW);
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive", function(client,request)
local buf = "";
local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
if(method == nil)then
_, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
end
local _GET = {}
if (vars ~= nil)then
for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
_GET[k] = v
end
end
buf = buf.. "<h1> ESP8266 Web Server</h1>";
buf = buf.."<p>GPIO0 <a href=\"?pin=ON1\"><button>Arming</button></a> <a href=\"?pin=OFF1\"><button>Disarming</button></a></p>";
gpio.read(gpio_2);
if(gpio_2 == HIGH)then
buf = buf.."<h1>GPIO is high</h1>";
elseif(gpio_2 == LOW)then
buf = buf.."<h1>GPIO is low</h1>";
end
local _on,_off = "",""
if(_GET.pin == "ON1")then
gpio.write(gpio_1, gpio.HIGH);
elseif(_GET.pin == "OFF1")then
gpio.write(gpio_1, gpio.LOW);
end
client:send(buf);
client:close();
collectgarbage();
end)
end)
nálam ez cisnálná a gpio monitort, de sajna nem működik:
gpio.read(gpio_2);
if(gpio_2 == HIGH)then
buf = buf.."<h1>GPIO is high</h1>";
elseif(gpio_2 == LOW)then
buf = buf.."<h1>GPIO is low</h1>";
end
Szia!
Nekem az alábbi van (volt régebben) használva, legelső verziókban.
Azóta már más módon megy, de teljesen önálló eszközön jó.
// FUNKCIÓK:
// Csatlakozás a helyi Wi-Fi hálózathoz
// Kapott IP cím megjelenítése a konzolban
// DS18B20 hőmérséklet szenzorok olvasása
// Minimalista "webszerver" biztosítása
// Webszerveren megjelennek a mért hőmérsékletek
// Nyomógombok a kimenet kapcsolásához
// Kapcsolt kimenet állapotának visszajelzése
//
// Teljesen kompatibilis hardver: NodeMcu
//
// Verzió: 1.0.170107
//
// Külső könyvtár - Wi-Fi kapcsolódáshoz
// Külső könyvtár - 1-Wire eszközök külső könyvtár
#include <OneWire.h>
// Külső könyvtár - Dallas eszközök kezeléséhez
#include <DallasTemperature.h>
// WiFi paraméterek - Módosítani kell a helyi hálózat szerint
const char* ssid = "WIFI-NEVE";
const char* password = "WI-FI-JELSZO";
// Server szolgáltatás indítása a 80-as porton
// WiFiServer példányosítása server néven a későbbi használathoz
WiFiServer server(80);
// A GPIO5 pin hozzárendelése az integer típusú output_pin változóhoz
// NodeMcu panel esetén ez a D0
int output_pin = 16;
// A GPIO 2 pin beállítása a DS18B20 értékelők olvasásához
// A NODEMcu panel esetén ez a D4
#define ONE_WIRE_BUS 2
//Onewire függvény példányosítása a fentebb megadott ONE_WIRE_BUS használatával
// azaz a D4 (GPIO2) lábon olvassa a szenzorokat
OneWire oneWire(ONE_WIRE_BUS);
// DS18B20 függvény indítása a hőmérséklet olvasás kezeléséhez
// Specializáljuk az 1-wire olvasást a Dalals szenzorra
DallasTemperature sensors(&oneWire);
// A setup() föggvényvben állítunk be és inicializálunk olyan funkciókat,
// melyeket használunk majd később a loop() függvényünkben
// az alábbiak egyszer futnak le (az eszköz indításakor)
void setup() {
// Soros kommunikáció indítása az Arduino IDE programból való monitorozáshoz
Serial.begin(115200);
// Várunk 10 másodpercet, de ez nem kötelező egyébként ide
delay(10);
// D4 (GPIO16) beállítása kimenetnek
pinMode(output_pin, OUTPUT);
// D4 (GPIO16) beállítása alacsony szintre (ez csak a hardver indításakor van így)
digitalWrite(output_pin, 0);
// Kiírjuk a soros portra, hogy következik a Wi-Fi csatlakozás indítása
Serial.println();
Serial.println();
Serial.print("Csatlakozas ide: ");
Serial.println(ssid);
// WIFI AP módját nem hasznájuk, ezért lezárjuk egy gagyi jelszóval, majd elrejtjük
WiFi.softAP("ESP_1", "nothingyoucanfindout", 1, 1);
// Wi-Fi csatlakozás a program elején megadott adatokkal
WiFi.begin(ssid, password);
// Amíg nem csatlakoztunk a Wi-Fi-hez kiírunk 500ms-ként a konzolra : .
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Ha sikeres a Wi-Fi csatlakozás, kiírjuk ennek tényét
Serial.println("");
Serial.println("WiFi csatlakozas megtortent");
// Elindítjuk a serverünket a program elején megadott 80-as porton
server.begin();
Serial.println("Server elinditva");
// Kiírjuk a routertől kapott IP címünket
// Ehhez kell kapcsolódni az internet böngészőnkkel a megjelenítéshez
Serial.println(WiFi.localIP());
//Kiírjuk, hogy elkezdődik a hőmérés ezután
Serial.println("Dallas Homerseklet meres");
}
// a loop() függvényben lévő parancsok folyamatosan futnak le, amíg az eszköz üzemel
// az elejéről indul, fégig és kezdi elölröl
void loop() {
// Ellenőrizzük, hogy kapcsolódott-e valaki az eszközhöz internet böngészőből
WiFiClient client = server.available();
// IF NEM(!) csatlakozott kliens, akkor visszatér eggyel feljebb és figyel újra
if (!client) {
return;
}
// Várunk, amíg a kliens nem küld adatokat
Serial.println("new client");
/* int clientError = 0;
// Ha nincs kliens és nem ellenőriztük ezt már háromszor, akkor várunk kicsit
while(!client.available() || clientError < 3){
delay(1);
clientError++;
}*/
// Beolvassuk a klienstől kapott adatokat (háttérben fut az internet böngésző küldi)
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();
// Megnézzük, hogy jött-e kimenet bekapcsolási parancs
// Ha -1 van, akkor nem jött értelmes adat
if (req.indexOf("/on") != -1){
// ha igen, bekapcsoljuk a kimenetet
digitalWrite(output_pin, 1);
}
else if (req.indexOf("/off") != -1) {
// egyébként kikapcsoljuk a kimenetet
digitalWrite(output_pin, 0);
}
// Eldobjuk a folyamatot, mert végeztünk
client.flush();
// Összeállítjuk a választ, melyet a kliensnek küldünk
// az alábbi adatok egy HTML fájlt hoznak létre a kliens internet böngészőjében
// <head> és </head> között formázzuk a tartalmat
// <body> és </body> között van a látható tartalom
// azaz a hőmérséklet kiírás és színváltos kattintható nyomógomb is
// ha csak 1db DS18B20 van bekötve, akkor a másiknál -127 celsiust fog kiírni!
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
s += "<head>";
s += "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">";
s += "<script src=\"https://code.jquery.com/jquery-2.1.3.min.js\"></script>";
s += "<title>Lakas felugyelet 1.0.171219</title>";
s += "<meta http-equiv=\"refresh\" content=\"10\">";
s += "<style>";
s += "#container {";
s += "width: 500px; height: 150px; text-align: center; border: 1px solid blue;}";
s += "h1, h2 {";
s += "color: green; text-align: center;}";
s += "#col-md-1 {";
s += "width: 100px; float: left; margin-top: 10px; margin-left: 30px;}";
s += "#col-md-2 {";
s += "width: 100px; float: right; margin-top: 10px; margin-right: 30px;}";
s += "input[type=button] {";
s += "height: 50px; width: 100px}";
s += "#info {";
s += "margin-top: 20px; width: 500px; height: 130px; border: 1px solid red; text-align: center;}";
s += "#temp {";
s += "margin-top: 20px; width: 500px; height: 140px; border: 1px solid green; text-align: center;}";
s += "#col-md-3 {";
s += "width: 200px; float: left; margin-left: 20px;}";
s += "#col-md-4 {";
s += "width: 200px; margin-left: 20px;}";
s += "@media only screen and (max-width: 500px) {";
s += "#container { width: 320px; }#info { width: 320px; }";
s += "#temp { width: 320px; } }";
s += "</style>";
s += "</head><body>";
s += "<div id=\"container\">";
s += "<h1>Kimenet Kapcsolasa</h1>";
s += "<div id=\"row\">";
s += "<div id=\"col-md-1\"><input id=\"off\" type=\"button\" value=\"KI\" onclick=\"off()\"></div>";
s += "<div id=\"col-md-2\"><input id=\"on\" type=\"button\" value=\"BE\" onclick=\"on()\"></div>";
s += "</div></div>";
s += "<script>function on() {$.get(\"/on\");}</script>";
s += "<script>function off() {$.get(\"/off\");}</script>";
s += "<div id=\"info\">A nyomogombokra torteno kattintas azonnal kapcsolja a kimenetet.<br>";
s += "A viszajelzes azonban csak 10 masodperc mulva frissul<br>";
s += "A homerseklet adatok is csak 10 masodpercenkent frissulnek</div>";
s += "<div id=\"temp\">";
s += "<h2>Homerseklet: </h2>";
s += "<div id=\"col-md-3\">";
s += sensors.getTempCByIndex(0);
s+= " \℃\; (Belteren)</div>";
s += "<div id=\"col-md-4\">";
s += sensors.getTempCByIndex(1);
s+= " \℃\; (Kulteren)</div>";
s+= "<body>";
// Ha a kimenetet bekapcsoltuk az internet böngészőből, akkor visszaküldjük neki a módosított stíluslap részt,
// hogy a BE nyomógomb váltson színt pirosra. Egyébként szürke.
if (digitalRead(output_pin) == HIGH) {
s+= "<style>#on {background-color: red;}</style>";
}
// Ha a kimenetet kikapcsoltuk az internet böngészőből, akkor visszaküldjük neki a módosított stíluslap részt,
// hogy a KI nyomógomb váltson színt zöldre. Egyébként szürke.
else {
s+= "<style>#off {background-color: green;}</style>";
}
// Az egészet összeállítjuk és elküldjük az internet böngésző felé
client.print(s);
delay(1);
Serial.println("Client lecsatlakozott");
//Hőmérséklet adatok kiírása a soros portra
Serial.println("Homersekletek olvasasa...");
//és be is olvassuk az alábbi függvénnyel
sensors.requestTemperatures();
Serial.print("Homerseklet az 1. eszkozon: ");
Serial.println(sensors.getTempCByIndex(0));
Serial.print("Homerseklet a 2. eszkozon: ");
Serial.println(sensors.getTempCByIndex(1));
Serial.println(" ");
client.flush();
}
Elnézést a gagyi kommentekért, de már vagy egy jó éve csináltam ezt. Netes források alapján készült, némileg tuningolva, szépítve.
A GPIO lábakat módosítani kell az ESP-01 szerint. Ott ugye a GPIO 2 és GPIO 0 áll rendelkezésre. A GPIO 0 használatakor figyelni kell, mert az indítás során kritikus annak logikai szintje.
Üdv.
Karcsi
Szia, köszi.
Én nem arduino IDe-vel programozom, nodemcu lua script kompatibilis firmware van benne, de alapvetően a logikám ugyen ez volt, mint a te programodban.
Nálad ugye:
if (digitalRead(output_pin) == HIGH) {
s+= "<style>#on {background-color: red;}</style>";
}
else ......
Nálam is ugyen ez van, csak elseif- mivel LUA-ban ez van. Lehet átállok inkább én is arduino IDE-re, csak akkor kell közbe egy arduino is meg egy level shifter is nehogy ne legyen bonyolult.
Ez a program egy az egyben letölthető bele. Nekem futott NodeMcu-ban simán.
Az ESP-01 programozásához meg egy USB - TTL átalakító elég.
Pl: ilyen
Pár ellenállás a logikai szintekhez és két mini nyomógomb. Én így hazsnálom, perzse lehet Arduinon át is csinálni.
Szia!
Ezt egy kicsit kifejtenéd hogy hogyan? Mert érdekelne engem is! Ha jol tudom akkor az irás és olvasás funkcio között vált ugye?
Ezt a verziót használod?
Illetve amiket lehet hozzájuk kapni "adaptert" pl olyan mint amit képként csatoltam.... azokon nincsen kapcsoló. Ott hogyan lehet váltani?
Szia!
Alapvetően az ESP-01 modul működtetése:
Normál módban, azaz program futtatása:
Vcc és GND lábak között 3,3V (ajánlott), Vcc a pozitív.
CH_PD lábat 4,7k ellenállással pozitívra kell húzni. Ez a chip engedélyezés.
RST lábat 4,7k ellenállással pozitívra kell kötni. Alacsony szint esetén reset történik.
A GPIO 0 láb nem lehet alacsony szinten indításkor, mert programozás módba kerül a modul!
Programozás mód:
A fent leírtakhoz képest a GPIO 0 lábat tartsd alacsony szinten egy nyomógombbal. Eközben vidd alacsony szintre a RESET lábat egy másik nyomógomb rövid megnyomásával.
Ezután felengedheted a GPIO 0 lábra kötött nyomógombot is. Mehet a programozás.
Természetesen a fent leírt 4,7k ellenállásokra szükség van, mert a megfelelő logikai szinteket ezek adják egyébként.
A programozás végén a modul szépen újraindul és futtatja a programot. Ennyi.
Hasonlóan, mint ezen a képen, csak ajánlott a GPIO 0-ra is az ellenállás:
ESP-01 bekötése
A GPIO használatával figyelni kell, mert egyes rákötött áramkörök befolyásolhatják a logikai szintjét indításkor. Tapasztatok alapján ide nem célszerű kötni DS18B20 érzékelőt, mert több esetben is programozás módban indul el a modul bekapcsolás után. Kimenetként használva, és egy soros ellenálláson át NPN tranzisztort működtetve szintén gond lehet. Itt inkább egy FET használata célszerűbb. Nekem ez megbízható megoldás volt. A DS18B20 meg mehet a GPIO 2-re. A hozzászólás módosítva: Dec 25, 2017
Hali!
Bővebben: Link
oldal közepe...
Ha bekötöd az RTS+DTR-t akkor nem kell nyomógomb, automatikusan vált prg módba.
Sziasztok
TS-re hogyan lehet egyszerüen felküldeni több adatot?
Allább látható módon most éppen megy de lehet hogy van egy egyszerübb módja is.
SENDTS(id1$ , field1$ , adat1$)
timer 1000000, [next]
[next]
SENDTS(id1$ , field2$ , adat2$)
Ha jól tippelek, akkor ez ESPBasic nyelvű programrészlet.
Szerintem így kellene:
SENDTS(id1$ , field1$ , adat1$ & "&field" &field2$ & "=" adat2$)
Nem tudom kipróbálni.
Igen BASIC de nem megy így.
SENDTS(id1$ , field1$ , str(adat1$) & "&field" &field2$ & "=" str(adat2$))
Ennek mennie kell.
Idézet: „Error at line 56: Failed to reach end of input expression, likely malformed input
Error at line 56: Syntax error
Error at line 56: Halted”
Ezt a hibát dobja, sajnos nem jó.
Jogos, mert kihagytem egy & jelet a jelek szerint.
SENDTS(id1$ , field1$ , str(adat1$) & "&field" &field2$ & "=" & str(adat2$))
Rendben fut, köszönöm
Még rövidebb lehet a kód, ha ezt írod:
Köszi, kerítettem egy ilyen programozót, rákötöttem, feltettem az arduino IDE-t és arra az esp8266 boardot, beállítom neki amit kell elvileg, de már a compile is megáll a 3\4-ed nél, a blynk progrmon is, a tieden is, meg mindenen. Hibát nem ír, csak simán áll.
Valamit kifelejtettem esetleg?
A képen jelenleg nincs rádugva a programozó, de ha rá van se megy tovább.
Bővebben: Link
Én ESP-01 eszközt ilyennel programozom.
Ez stabilizátorról adja a 3,3V feszt, nem fesztültség osztóról, ami 40mA felett beleáll a betonba.
Javaslom komolyabb eszközről adj az ESP-nek 3,3V-t.
|
|