Orodha ya maudhui:
- Hatua ya 1: Unachohitaji
- Hatua ya 2: Unda Hifadhi ya Kushikilia Firmwares Binary
- Hatua ya 3: Unda Binaries
- Hatua ya 4: Unda Mtiririko wa Seva
- Hatua ya 5: Ongeza Logic ya Seva
- Hatua ya 6: Ongeza Nambari kwenye Mchoro ili Uombe Sasisho
- Hatua ya 7: Mwishowe, Anzisha Sasisho
Video: Sanidi ESP8266 Server ya Kusasisha Moja kwa Moja: Hatua 7
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
Watu wengi sasa wanatumia ESP8266 katika sura zake nyingi (ESP-01S, Wemos D1, NodeMCU, Sonoff n.k) kwa mifumo ya kiotomatiki ya nyumbani. Ukiandika nambari yako mwenyewe (kama mimi) kusasisha kila moja kando hata kupitia OTA (hewani) inachosha kidogo.
Mfumo wangu mwenyewe, kwa mfano una 8x ESP-01S, 6x Wemos D1, 4x Sonoff Basic 12x Sonoff S20, 2x Sonoff SV na NodeMCU ambayo inashiriki msingi wa kawaida wa nambari, kwa hivyo hiyo ni vifaa 33 katika yote kusasisha ninapofanya nambari rahisi badilika.
Lakini kuna njia rahisi: "Sasisha seva". Msingi bora wa Arduino IDE + ESP8266 una maktaba ya kufanya kazi nyingi (ESP8266httpUpdate), lakini unahitaji kujua jinsi ya kuweka seva yako mwenyewe ili iweze kufanya kazi.
Hii inayoweza kufundishwa inakuonyesha jinsi ya kutumia seva ya NODE-RED, lakini mantiki hiyo hiyo inatumika kwa teknolojia yoyote ya seva unayochagua k.v. Apache + PHP nk
Hatua ya 1: Unachohitaji
- Arduino IDE
- Msingi wa ESP8266
- Bodi yoyote ya ESP8266 dev iliyo na 1M au RAM zaidi ya flash
- Seva ya Wavuti (hata Risiberi mnyenyekevu atafanya - Ndio ninayotumia)
- (hiari) mkspiffs chombo ikiwa unataka kusasisha kiotomatiki picha ya mfumo wa faili ya SPIFFS
Hatua ya 2: Unda Hifadhi ya Kushikilia Firmwares Binary
Kwenye seva yangu, nina folda inayoitwa / home / pi / trucFirmware ambayo inashikilia vifaa anuwai vya vifaa na picha za SPIFFS
Ninadumisha binary tofauti kwa kila aina ya maunzi (kutoka kwa faili moja ya chanzo na # mafafanuzi machache) na wakati toleo jipya liko tayari ninatumia amri ya menyu ya Arduino IDE "mchoro / Hamisha iliyokusanywa ya Kibinadamu" kwa kila kifaa lengwa. Kumbuka kuwa hata ingawa kuna aina 5 za vifaa, kuna binari mbili tu za SPIFFS: 1M na toleo la 4M - lililojengwa na zana ya mkspiffs - kwani vifaa vyote vina 1M au 4M flash.
Hatua ya 3: Unda Binaries
Kutumia mchoro wa chaguo la menyu ya Arduino IDE / Mchapishaji wa Usafirishaji ulioumbwa wa Usafirishaji, unda firmware ambayo itapakiwa kwenye kifaa ikiiomba kutoka kwa seva ya sasisho.
Ikiwa unahitaji binary ya SPIFFS utahitaji kusanikisha zana ya mkspiffs.
Mara tu unayo, kujenga binary ya SPIFFS ni rahisi. Nina faili ya kundi la mstari mmoja kwa toleo la 1M ambalo linachukua nambari ya toleo kama parameta (% 1)
mkspiffs -c data / spiffs_% 1_1M.bin
na nyingine kwa toleo la 4M:
mkspiffs -p 256 -b 8192 -s 0x0FB000 -c data / spiffs_% 1_4M.bin
Mimi kisha kunakili binaries zote zilizokusanywa na faili za SPIFFS.binary juu ya hazina
Hatua ya 4: Unda Mtiririko wa Seva
Ninatumia RED-RED, lakini mantiki rahisi itakuwa sawa kwenye teknolojia / lugha yoyote ya seva.
a) Fafanua url ambayo itasikiliza ombi la ESP8266httpUpdate. My raspberryPi serevr iko mnamo 192.168.1.4 na inasikiliza kwenye bandari ya 1880 ya / kusasisha na aina ya vifaa vilivyowekwa. Kwa hivyo ikiwa nitaomba binary kwa Wemos D1 Mini, url inaishia kama:
192.168.1.4:1880/update/d1_mini
b) Unda nambari ya kushughulikia mantiki ifuatayo:
ESP8266: "Hi, ninaendesha toleo la firmware a.b.c, unayo toleo jipya zaidi?" Seva: "Acha nione… ah ndio nina a.b.d - inakuja …"
Ikiwa toleo jipya zaidi lipo seva huituma kama mzigo wa data ya binary kwenye jibu la http. Darasa la ESP8266httpUpdate hufanya sehemu ngumu ya kunakili binary kwenye kumbukumbu, kubadilisha anwani ya boot ya firmware kwa nambari mpya kuliko (ikiwa imeombwa) kuwasha upya kifaa ili kuendesha nambari mpya.
Ikiwa kwa upande mwingine hakuna toleo la juu zaidi, linajibu kwa kosa la http 304 ambalo linasema kwa ufanisi: "Sina chochote kwako" na nambari yako inaendelea kuendeshwa kama kawaida.
Hatua ya 5: Ongeza Logic ya Seva
Node ya kwanza katika mtiririko "husikiliza" kwa ombi la http kwa url https://192.168.1.4: 1880 / sasisha na aina ya kifaa kilichoongezwa. Inapita hii kwenda kwa "Tengeneza njia ya utaftaji" node ya kazi ambayo ina nambari ifuatayo ya javascript:
aina ya msg.reype = msg.req.params.type; var h = msg.req.headers; msg.version = h ["x-esp8266-toleo"];
msg.mode = h ["x-esp8266-mode"];
ikiwa (msg.mode == "sketch") {msg.payload = "/ home / pi / trucFirmware / *. ino." + msg.type + ". bin"; } mwingine {var sz = h ['x-esp8266-chip-size']; msg.payload = "/ home / pi / trucFirmware / spiffs _ * _" + (sz / 1048576) + "M.bin"; } kurudi msg;
Hii inaweka njia inayofaa na kadi ya mwitu kwa kazi ya sys inayofuata, ambayo inaendesha tu
ls - r
Pato hulishwa kwa nodi ya kazi ya "Linganisha matoleo":
var f = msg.payload.split ("\ n") [0]; msg.filename = f;
ikiwa (msg.mode == "mchoro") {
f = f. mahali ("/ home / pi / trucFirmware / truc_", ""); f = f. mahali (". ino." + msg.type + ". bin", ""); } mwingine {f = f. mahali ("/ home / pi / trucFirmware / spiffs_", ""); f = f. mahali (/ _ / dM \.bin /, ""); }
ikiwa (msg.version <f) {
node.onya ("kuboresha inahitajika");
node.warn ("itarudi" + msg.filename); kurudi msg; } nodi.onya ("hakuna sasisho"); Msimbo wa Hali = 304; msg.payload = ;
kurudi msg;
Node ya kubadili kisha inahakikisha kuwa ujumbe 304 "hakuna sasisho linalohitajika" unatumwa au binary mpya halisi inarejeshwa na kurudishwa kwa kifaa.
Hatua ya 6: Ongeza Nambari kwenye Mchoro ili Uombe Sasisho
Mchoro unahitaji kuingiza nambari ifuatayo ndani yake ili iweze kusasisha kiatomati wakati ujao utakapoongeza nambari ya toleo:
# pamoja
#fafanua TRUC_VERSION "0_4_99"
#fafanua SPIFFS_VERSION "0_5_0"
// THIS_DEVICE imewekwa mapema kulingana na anuwai ya kukusanya-wakati // ambazo hatimaye hufafanua aina ya hw, n.k. #fafanua HII_DEVICE "d1_mini" const char * updateUrl = "https://192.168.1.4:1880/update/" THIS_DEVICE; // hii ni seva yangu ya Risiberi Pi, 1880 ni bandari ya NODE-RED chaguo-msingi // / sasisho ni url niliyochagua kwa seva "kuisikiliza", ikifuatiwa na aina ya kifaa… bool actualUpdate (bool sketch = false) {String msg; t_httpUpdate_return ret; ESPhttpUpdate.rebootOnUpdate (uwongo); ikiwa (mchoro) {ret = ESPhttpUpdate.update (updateUrl, TRUC_VERSION); // **************** Huu ndio mstari ambao "hufanya biashara"} mwingine {ret = ESPhttpUpdate.updateSpiffs (updateUrl, SPIFFS_VERSION); } ikiwa (ret! = HTTP_UPDATE_NO_UPDATES) {ikiwa (ret == HTTP_UPDATE_OK) {
Serial.printf ("SASISHA KUFANIKIWA");
kurudi kweli; } mwingine {if (ret == HTTP_UPDATE_FAILED) {
Serial.printf ("Kuboresha Imeshindwa");
}}} kurudi uwongo; }
Hatua ya 7: Mwishowe, Anzisha Sasisho
Wakati wa boot, au labda kwa kujibu ujumbe wa MQTT (kama mimi) tumia nambari ifuatayo:
ikiwa (_UhalisiUpdate (kweli)) kuanza kwa ESP ();
// au kwa SPIFFS…
ikiwa (_UhalisiUpdate (uwongo)) kuanza kwa ESP ();
Kifaa kitajisasisha na kuwasha tena nambari mpya kutoka kwa seva. Ni rahisi sana kwangu kuliko kusasisha vifaa 33 vya mikono!
Maelezo mengi muhimu zaidi juu ya Uendeshaji wa Nyumbani, IOT na programu ya ESP8266 inaweza kupatikana kwenye Blogi yangu
Ilipendekeza:
Kujifunga kwa Moja kwa Moja kwa Mchezo Mtendaji wa Mchezo wa Gofu wa 3: Hatua 12 (na Picha)
Kujifunga kwa Moja kwa Moja kwa Mchezo Mtendaji wa Mchezo wa Gofu wa 3: Hivi majuzi nilichapisha Inayoweza kufundishwa juu ya kujenga mchezo wa kufurahisha unaoweza kubeba na unaoweza kuchezwa ndani na nje. Inaitwa "Executive Par 3 Golf Game". Nilitengeneza kadi ya alama ya kuiga kurekodi kila alama ya wachezaji kwa "mashimo" 9. Kama ilivyo
Fanya Viwanja Vizuri kutoka kwa Takwimu za Arduino za Moja kwa moja (na Hifadhi Takwimu kwa Excel): Hatua 3
Tengeneza Viwanja Vizuri kutoka kwa Takwimu za Arduino za Moja kwa Moja (na Hifadhi Takwimu kwa Excel): Sote tunapenda kucheza na kazi yetu ya P … lotter katika IDE ya Arduino. Walakini, wakati inaweza kuwa na faida kwa matumizi ya msingi, data inafutwa zaidi vidokezo vinaongezwa na sio kupendeza macho. Mpangaji wa Arduino IDE hana
Moja kwa moja 4G / 5G HD Kutiririka Video Kutoka kwa DJI Drone kwa Ucheleweshaji wa Chini [Hatua 3]: Hatua 3
Moja kwa moja Video ya 4G / 5G ya Utiririshaji wa HD Kutoka kwa DJI Drone kwa Ucheleweshaji wa Chini [Hatua 3]: Mwongozo ufuatao utakusaidia kupata mitiririko ya video yenye ubora wa HD kutoka karibu na drone yoyote ya DJI. Kwa msaada wa Programu ya Simu ya FlytOS na Maombi ya Wavuti ya FlytNow, unaweza kuanza kutiririsha video kutoka kwa drone
Mlishaji wa Kiwanda cha Moja kwa Moja cha WiFi Pamoja na Hifadhi - Usanidi wa Kilimo cha Ndani / Nje - Mimea ya Maji Moja kwa Moja na Ufuatiliaji wa Mbali: Hatua 21
Kilima cha Kiwanda cha Kiotomatiki cha WiFi kilicho na Hifadhi - Kuweka Kilimo cha ndani / Nje - Mimea ya Maji Moja kwa Moja na Ufuatiliaji wa Mbali: Katika mafunzo haya tutaonyesha jinsi ya kuanzisha mfumo wa kulisha mimea ya ndani / nje ambayo hunyunyizia mimea moja kwa moja na inaweza kufuatiliwa kwa mbali kutumia jukwaa la Adosia
Kilishi cha Mbwa Raspberry Pi Moja kwa Moja na Kijirusha Video Moja kwa Moja: Hatua 3
Feeder ya mbwa ya Raspberry Pi moja kwa moja & Kijirisho cha Moja kwa Moja cha Video: Hii ni Raspberry PI yangu inayowezesha feeder ya mbwa moja kwa moja. Nilikuwa nikifanya kazi kutoka asubuhi 11am hadi 9pm. Mbwa wangu huenda wazimu ikiwa sikumlisha kwa wakati. Iliyotafutwa google kununua feeders moja kwa moja ya chakula, hazipatikani India na kuagiza ghali op