Sadržaj:
- Supplies
- Korak 1: OTA
- Korak 2: Ameba izgled fleš memorije
- Korak 3: Pokretanje sistema
- Korak 4: Primjer
Video: Programiranje Arduina preko zraka (OTA) - Ameba Arduino: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Na tržištu postoji mnogo Wi-Fi mikrokontrolera, mnogi proizvođači uživaju u programiranju svog Wi-Fi mikrokontrolera koristeći Arduino IDE. Međutim, jedna od najhladnijih značajki koje nudi Wi-Fi mikrokontroler obično se zanemaruje, a to je programiranje i postavljanje vašeg koda na daljinu i bežično pomoću OTA (Over-The-Air) funkcije.
U ovom Instructable-u ću vam pokazati kako postaviti OTA na vašem Wi-Fi mikrokontroleru koristeći sveprisutni Arduino IDE na Wi-Fi mikrokontroleru Ameba Arduino!
Supplies
Ameba Arduino x 1
Korak 1: OTA
OTA (Over-The-Air) odnosi se na internetski mehanizam nadogradnje putem Interneta.
Arduino IDE nudi OTA funkciju koja prati tijek rada na gornjoj slici.
(i) Arduino IDE traži putem mDNS -a uređaje s Arduino IDEOTA uslugom u lokalnoj mreži.
(ii) Pošto se mDNS usluga izvodi na Amebi, Ameba odgovara na mDNS pretragu i otvara određeni TCP port za povezivanje.
(iii) Korisnik razvija program u Arduino IDE -u. Kada završite, odaberite mrežni port.
(iv) Kliknite na upload. Zatim Arduino IDE šalje OTA sliku Amebi putem TCP -a, Ameba sprema sliku na određenu adresu i postavlja opciju pokretanja za pokretanje s ove slike sljedeći put.
Tok rada sastoji se od tri dijela: mDNS, TCP i OTA proces slike. Detalji vezani za mDNS opisani 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 ćemo raspravljati o tome kako obraditi OTA sliku i predstaviti osnovno znanje o Ameba fleš memorijskom rasporedu i toku pokretanja.
Korak 2: Ameba izgled fleš 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 upotrebi 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. Kada se Ameba podigne, postavlja sliku za pokretanje u memoriju i vrši inicijalizaciju. Nadalje, on određuje gdje nastaviti nakon pokretačkog programa. Bootloader gleda OTA adresu i pin za oporavak u području sistemskih podataka i određuje koja će se slika nakon toga izvršiti. Na kraju pokretačkog programa, sliku stavlja u memoriju i slijedi njeno izvršenje.
- 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 važeće vrijednosti za razlikovanje nove slike od stare.
- OTA slika:
Podaci u ovom dijelu također su kôd za programere. 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:
- Sistemski podaci:
Sistemski blok podataka počinje od 0x00009000. Postoje dva podatka vezana za OTA:
1. OTA adresa: 4 -bajtni podaci koji počinju od 0x00009000. Kaže adresu OTA slike. Ako vrijednost OTA adrese nije važ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 se koristi za određivanje koje slike (zadana slika 2 ili OTA slika) da se izvrši 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.
Sistemski podaci bit će uklonjeni kada program učitamo u 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 bi trebali brisati.
Korak 3: Pokretanje sistema
Sa gornje slike, Raspravljamo o sljedećim scenarijima: (i) OTA se ne koristi, koristite DAP za učitavanje 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. Otkriće da OTA adresa sadrži važeću 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. Otkriće da OTA adresa sadrži važeću OTA sliku. Zatim provjerite vrijednost pina za oporavak. Ako je pin za oporavak spojen na LOW, nova slika (tj. OTA slika) će se 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 funkciju, nadogradite DAP firmver na verziju> 0.7 (v0.7 nije uključena). 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 upload program za Amebu. Pritisnite Alati -> Portovi, provjerite serijski port za upotrebu:
Imajte na umu da Arduino IDE koristi jedan port za upload program i outputlog. Da bismo izbjegli situaciju da se dnevnik ne može ispisati kada koristimo OTA, umjesto serijskog monitora koristimo druge terminale serijskog porta (npr. Tera termin ili kit) za gledanje poruke dnevnika.
Zatim kliknite na upload i pritisnite dugme za reset.
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 Ameba odlučuje pokrenuti sistem 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" na 2.
Kliknite "Alati" -> "Port", vidjet ćete 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š računar i Ameba u istoj lokalnoj mreži?
- pokušajte ponovo pokrenuti Arduino IDE.
- provjerite poruku dnevnika u serijskom monitoru da vidite je li Ameba uspješno povezana s pristupnom tačkom.
Zatim kliknite na upload. Ovaj put program će biti učitan putem TCP -a. U terminalu dnevnika možete vidjeti informacije 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 Ameba odlučuje pokrenuti s OTA slike na 0x80000.
- Nakon “Enter Image 2 ====”, dnevnik “This is version 2” je poruka koju dodajemo u skicu.
Za oporavak na prethodnu sliku nakon što je OTA slika preuzeta na Amebu, povežite pin za oporavak koji smo postavili na skici (tj. Pin 18) na HIGH (3.3V) i pritisnite reset.
Tada će pri pokretanju biti odabrana 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 rezimiramo tok razvoja koristeći OTA.
Preporučuje se:
Senzor kvalitete zraka pomoću Arduina: 4 koraka
Senzor kvalitete zraka pomoću Arduina: U ovom ćemo članku naučiti kako izgraditi jednostavan, ali koristan senzor kvalitete zraka. Koristit ćemo SGP30 senzor zajedno s Piksey Pico -om, iako će skica raditi s gotovo svim Arduino kompatibilnim pločama. Gornji video vam govori kroz
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 pomicanja teksta 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 za potrebe testiranja
Otkrivanje zagađenja zraka + filtriranje zraka: 4 koraka
Otkrivanje zagađ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 sistema mjerenja zagađenja zraka i efikasnosti filtriranja zraka. Ovo
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 ploča je pržena na mom LifeBreath 155Max HRV -u. Nisam htio platiti 200 dolara za novu. Uvijek sam želio nešto s grijehom ekonomizatora zraka