MicroPython 1.8 Telah Rilis, Dukungan Pertama MicroPython untuk ESP8266
Yana Permana 17 Mei 2016
Hai apa kabar antusias Internet of Things (IoT)? Kabar terbaru datang dari pengembang MicroPython yang telah merilis MicroPython 1.8. Rilis ini menandakan dukungan pertama untuk ESP8266 dengan basis kode MicroPython. Port untuk ESP8266 memiliki banyak peningkatan dan penambahan fitur, termasuk: modul websocket dan webrepl, mode deep-sleep, pembacaan UART, peningkatan dukungan I2C, peningkatan konfigurasi jaringan, melengkapkan script untuk start-up (built-in _boot.py, boot.py dan main.py), peningkatan filesystem dengan dukungan deteksi flash-size secara otomatis sebagaimana dokumentasi pada tutorial.
Isu yang sering disinggung pada port ESP8266 diantaranya:
- Dukungan SSL tersedia, namun hanya bekerja dengan ukuran data yang kecil (beberapa kilobytes (kb) saja).
- Implementasi WebREPL dengan SSL tidak didukung
- Hanya beberapa sesi WebREPL yang bisa berjalan lancar pada saat sesi transfer file.
- Tranfer file dengan WebREPL memiliki isu dengan file yang berukuran besar (lebih dari 10 kb)
- Secara desain, hanya satu koneksi konkuren WebREPL yang didukung
- Soft reset tidak bisa mereset stack jaringan.
Fitur apa saja sih yang disuguhkan di MicroPython 1.8? Ini dia.
py core
- modbuiltins: Penambahan komentar pada pengaturan variabel spesial "_"
- Penambahan sintaks async/await/async dan for/async
- Perbaikan constant folding dan inline-asm agar bisa bekerja dengan sintaks baru async
- Penambahan awalan modul framebuf
- Penambahan class generic machine.I2C dengan bit-bang I2C
- machine_i2c: Pembacaan I2C diperbaiki dengan mengirimkan ack/nack pada byte terakhir
- utils/printf: Mempekerjakan kembali fungsi DEBUG_printf()
- utils/pyexec: Pemanggilan condition-out pada GC dari pyexec
- utils/pyhelp: Mengekstrak implementasi help(obj) ke dalam fungsi library
- Penambahan driver SSD1306 OLED dengan antarmuka I2C dan SPI
- mpy-tool.py: Alat baru yang digunakan untuk file berekstensi .mpy
- mpy-tool.py: Penambahan dukungan untuk Python 2.7
- Penambahan 6 pengujian untuk async await/for/
- Penambahan file berekstensi .exp untuk pengujian async sehingga pengguna bisa menjalankannya dengan Python 3.4
- Perbaikan dict1.py sehingga tidak bergantung pada urutan elemen struktur data dict {}
- Penambahan contoh untuk frozen bytecode yang tetap (file berekstensi .mpy)
- Penonaktifan sintaks async/await
- Proses build bisa menggunakan MICROPY_PY_UHASHLIB_SHA1 jika axTLS sudah tersedia.
- Memastikan proses build pada direktori ada sebelum pengaksesan dan pembekuan upip
- Makefile: Agar instalasi bisa kompatibel dengan sistem operasi lain (BSD, etc.)
- msvc: Implementasi pembangkitan qstr secara otomatis dengan makeqstrdefs
- Implementasi dasar C-level pin HAL
- Menggunakan objek generik I2C dalam modul machine
- Pengaktifan modul framebuf
- Menggunakan fungsi pyhelp_print_obj
- Merubah method i2c.scan() ke scan address 0x08-0x77
- Penonaktifan sintaks async/await
- Pengaktifan modul websocket
- modnetwork: .config(): Pemeriksaan antarmuka config bisa direquest
- modnetwork: .config(): Penambahan paramter "authmode"
Referensi: https://www.kickstarter.com/projects/214379695/micropython-on-the-esp8266-beautifully-easy-iot/posts/1568461 Cover: learn.adafruit.com
NewsPythonmicropythoncatatan riliswebsocket[2] Middle Dev[3] Pro Devesp8266mikrokontrollerwebreplfrozen bytecode