Smart.js - (lebih dari) firmware baru untuk ESP8266
Di habr sering artikel diterbitkan tentang berbagai proyek berdasarkan pada chip ESP8266 yang populer, jadi saya tidak akan membicarakannya sendiri.Kanan ke bawah: kami mengembangkan firmware baru untuk perangkat ini, menawarkan untuk menggunakan Javascript untuk pengembangan. Tapi, Smart.js bukan hanya firmware penerjemah JS, tetapi juga "kit" yang berbeda untuk bekerja dengan peralatan dan infrastruktur cloud.
Untuk detail - tolong, di bawah kucing.Saya harus segera mengatakan bahwa artikel ini adalah artikel ulasan, di dalamnya saya akan mencoba untuk berbicara tentang apa yang dapat dilakukan oleh Smart.js, dan saya akan menyentuh sedikit tentang bagaimana semua ini diatur. Jika Anda tertarik untuk mengetahui cara kerjanya, ini mungkin menjadi topik dari artikel berikutnya (dan Anda juga dapat melihat sumbernya ).Jadi apa yang kita miliki di bawah tenda?Pertama-tama, ini adalah mesin JS yang disebut V7 yang dikembangkan oleh Cesanta. Tanpa memikirkannya terlalu detail, saya hanya mencatat bahwa mesin ini pada awalnya dikembangkan untuk platform tertanam, oleh karena itu dibedakan oleh ukurannya yang kecil, konsumsi memori yang rendah, portabilitas yang sangat baik dan tingkat konfigurasi yang tinggi. Namun, hanya juru bahasa JS pada ESP8266 akan menjadi hal tersendiri, sehingga Smart.js dapat berkomunikasi dengan dunia luar.- I2C. API , ยซยป ( EEPROM). I2C bit-bang, ;
- SPI. ESP SPI , SPI HSPI, HSPI, , Hardware SPI. ยซยป SPI , . bit-bang', , HSPI (, ESP, SPI, ). API ;
- Wifi. Akan aneh jika tidak mendukung WiFi. Karena itu kami mendukung ;
- Berkas sistem. Ini didasarkan pada SPIFFS;
- Ada juga API untuk bekerja dengan GPIO dan klien HTTP sederhana ;
- ... dan satu set berbagai fungsi tambahan .
Secara umum, jika menarik - baca readme , kami mencoba menggambarkan semua yang ada.Sekarang sedikit tentang awal yang cepat.Unduh dari arsip Flash'n'Chips . Flash'n'chips adalah driver flash "eksklusif". Anda dapat menggunakan apa saja, tetapi Flash'n'chips segera menghasilkan id perangkat dan kata sandi yang diperlukan untuk terhubung ke cloud. Ada versi untuk OS X dan Windows.Selain flasher itu sendiri, arsip ini juga berisi firmware "release" (yaitu, Alpha).Kami menghubungkan ESP8266 ke USB, meluncurkan Flash'n'chips, dan kami melihat sesuatu seperti ini:
Klik "Muat firmware" dan firmware akan diunduh ke perangkat. Tergantung pada ESP Anda, gerakan tubuh tambahan mungkin diperlukan. Sebagai contoh, saya menggunakan ESP01 yang paling sederhana, jadi sebelum menginstal saya perlu menghubungkan GPIO0 ke GND.Kami terhubung oleh terminal. (Ada juga Flash'N'Chips bawaan, saya lebih terbiasa dengan picocom, tetapi ini tidak penting). Kecepatan - 115200.Di konsol ini, Anda dapat langsung mengetik kode JS. ("Smartjs NNN / MM $" adalah prompt perintah, NNN adalah jumlah memori bebas, MM adalah jumlah memori yang saat ini dikonsumsi langsung oleh penerjemah).Ini terlihat seperti konsol biasa.
Ketika Anda menekan Enter, perintah dieksekusi dan hasilnya ditampilkan di konsol, mis. Anda bisa melakukannya tanpa banyak "cetak". Cara lain untuk menulis dan menjalankan kode JS adalah dengan mengetiknya di editor favorit Anda, menyimpannya ke file dan mengunduhnya ke perangkat Anda. Cara termudah untuk melakukan ini adalah dengan Flash'n'Chips yang sama - di kotak kombo Pilih Tindakan, pilih "Unggah file".Sekarang file dapat dieksekusi menggunakan perintah File.load ("nama file") dengan mengetikkan perintah ini di konsol, atau menambahkannya ke file init.js (maka file akan secara otomatis dieksekusi ketika perangkat dimulai).Firmware untuk ESP8266 Smart.js tidak terbatas. Seperti yang saya tulis di atas, masih ada cloud di mana Anda dapat mengirim data dari perangkat, menyimpannya di sana, mengambilnya dari sana, atau hanya melihat grafiknya. API untuk mengirim data ke cloud terlampir .Untuk memulai lebih cepat, kami merekam video pendek:Itu jika Anda perlu, misalnya, untuk memantau suhu di apartemen, maka Anda harus melakukan apa-apa. Cukup menghubungkan sensor suhu ke ESP, menulis "driver" (atau bersiap-siap) di JS, mendaftar di cloud, menulis skrip kecil yang membaca suhu dan mengirimkannya ke cloud. Dan kemudian pergi ke situs tersebut dan lihat grafiknya.Tentu saja, firmware akan bekerja tanpa cloud. Tetapi lebih nyaman dengan cloud, bagian dari pekerjaan rutin terputus. Ada tautan ke cloud di github , dan jika Anda memiliki github atau akun G +, maka pendaftaran di dalamnya akan masuk dalam beberapa klik.Nah, jika Anda kekurangan beberapa fungsi, maka Anda selalu bisa menggunakan C. Anda cukup menulis fungsionalitas baru di C tanpa harus mengaitkannya dengan JS. Pada saat yang sama, akan tetap memungkinkan untuk menggunakan hampir semua API yang ada (dalam kebanyakan kasus, JS API adalah pembungkus tipis atas fungsi syshny), di samping itu, Anda dapat menggunakan fungsi ESP SDK. Tidak sulit untuk merakit firmware dari sumbernya , berkat kehadiran gambar buruh pelabuhan.Anda dapat memperluas JS. Untuk melakukan ini, kami menulis fungsionalitas yang diperlukan di C, dan kemudian membuatnya tersedia di JS. Ini juga tidak sulit .Bagi mereka yang berurusan dengan ESP8266, Smart.js akan tampak mirip dengan NodeMCU. Saya tidak akan berdebat - meskipun tampaknya. Tapi kami punya rencana besar untuk pengembangan Smart.js dan untuk porting ke perangkat lain, jadi seiring waktu, saya pikir, akan ada sedikit persamaan.Berbicara tentang rencana kami. Sekarang status Smart.js adalah ALPHA 1. Rilis berikutnya dijadwalkan untuk musim gugur (yang, tentu saja, tidak mengganggu mereka yang ingin memasang firmware dari sumber dengan frekuensi berapapun). Pada musim gugur, kami akan menambah jumlah memori yang tersedia untuk pengguna, memperbarui skrip dari cloud (mis., Secara teoritis, Anda tidak pernah dapat menghubungkan ESP8266 ke komputer sama sekali), membuat porta ke platform lain, dll.Dan sekarang penting bagi kami untuk mendapatkan umpan balik. Apakah kamu menyukainya? Apa yang hilang? Apa yang berlebihan? Semuanya menarik!Jadi - unduh firmware - coba, kami akan senang. Lisensi ganda, GPLv2 untuk semua pendatang dan komersial bagi mereka yang tidak memiliki GPL dan / atau membutuhkan dukungan. Source: https://habr.com/ru/post/id382189/
All Articles