Daftar Isi:

Pemrograman Arduino Over the Air (OTA) - Ameba Arduino: 4 Langkah
Pemrograman Arduino Over the Air (OTA) - Ameba Arduino: 4 Langkah

Video: Pemrograman Arduino Over the Air (OTA) - Ameba Arduino: 4 Langkah

Video: Pemrograman Arduino Over the Air (OTA) - Ameba Arduino: 4 Langkah
Video: Over The Air (OTA) ESP8266 Programming 2024, November
Anonim
Pemrograman Arduino Over the Air (OTA) - Ameba Arduino
Pemrograman Arduino Over the Air (OTA) - Ameba Arduino

Ada banyak mikrokontroler Wi-Fi di luar sana di pasaran, banyak pembuat menikmati pemrograman mikrokontroler Wi-Fi mereka menggunakan Arduino IDE. Namun, salah satu fitur paling keren yang ditawarkan mikrokontroler Wi-Fi cenderung diabaikan, yaitu memprogram dan mengunggah kode Anda dari jarak jauh dan nirkabel menggunakan fungsi OTA (Over-The-Air).

Dalam Instruksi ini, saya akan menunjukkan kepada Anda cara mengatur OTA pada mikrokontroler Wi-Fi Anda menggunakan Arduino IDE yang ada di mikrokontroler Wi-Fi Arduino Ameba!

Perlengkapan

Amoeba Arduino x 1

Langkah 1: OTA

OTA
OTA

OTA (Over-The-Air) mengacu pada mekanisme peningkatan online melalui Internet.

Arduino IDE menawarkan fitur OTA, yang mengikuti alur kerja pada gambar di atas.

(i) Arduino IDE mencari melalui mDNS untuk perangkat dengan layanan Arduino IDEOTA di jaringan lokal.

(ii) Karena layanan mDNS berjalan di Ameba, Ameba merespons pencarian mDNS dan membuka port TCP khusus untuk koneksi.

(iii) Pengguna mengembangkan program di Arduino IDE. Setelah selesai, pilih port jaringan.

(iv) Klik unggah. Kemudian Arduino IDE mengirimkan gambar OTA ke Ameba melalui TCP, Ameba menyimpan gambar ke alamat tertentu dan menetapkan opsi boot untuk boot dari gambar ini lain kali.

Alur kerja terdiri dari tiga bagian: proses gambar mDNS, TCP dan OTA. Detail terkait mDNS dijelaskan dalam tutorial mDNS. Pemrograman soket TCP digunakan dalam mentransfer gambar dan sudah disediakan di OTA API.

Pada bagian selanjutnya, kita akan membahas tentang cara memproses gambar OTA, dan memperkenalkan beberapa pengetahuan dasar tentang tata letak memori flash Ameba dan alur boot.

Langkah 2: Tata Letak Memori Flash Ameba

Tata Letak Memori Flash Ameba
Tata Letak Memori Flash Ameba

Ukuran memori flash Ameba RTL8195A adalah 2MB, berkisar dari 0x00000000 hingga 0x002000000. Namun, ukuran memori flash Ameba RTL8710 adalah 1MB. Agar sesuai dengan penggunaan papan yang berbeda, kami menganggap tata letak memori flash adalah 1MB.

Seperti yang ditunjukkan pada gambar di atas, program Ameba menempati tiga bagian dari memori flash:

- Gambar Booting:

Yaitu, bootloader. Saat Ameba melakukan boot, ia menempatkan image boot ke memori dan melakukan inisialisasi. Selanjutnya, ini menentukan ke mana harus melanjutkan setelah bootloader. Bootloader melihat alamat OTA dan pin pemulihan di area data sistem dan menentukan gambar mana yang akan dieksekusi setelahnya. Di akhir bootloader, ia menempatkan gambar ke memori dan melanjutkan untuk mengeksekusinya.

- Gambar Default 2:

Kode pengembang ditempatkan di bagian ini, alamatnya dimulai dari 0x0000B000. 16 byte pertama adalah header gambar, 0x0000B008~0x0000B00F terdiri dari Tanda Tangan, yang digunakan untuk memverifikasi apakah gambar tersebut valid. Bidang tanda tangan memiliki dua nilai yang valid untuk membedakan gambar baru dari gambar lama.

- Gambar OTA:

Data di bagian ini juga merupakan kode pengembang. Secara default, bagian memori ini dimulai dari 0x00080000 (dapat diubah). Perbedaan utama antara gambar OTA dan Gambar Default 2 adalah alamat memori flash dan nilai Tanda Tangan.

Selain kode, ada beberapa blok data:

- Data Sistem:

Blok data sistem dimulai dari 0x00009000. Ada dua data terkait OTA:

1. Alamat OTA:4 byte data mulai dari 0x00009000. Ini memberitahu alamat Gambar OTA. Jika nilai alamat OTA tidak valid (yaitu, 0xFFFFFFFF), gambar OTA di memori flash tidak dapat dimuat dengan benar.

2. Data Recovery Pin:4 byte mulai dari 0x00009008, Pin pemulihan digunakan untuk menentukan gambar mana (Gambar 2 atau Gambar OTA default) yang akan dieksekusi ketika kedua gambar valid. Jika nilai pin pemulihan tidak valid (yaitu, 0xFFFFFFFF), gambar baru akan dieksekusi secara default.

Data sistem akan dihapus saat kami mengunggah program ke Ameba melalui DAP. Artinya, alamat OTA akan dihapus dan Ameba akan menentukan tidak ada gambar OTA.

- Data Kalibrasi:Data kalibrasi periferal ditempatkan di blok ini. Biasanya data ini tidak boleh dihapus.

Langkah 3: Alur Boot

Alur Booting
Alur Booting

Dari gambar di atas, Kami membahas skenario berikut: (i) OTA tidak digunakan, gunakan DAP untuk mengunggah program:

Dalam situasi ini, bootloader memeriksa tanda tangan gambar 2 default dan alamat OTA. Karena alamat OTA dihapus, gambar default 2 akan dipilih untuk dieksekusi.

(ii) Gambar OTA ditransfer ke Ameba, alamat OTA disetel dengan benar, pin pemulihan tidak disetel:

Ameba telah menerima gambar yang diperbarui melalui OTA, tanda tangan gambar default 2 akan disetel ke tanda tangan lama.

Bootloader memeriksa tanda tangan gambar 2 default dan alamat OTA. Ini akan menemukan alamat OTA berisi gambar OTA yang valid. Karena pin pemulihan tidak disetel, pin pemulihan akan memilih gambar baru (yaitu, gambar OTA) untuk dieksekusi.

(iii) Gambar OTA ditransfer ke Ameba, alamat OTA disetel dengan benar, pin pemulihan disetel:

Ameba telah menerima gambar yang diperbarui melalui OTA, tanda tangan gambar default 2 akan disetel ke tanda tangan lama.

Bootloader memeriksa tanda tangan gambar 2 default dan alamat OTA. Ini akan menemukan alamat OTA berisi gambar OTA yang valid. Kemudian periksa nilai pin pemulihan. Jika pin pemulihan terhubung ke LOW, gambar baru (yaitu, gambar OTA) akan dieksekusi. Jika pin pemulihan terhubung ke TINGGI, gambar lama (yaitu, gambar default 2) akan dieksekusi.

Langkah 4: Contoh

Contoh
Contoh
Contoh
Contoh
Contoh
Contoh
Contoh
Contoh

Untuk menggunakan fitur OTA, harap tingkatkan firmware DAP ke versi > 0.7 (v0.7 tidak termasuk). Firmware DAP default pabrik adalah versi 0.7. Silakan ikuti instruksi untuk meningkatkan firmware DAP:

Buka contoh: "File" -> "Contoh" -> "AmebaOTA" -> "ota_basic"

Isi informasi ssid dan kata sandi dalam kode sampel untuk koneksi jaringan.

Ada beberapa parameter yang terkait dengan OTA:

MY_VERSION_NUMBER:Dalam versi pertama, kita perlu mengatur alamat OTA dan pin pemulihan. Karena kali ini kami mengunggah melalui USB adalah versi pertama, kami tidak perlu mengubah nilai ini.

OTA_PORT:Arduino IDE akan menemukan Ameba melalui mDNS. Ameba akan memberi tahu Arduino IDE bahwa ia membuka port TCP 5000 untuk menunggu gambar OTA.

RECOVERY_PIN:Konfigurasikan pin yang digunakan untuk pemulihan. Kami menggunakan pin 18 di sini.

Kemudian kami menggunakan program unggah USB ke Ameba. Klik Alat -> Port, periksa port serial yang akan digunakan:

Harap dicatat bahwa Arduino IDE menggunakan satu port untuk mengupload program dan outputlog. Untuk menghindari situasi di mana log tidak dapat dikeluarkan saat kami menggunakan OTA, kami menggunakan terminal port serial lain (misalnya, istilah Tera atau dempul) alih-alih monitor serial untuk menonton pesan log.

Kemudian klik unggah dan tekan tombol reset.

Dalam pesan log:

1. Di antara “===== Enter Image 1====” dan “Enter Image 2 ====”, Anda dapat menemukan “Flash Image 2:Addr 0xb000”. Ini berarti Ameba menentukan untuk boot dari Default Image 2 pada 0xb000.

2. Setelah “Enter Image 2 ====”, Anda dapat menemukan “This is version 1”. Ini adalah pesan log yang kami tambahkan di sketsa.

3. Setelah Ameba terhubung ke AP dan mendapatkan alamat IP “192.168.1.238”, Ameba mengaktifkan mDNS dan menunggu klien.

Selanjutnya, kita ubah "MY_VERSION_NUMBER" menjadi 2.

Klik "Alat" -> "Port", Anda dapat melihat daftar "Port jaringan". Temukan "MyAmeba di 192.168.1.238 (Ameba RTL8195A)", MyAmeba adalah nama perangkat mDNS yang kami atur dalam kode sampel, dan "192.168.1.238" adalah IP Ameba.

Jika Anda tidak dapat menemukan port jaringan Ameba, harap konfirmasikan:

- apakah komputer Anda dan Ameba berada di jaringan lokal yang sama?

- coba restart Arduino IDE.

- periksa pesan log di Serial Monitor untuk melihat apakah Ameba berhasil tersambung ke AP.

Kemudian klik unggah. Kali ini program akan diupload melalui TCP. Di terminal log, Anda dapat melihat informasi koneksi klien.

Ketika gambar OTA berhasil diunduh, Ameba akan reboot dan log berikut akan ditampilkan di terminal log.

- Antara “===== Enter Image 1====” dan “Enter Image 2 ====”, Anda dapat melihat pesan log “Flash Image 2:Addr 0x80000”. Ini berarti Ameba menentukan untuk boot dari OTA Image pada 0x80000.

- Setelah “Enter Image 2 ====”, log “This is version 2” adalah pesan yang kita tambahkan di sketch.

Untuk memulihkan ke gambar sebelumnya setelah gambar OTA diunduh ke Ameba, harap sambungkan pin pemulihan yang kami atur dalam sketsa (yaitu, pin 18) ke TINGGI (3.3V), dan tekan reset.

Kemudian Default image 2 akan dipilih saat booting. Perhatikan bahwa gambar OTA yang diunduh tidak dihapus, setelah pin pemulihan terputus dari TINGGI, gambar OTA akan dieksekusi.

Kami merangkum alur pengembangan menggunakan OTA pada gambar berikut.

Direkomendasikan: