Obsah:
Video: Programovanie Arduino vzduchom (OTA) - Ameba Arduino: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Na trhu je veľa Wi-Fi mikrokontrolérov, mnoho výrobcov baví programovať svoj Wi-Fi mikrokontrolér pomocou Arduino IDE. Jedna z najlepších funkcií, ktoré môže mikrokontrolér Wi-Fi ponúkať, však býva často prehliadaná, a to programovanie a odosielanie kódu na diaľku a bezdrôtovo pomocou funkcie OTA (Over-The-Air).
V tomto návode vám ukážem, ako nastaviť OTA na vašom Wi-Fi mikrokontroléri pomocou všadeprítomného Arduino IDE na Wi-Fi mikrokontroléri Ameba Arduino!
Zásoby
Ameba Arduino x 1
Krok 1: OTA
OTA (Over-The-Air) sa týka mechanizmu online aktualizácie cez internet.
Arduino IDE ponúka funkciu OTA, ktorá sleduje pracovný postup na obrázku vyššie.
i) Arduino IDE hľadá prostredníctvom mDNS zariadenia so službou Arduino IDEOTA v miestnej sieti.
(ii) Pretože je na Amebe spustená služba mDNS, Ameba reaguje na vyhľadávanie mDNS a otvára konkrétny port TCP na pripojenie.
(iii) Užívateľ vyvíja program v Arduino IDE. Po dokončení vyberte sieťový port.
(iv) Kliknite na položku nahrať. Potom Arduino IDE odošle obrázok OTA do Ameba prostredníctvom TCP, Ameba uloží obrázok na konkrétnu adresu a nastaví možnosť zavedenia, aby sa z tohto obrazu nabudúce spustil.
Pracovný tok pozostáva z troch častí: obrazový proces mDNS, TCP a OTA. Podrobnosti súvisiace s mDNS sú popísané v návode mDNS. Programovanie soketu TCP sa používa na prenos obrazu a je už k dispozícii v rozhraní OTA API.
V ďalšej časti budeme diskutovať o tom, ako spracovať obrázok OTA, a predstavíme niekoľko základných znalostí o rozložení pamäte flash Ameba a postupe zavádzania.
Krok 2: Rozloženie pamäte Ameba Flash
Veľkosť flash pamäte Ameba RTL8195A je 2 MB, pohybuje sa od 0x00000000 do 0x00200000. Veľkosť flash pamäte Ameba RTL8710 je však 1 MB. Aby to vyhovovalo použitiu rôznych dosiek, predpokladáme, že rozloženie pamäte flash je 1 MB.
Ako je znázornené na obrázku vyššie, program Ameba zaberá tri časti pamäte flash:
- Zavádzací obrázok :
Teda bootloader. Keď sa Ameba spustí, umiestni bootovací obraz do pamäte a vykoná inicializáciu. Ďalej určuje, kam pokračovať po bootloaderi. Bootloader sa pozrie na adresu OTA a pin na obnovenie v oblasti systémových údajov a určí, ktorý obrázok sa spustí potom. Na konci zavádzača umiestni obrázok do pamäte a pokračuje v jeho spustení.
- Predvolený obrázok 2 :
V tejto časti je umiestnený kód vývojára, adresa začína od 0x0000B000. Prvých 16 bajtov je hlavička obrázka, 0x0000B008 ~ 0x0000B00F obsahuje podpis, ktorý sa používa na overenie, či je obrázok platný. Pole podpisu má dve platné hodnoty na rozlíšenie nového obrázku od starého.
- OTA obrázok :
Údaje v tejto časti sú tiež kódom vývojára. Štandardne začína táto časť pamäte od 0x00080000 (dá sa zmeniť). Hlavnými rozdielmi medzi obrázkom OTA a predvoleným obrázkom 2 sú adresa pamäte flash a hodnota podpisu.
Okrem kódu existuje niekoľko dátových blokov:
- Systémové údaje :
Blok systémových údajov začína od 0x00009000. Existujú dve údaje súvisiace s OTA:
1. Adresa OTA: 4 bajtové údaje od 0x00009000. Informuje o adrese obrázku OTA. Ak je hodnota adresy OTA neplatná (t.j. 0xFFFFFFFF), obrázok OTA do pamäte Flash nemožno načítať správne.
2. Pin na obnovenie: 4 bajtové údaje od 0x00009008. PIN na obnovenie sa používa na určenie, ktorý obrázok (predvolený obrázok 2 alebo obrázok OTA) sa má vykonať, keď sú platné oba obrázky. Ak je hodnota PIN obnovenia neplatná (t.j. 0xFFFFFFFF), nový obrázok sa spustí predvolene.
Systémové údaje budú odstránené, keď nahráme program do Ameba prostredníctvom DAP. To znamená, že adresa OTA bude odstránená a Ameba určí, že neexistuje žiadny obrázok OTA.
- Kalibračné údaje : V tomto bloku sú umiestnené periférne kalibračné údaje. Tieto údaje by spravidla nemali byť vymazané.
Krok 3: Boot Flow
Z obrázku vyššie, Diskutujeme o nasledujúcich scenároch: (i) OTA sa nepoužíva, na nahranie programu použite DAP:
V tejto situácii bootloader skontroluje podpis predvoleného obrázku 2 a adresy OTA. Pretože je adresa OTA odstránená, na spustenie bude vybratý predvolený obrázok 2.
(ii) OTA obrázok sa prenesie do Ameba, adresa OTA je nastavená správne, nie je nastavený pin na obnovenie :
Ameba dostala aktualizovaný obrázok prostredníctvom OTA, podpis predvoleného obrázku 2 by bol nastavený na starý podpis.
Bootloader kontroluje podpis predvoleného obrázku 2 a adresy OTA. Zistí, že adresa OTA obsahuje platný obrázok OTA. Pretože kolík na obnovenie nie je nastavený, vyberie nový obrázok (tj. Obrázok OTA), ktorý sa má vykonať.
(iii) OTA obrázok sa prenesie na Ameba, adresa OTA je nastavená správne, je nastavený pin na obnovenie :
Ameba dostala aktualizovaný obrázok prostredníctvom OTA, podpis predvoleného obrázku 2 by bol nastavený na starý podpis.
Bootloader kontroluje podpis predvoleného obrázku 2 a adresy OTA. Zistí, že adresa OTA obsahuje platný obrázok OTA. Potom skontrolujte hodnotu kolíka obnovy. Ak je pin obnovy pripojený k LOW, spustí sa nový obrázok (tj. OTA obraz). Ak je kolík obnovy pripojený k HIGH, spustí sa starý obrázok (t.j. predvolený obrázok 2).
Krok 4: Príklad
Ak chcete používať funkciu OTA, aktualizujte firmvér DAP na verziu> 0.7 (v0.7 nie je súčasťou dodávky). Štandardný výrobný firmvér DAP je verzia 0.7. Pri aktualizácii firmvéru DAP postupujte podľa týchto pokynov:
Otvorte príklad: „Súbor“-> „Príklady“-> „AmebaOTA“-> „ota_basic“
Vyplňte informácie o ssid a hesle do vzorového kódu pre sieťové pripojenie.
S OTA súvisí niekoľko parametrov:
§ MY_VERSION_NUMBER : V prvej verzii musíme nastaviť adresu OTA a PIN na obnovenie. Pretože tentoraz je odovzdávanie cez USB prvou verziou, túto hodnotu nemusíme meniť.
§ OTA_PORT : Arduino IDE nájde Amebu prostredníctvom mDNS. Ameba oznámi Arduino IDE, že otvára TCP port 5000 a čaká na obrázok OTA.
§ RECOVERY_PIN : Konfigurujte pin používaný na obnovu. Tu používame kolík 18.
Potom použijeme program nahrávania USB do Ameba. Kliknite na Nástroje -> Porty, skontrolujte sériový port, ktorý chcete použiť :
Upozorňujeme, že Arduino IDE používa jeden port na nahrávanie programu a výstupný protokol. Aby sme sa vyhli situácii, že pri použití OTA nemôže byť protokol odoslaný, používame na sledovanie správy denníka namiesto sériového monitora iný terminál sériového portu (napr. Výraz Tera alebo tmel).
Potom kliknite na nahrať a stlačte tlačidlo reset.
V správe denníka:
1. Medzi „===== Zadajte obrázok 1 ====“a „Zadajte obrázok 2 ====“nájdete „Flash Image 2: Addr 0xb000“. To znamená, že Ameba sa rozhodne zaviesť z predvoleného obrázku 2 pri 0xb000.
2. Po „Zadajte obrázok 2 ====“nájdete „Toto je verzia 1“. Toto je správa denníka, ktorú pridávame do náčrtu.
3. Potom, čo je Ameba pripojený k AP a získa IP adresu „192.168.1.238“, aktivuje mDNS a čaká na klienta.
Ďalej upravíme „MY_VERSION_NUMBER“na 2.
Kliknite na „Nástroje“-> „Port“, zobrazí sa zoznam „Sieťové porty“. Nájdite „MyAmeba na adrese 192.168.1.238 (Ameba RTL8195A)“, MyAmeba je názov zariadenia mDNS, ktorý sme nastavili vo vzorovom kóde, a „192.168.1.238“je adresa IP systému Ameba.
Ak nemôžete nájsť sieťový port Ameba, potvrďte prosím:
- či sú váš počítač a Ameba v rovnakej lokálnej sieti?
- Skúste reštartovať Arduino IDE.
- v protokole v Serial Monitor skontrolujte, či je Ameba úspešne pripojený k AP.
Potom kliknite na nahrať. Tentoraz bude program nahraný cez TCP. V termináli denníka môžete vidieť informácie o pripojení klienta.
Keď sa obrázok OTA úspešne stiahne, Ameba sa reštartuje a v protokolovom termináli sa zobrazia nasledujúce protokoly.
- Medzi „===== Zadajte obrázok 1 ====“a „Zadajte obrázok 2 ====“, môžete vidieť správu v protokole „Flash Image 2: Addr 0x80000“. To znamená, že Ameba sa rozhodne spustiť z OTA Image pri 0x80000.
- Po „Enter Image 2 ====“je denníkom „This is version 2“správa, ktorú pridávame do náčrtu.
Ak sa chcete vrátiť k predchádzajúcemu obrázku po stiahnutí obrazu OTA do Ameba, pripojte obnovovací kolík, ktorý sme nastavili v náčrte (tj. Kolík 18), k HIGH (3,3 V) a stlačte reset.
Potom pri zavádzaní bude zvolený predvolený obrázok 2. Stiahnutý obrázok OTA sa neodstráni, akonáhle bude kolík obnovy odpojený od HIGH, spustí sa obrázok OTA.
Tok vývoja sumarizujeme pomocou OTA na nasledujúcom obrázku.
Odporúča:
Programovanie ATmega328 s Arduino IDE pomocou 8MHz kryštálu: 4 kroky
Programovanie ATmega328 s Arduino IDE pomocou 8MHz kryštálu: V tomto Instuctable sa budem zaoberať podrobným sprievodcom programovaním IC ATmega328P (ten istý mikrokontrolér prítomný na Arudino UNO) pomocou Arduino IDE a Arduino UNO ako programátora, aby ste sa stali vlastné Arduino, aby sa vaše projekty
ATtiny85 Nositeľné zariadenie na sledovanie vibrácií, sledovanie a programovanie ATtiny85 s Arduino Uno: 4 kroky (s obrázkami)
ATtiny85 Nositeľné hodinky na sledovanie vibrácií a programovanie ATtiny85 s Arduino Uno: Ako vyrobiť hodinky na sledovanie nositeľnej aktivity? Toto je nositeľný gadget navrhnutý tak, aby vibroval, keď zistí stagnáciu. Trávite väčšinu času pri počítači ako ja? Sedíte hodiny bez toho, aby ste si to uvedomovali? Potom je toto zariadenie
PROGRAMOVANIE AT89S52 pomocou ARDUINO: 4 kroky
PROGRAMOVANIE AT89S52 S POUŽITÍM ARDUINO: In-System Programming (ISP) alias In-Circuit Serial Programming (ICSP) je schopnosť niektorých programovateľných logických zariadení, mikrokontrolérov a ďalších vstavaných zariadení programovať počas inštalácie v kompletnom systéme, a nie tak, že by bolo potrebné chi
Začíname s Esp 8266 Esp-01 s Arduino IDE - Inštalácia dosiek Esp do Arduino Ide a programovanie Esp: 4 kroky
Začíname s Esp 8266 Esp-01 s Arduino IDE | Inštalácia dosiek Esp do Arduino Ide a programovanie Esp: V tomto návode sa naučíme, ako nainštalovať dosky esp8266 do Arduino IDE a ako v nich naprogramovať esp-01 a nahrať kód. Keďže dosky esp sú také populárne, premýšľal som o úprave inštrukcií pre toto a väčšina ľudí má problém
Vzduchom poháňaný samopal Marshmallow: 8 krokov
Vzduchom poháňaný samopal Marshmallow: V tomto návode vám ukážem, ako vyrobiť vzduchom poháňaný samopal. Je to rýchle a jednoduché na výrobu