Sadržaj:
- Pribor
- Korak 1: OTA
- Korak 2: Ameba izgled flash memorije
- Korak 3: Pokretanje sustava
- Korak 4: Primjer
Video: Programiranje Arduina preko zraka (OTA) - Ameba Arduino: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
Na tržištu postoji mnogo Wi-Fi mikrokontrolera, a mnogi proizvođači uživaju u programiranju svog Wi-Fi mikrokontrolera pomoću Arduino IDE-a. Međutim, jedna od najhladnijih značajki koje nudi Wi-Fi mikrokontroler obično se zanemaruje, a to je programiranje i prijenos vašeg koda na daljinu i bežično pomoću OTA (Over-The-Air) funkcije.
U ovom Instructable-u pokazat ću vam kako postaviti OTA na vaš Wi-Fi mikrokontroler koristeći sveprisutni Arduino IDE na Wi-Fi mikrokontroleru Ameba Arduino!
Pribor
Ameba Arduino x 1
Korak 1: OTA
OTA (Over-The-Air) odnosi se na internetski mehanizam nadogradnje putem Interneta.
Arduino IDE nudi OTA značajku koja prati tijek rada na gornjoj slici.
(i) Arduino IDE traži putem mDNS -a uređaje s uslugom Arduino IDEOTA u lokalnoj mreži.
(ii) Budući da mDNS usluga radi na Amebi, Ameba odgovara na mDNS pretraživanje i otvara određeni TCP port za povezivanje.
(iii) Korisnik razvija program u Arduino IDE -u. Kad završite, odaberite mrežni port.
(iv) Kliknite upload. Zatim Arduino IDE šalje OTA sliku Amebi putem TCP -a, Ameba sprema sliku na određenu adresu i postavlja opciju podizanja sustava za pokretanje s ove slike sljedeći put.
Tijek rada sastoji se od tri dijela: mDNS, TCP i OTA proces slike. Pojedinosti vezane uz mDNS opisane su u vodiču za mDNS. Programiranje TCP utičnice koristi se za prijenos slike i već je dostupno u OTA API -ju.
U sljedećem odjeljku raspravljat ćemo o tome kako obraditi OTA sliku, te uvesti neka osnovna znanja o Ameba rasporedu flash memorije i pokretanju.
Korak 2: Ameba izgled flash memorije
Veličina flash memorije Ameba RTL8195A je 2 MB, u rasponu od 0x00000000 do 0x00200000. Međutim, veličina flash memorije Ameba RTL8710 je 1 MB. Kako bismo odgovarali uporabi različitih ploča, pretpostavljamo da je izgled flash memorije 1 MB.
Kao što je prikazano na gornjoj slici, program Ameba zauzima tri dijela flash memorije:
- Slika za pokretanje:
Odnosno, bootloader. Kad se Ameba podigne, sliku za pokretanje stavlja u memoriju i izvršava inicijalizaciju. Nadalje, on određuje kamo nastaviti nakon pokretačkog programa. Bootloader gleda OTA adresu i pin za oporavak u području podataka sustava i određuje koja će se slika nakon toga izvršiti. Na kraju pokretačkog programa sliku stavlja u memoriju i unaprijed izvršava.
- Zadana slika 2:
Kod za programere nalazi se u ovom dijelu, adresa počinje od 0x0000B000. Prvih 16 bajtova je zaglavlje slike, 0x0000B008 ~ 0x0000B00F sadrži Potpis, koji se koristi za provjeru je li slika važeća. Polje za potpis ima dvije valjane vrijednosti za razlikovanje nove slike od stare.
- OTA slika:
Podaci u ovom dijelu također su kôd razvojnog programera. Prema zadanim postavkama, ovaj dio memorije počinje od 0x00080000 (može se promijeniti). Glavne razlike između OTA slike i zadane slike 2 su adresa flash memorije i vrijednost potpisa.
Osim koda, postoje i neki blokovi podataka:
- Podaci sustava:
Blok podataka sustava počinje od 0x00009000. Postoje dva podatka vezana za OTA:
1. OTA adresa: 4 bajta podataka počevši od 0x00009000. Kaže adresu OTA slike. Ako je vrijednost OTA adrese nevažeća (tj. 0xFFFFFFFF), OTA slika u flash memoriji ne može se pravilno učitati.
2. PIN za oporavak : 4 bajta podataka počevši od 0x00009008, PIN za oporavak koristi se za određivanje koje će se slike (zadana slika 2 ili OTA slika) izvršiti kada su obje slike važeće. Ako je vrijednost PIN -a za oporavak nevažeća (tj. 0xFFFFFFFF), nova će se slika prema zadanim postavkama izvršiti.
Podaci sustava bit će uklonjeni kada program prenesemo na Amebu putem DAP -a. Odnosno, OTA adresa će biti uklonjena i Ameba će utvrditi da nema OTA slike.
- Podaci o kalibraciji: Podaci o perifernoj kalibraciji smješteni su u ovaj blok. Obično se ti podaci ne smiju brisati.
Korak 3: Pokretanje sustava
Sa gornje slike, Raspravljamo o sljedećim scenarijima: (i) OTA se ne koristi, upotrijebite DAP za prijenos programa:
U ovoj situaciji bootloader provjerava potpis zadane slike 2 i OTA adresu. Budući da je OTA adresa uklonjena, zadana slika 2 bit će odabrana za izvršavanje.
(ii) OTA slika se prenosi na Amebu, OTA adresa je ispravno postavljena, pin za oporavak nije postavljen :
Ameba je primila ažuriranu sliku putem OTA -e, potpis zadane slike 2 postavio bi se na stari potpis.
Bootloader provjerava potpis zadane slike 2 i OTA adrese. Utvrdit će da OTA adresa sadrži valjanu OTA sliku. Budući da pin za oporavak nije postavljen, on bira novu sliku (tj. OTA sliku) koja će se izvršiti.
(iii) OTA slika se prenosi na Amebu, OTA adresa je ispravno postavljena, pin za oporavak je postavljen :
Ameba je primila ažuriranu sliku putem OTA -e, potpis zadane slike 2 postavio bi se na stari potpis.
Bootloader provjerava potpis zadane slike 2 i OTA adrese. Utvrdit će da OTA adresa sadrži valjanu OTA sliku. Zatim provjerite vrijednost pina za oporavak. Ako je pin za oporavak spojen na LOW, nova će se slika (tj. OTA slika) izvršiti. Ako je pin za oporavak spojen na HIGH, izvršit će se stara slika (tj. Zadana slika 2).
Korak 4: Primjer
Da biste koristili OTA značajku, nadogradite DAP firmver na verziju> 0.7 (v0.7 nije uključen). Tvornički zadani DAP firmver je verzija 0.7. Slijedite upute za nadogradnju DAP firmvera:
Otvorite primjer: "Datoteka" -> "Primjeri" -> "AmebaOTA" -> "ota_basic"
Ispunite ssid i lozinku u uzorku koda za mrežnu vezu.
Postoje neki parametri vezani za OTA:
§ MY_VERSION_NUMBER: U prvoj verziji moramo postaviti OTA adresu i pin za oporavak. Budući da je ovaj put učitavanje putem USB -a prva verzija, ne moramo mijenjati ovu vrijednost.
§ OTA_PORT: Arduino IDE će pronaći Amebu putem mDNS -a. Ameba će reći Arduinu IDE -u da otvara TCP port 5000 kako bi čekao OTA sliku.
§ RECOVERY_PIN: Konfigurirajte pin koji se koristi za oporavak. Ovdje koristimo pin 18.
Zatim koristimo USB prijenosni program za Amebu. Pritisnite Alati -> Priključci, provjerite serijski port koji ćete koristiti:
Imajte na umu da Arduino IDE koristi jedan port za upload program i outputlog. Kako bismo izbjegli situaciju da se zapisnik ne može ispisati kada koristimo OTA, umjesto serijskog monitora koristimo drugi terminal serijskog porta (npr. Tera izraz ili kit) za gledanje poruke dnevnika.
Zatim kliknite upload i pritisnite gumb za resetiranje.
U poruci dnevnika:
1. Između “===== Enter Image 1 ====” i “Enter Image 2 ====” možete pronaći “Flash Image 2: Addr 0xb000”. To znači da se Ameba odlučuje pokrenuti sa zadane slike 2 na 0xb000.
2. Nakon “Enter Image 2 ====”, možete pronaći “This is version 1”. Ovo je poruka dnevnika koju dodajemo u skicu.
3. Nakon što se Ameba spoji na AP i dobije IP adresu “192.168.1.238”, aktivira mDNS i čeka klijenta.
Zatim mijenjamo "MY_VERSION_NUMBER" u 2.
Pritisnite "Alati" -> "Port", možete vidjeti popis "Mrežni portovi". Pronađite "MyAmeba na 192.168.1.238 (Ameba RTL8195A)", MyAmeba je naziv mDNS uređaja koji smo postavili u uzorku koda, a "192.168.1.238" je IP adresa Amebe.
Ako ne možete pronaći mrežni port Ameba, potvrdite:
- jesu li vaše računalo i Ameba u istoj lokalnoj mreži?
- pokušajte ponovno pokrenuti Arduino IDE.
- provjerite poruku dnevnika u serijskom monitoru da vidite je li Ameba uspješno spojena na pristupnu točku.
Zatim kliknite upload. Ovaj put program će se učitati putem TCP -a. U terminalu dnevnika možete vidjeti podatke o povezivanju klijenta.
Kada se OTA slika uspješno preuzme, Ameba će se ponovno pokrenuti i sljedeći dnevnik će se prikazati na terminalu dnevnika.
- Između “===== Enter Image 1 ====” i “Enter Image 2 ====” možete vidjeti poruku dnevnika “Flash Image 2: Addr 0x80000”. To znači da se Ameba odlučuje pokrenuti s OTA slike na 0x80000.
- Nakon “Enter Image 2 ====”, dnevnik “This is version 2” poruka je koju dodajemo u skicu.
Za oporavak na prethodnu sliku nakon što je OTA slika preuzeta na Amebu, spojite pin za oporavak koji smo postavili na skici (tj. Pin 18) na HIGH (3.3V) i pritisnite reset.
Tada će se pri pokretanju izabrati Zadana slika 2. Imajte na umu da se preuzeta OTA slika ne briše, nakon što se pin za oporavak odvoji od HIGH, OTA slika će se izvršiti.
Na sljedećoj slici sažimamo razvojni tijek koristeći OTA.
Preporučeni:
Iscrtavanje grafikona u stvarnom vremenu na Androidu od Arduina preko HC-05: 3 koraka
Iscrtavanje grafikona u stvarnom vremenu na Androidu od Arduina preko HC-05: Hej, evo vodiča kako iscrtati grafikon vrijednosti u stvarnom vremenu iz mikrokontrolera, poput Arduina, u aplikaciju. Koristi Bluetooth modul poput HC-05 da djeluje kao uređaj za razmjenu poruka za prijenos i primanje podataka između Ar
Programiranje Arduina pomoću drugog Arduina za prikaz teksta koji se pomiče bez biblioteke: 5 koraka
Programiranje Arduina pomoću drugog Arduina za prikaz teksta koji se pomiče bez biblioteke: Sony Spresense ili Arduino Uno nisu toliko skupi i ne zahtijevaju puno energije. Međutim, ako vaš projekt ima ograničenje snage, prostora ili čak proračuna, razmislite o upotrebi Arduino Pro Mini. Za razliku od Arduino Pro Micro, Arduino Pro Mi
Monitor kvalitete zraka s MQ135 i vanjskim senzorom temperature i vlažnosti preko MQTT: 4 koraka
Monitor kvalitete zraka s MQ135 i vanjskim senzorom temperature i vlažnosti preko MQTT: Ovo je u svrhu ispitivanja
Otkrivanje onečišćenja zraka + filtriranje zraka: 4 koraka
Otkrivanje onečišćenja zraka + filtriranje zraka: Učenici (Aristobulus Lam, Victor Sim, Nathan Rosenzweig i Declan Loges) njemačke švicarske međunarodne škole radili su s osobljem MakerBay -a na stvaranju integriranog sustava za mjerenje onečišćenja zraka i učinkovitosti filtriranja zraka. Ovaj
HRV (kućni izmjenjivač zraka) Arduino kontroler s ekonomizatorom zraka: 7 koraka (sa slikama)
HRV (Kućni izmjenjivač zraka) Arduino kontroler s ekonomizatorom zraka: HRV Arduino kontroler s ekonomizatorom zrakaMoja povijest s ovim projektom je da živim u Minnesoti i moja je ploča pečena na mom LifeBreath 155Max HRV -u. Nisam htio platiti 200 dolara za novu. Uvijek sam htio nešto s grijehom ekonomizatora zraka