Založen: Oct 30, 2006 Příspěvky: 2310 Bydliště: Poblíž Zlína
Zaslal: pá prosinec 27 2019, 13:52 Předmět: ESP8266 (ESP-01)WiFi Manager a posílání teploty
Tady jsem našel WiFi Manager https://www.arduinoslovakia.eu/blog/2017/7/esp8266---ukladanie-hesiel-pomocou-wifimanager?lang=cs
Já jsem to upravil takto označeno ************* je to dobře? zatím nevím jak předávat SSID a PASSWORD ale to zatím neřeším
GPIO0 je na ESP-01 je při programování musí být na LOW ,jak zapojit tlačítko mám tam dát jako Pull UP odpor na zem nebo na 3V3 nebo to je zapnuto tímto pinMode(TRIGGER_PIN, INPUT_PULLUP)? díky
void loop() {
// put your main code here, to run repeatedly:
delay(30000); // Měření a odesílání teploty probíhá v intervalu cca 30s
float temp;
DS18B20.requestTemperatures(); // Získání informace o teplotě teploty
temp = DS18B20.getTempCByIndex(0);
Serial.print("Temperature: ");
Serial.println(temp);
char charVal[12];
dtostrf(temp, 8, 2, charVal); // Konverze vyčtené teploty do stringu
// (hodnota, počet míst, počet desetinných míst,
// umístění stringu)
if(scnd){
Serial.print("connecting to ");
Serial.println(host);
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
String url = "/update?key="; // Vytvoření URL pro odeslání informace o teplotě
url += APIkey;
url += "&field1=";
url += charVal;
Serial.println();
while (client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line); // tisk informací přijatých ze serveru
}
Serial.println();
Serial.println("connection completed"); // potvrzení ukončení odesílání
Serial.println();
Serial.println();
}
else
{
Serial.println("uncorrect first temperatue");
Serial.println(); // Ošetření nesprávnosti první změřené hodnoty po připojení
scnd=true; // k napájení
}
}
Založen: Jul 24, 2014 Příspěvky: 655 Bydliště: Ano, mam
Zaslal: ne prosinec 29 2019, 14:56 Předmět:
Když jsem přežraný salátu a ryb, tak mi to nepřemýšlí, ale jen první postřeh.
citace:
GPIO0 je na ESP-01 je při programování musí být na LOW.
Takže víš, že když připojíš na GPIO0 LOW, přepne se ti to do stavu programovaní.
A níže máš if(digitalRead(TRIGGER_PIN) == LOW)
Co se asi stane, když připojíš na ten pin GPIO0 LOW a resetneš to?
Ale možna se mylim
Založen: Oct 30, 2006 Příspěvky: 2310 Bydliště: Poblíž Zlína
Zaslal: ne prosinec 29 2019, 15:21 Předmět:
já vím že se to asi nastaví na programovacího módu ale u toho modelu ESP-01 nemáš na výběr na GPIO2 je připojené čidlo DS18B20,já bych se nejraději obešel bez tlačítka ale jak to udělat aby si mohl vynutit kdykoliv skočit do módu AP? díky
Založen: Oct 30, 2006 Příspěvky: 2310 Bydliště: Poblíž Zlína
Zaslal: ne prosinec 29 2019, 17:30 Předmět:
Můžeš mi poskytnou upravený příklad včetně těch proměnných ssid, password o které ve své podstatě jde uložení a pak následné dosazení do toho měřiče teploty už na tím trávím mnoho času a mám to u PC jako vrabčí hnízdo díky předem
V tom odkazu je změna GPIO a to jde?
ja to mam riesene tak, ze po zapnuti sa spusti rezim ap+ klient. ked sa pripoji na klienta, tak ap vypne. ak pocas behu sa odpoji od wifi automaticky opat nabieha do stavu ap+ klient. teda bud je normalne pripojeny na wifi, alebo pripojenie zlyhalo a je v rezime ap a vtedy sa viem nan pripojit a nastavit.
momentalne nemam tie zdrojaky pri sebe, ale je to par riadkov a da sa to vygooglit. len mala pripomienka, ak je tam delay 30 sekund, tak cely program stoji, teda sa nan neda pripojit. ja to riesim tak, ze si ukladam cas, a ten kontrolujem, ci uz je viac ako 30 sekund. a vtedy viem jednak reagovat hned na stav wifi a aj dokazem obsluhovat stranku _________________ No vidis, a tak si sa bal
Založen: Jan 13, 2007 Příspěvky: 15512 Bydliště: Olomouc
Zaslal: po prosinec 30 2019, 10:55 Předmět:
Přitom by stačilo změřenou hodnotu dát do pomocné proměnné (na začátku nulové) a potom ji s ní porovnávat dokud se nezmění anebo až neuběhne nějaký minimální čas a potom teprve posílat.
Založen: Oct 30, 2006 Příspěvky: 2310 Bydliště: Poblíž Zlína
Zaslal: po prosinec 30 2019, 11:08 Předmět:
něco jako takto
kód:
if(millis()-time > 30000)
{
float temp;
DS18B20.requestTemperatures(); // Získání informace o teplotě teploty
temp = DS18B20.getTempCByIndex(0);
Serial.print("Temperature: ");
Serial.println(temp);
char charVal[12];
dtostrf(temp, 8, 2, charVal); // Konverze vyčtené teploty do stringu
// (hodnota, počet míst, počet desetinných míst,
// umístění stringu)
if(scnd){
Serial.print("connecting to ");
Serial.println(host);
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
String url = "/update?key="; // Vytvoření URL pro odeslání informace o teplotě
url += APIkey;
url += "&field1=";
url += charVal;
Serial.println();
while (client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line); // tisk informací přijatých ze serveru
}
Serial.println();
Serial.println("connection completed"); // potvrzení ukončení odesílání
Serial.println();
Serial.println();
}
else
{
Serial.println("uncorrect first temperatue");
Serial.println(); // Ošetření nesprávnosti první změřené hodnoty po připojení
scnd=true; // k napájení
}
}}
ale předáván těch parametrů SSID a heslem mezi WiFiManagerem a vlastním odesíláním teploty vůbec nevím jak řešit ,WiFiManager to někde uloží v paměti asi v eeprom po resetu ESP najede vlastní program co posílá teplotu na server ale musí někde najít ty přístupové parametry co uložil ten WiFiManager v eeprom aby se přihlásil k wifi síti
// Send web page with input fields to client
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send_P(200, "text/html", index_html);
});
// Send a GET request to <ESP_IP>/get?input1=<inputMessage>
server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) {
String inputMessage;
String inputParam;
// GET input1 value on <ESP_IP>/get?input1=<inputMessage>
if (request->hasParam(PARAM_INPUT_1)) {
inputMessage = request->getParam(PARAM_INPUT_1)->value();
inputParam = PARAM_INPUT_1;
}
// GET input2 value on <ESP_IP>/get?input2=<inputMessage>
else if (request->hasParam(PARAM_INPUT_2)) {
inputMessage = request->getParam(PARAM_INPUT_2)->value();
inputParam = PARAM_INPUT_2;
}
// GET input3 value on <ESP_IP>/get?input3=<inputMessage>
else if (request->hasParam(PARAM_INPUT_3)) {
inputMessage = request->getParam(PARAM_INPUT_3)->value();
inputParam = PARAM_INPUT_3;
}
else {
inputMessage = "No message sent";
inputParam = "none";
}
Serial.println(inputMessage);
request->send(200, "text/html", "HTTP GET request sent to your ESP on input field ("
+ inputParam + ") with value: " + inputMessage +
"<br><a href=\"/\">Return to Home Page</a>");
});
server.onNotFound(notFound);
server.begin();
}
void loop() {
}
ale já potřebuji aby to vystupovalo jako AP abych si jeho jméno mohl vyvolat na telefonu a přihlásit se k tomu a tam do formuláře zadat ty údaje k té které síti bych to potřeboval nehledě k tomu ten příklad neřeší uložení údajů díky
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.