IOT untuk satu sen: panduan praktis. Bagian 2, perangkat lunak
Kami melanjutkan serangkaian artikel panduan di mana kami mempertimbangkan bagaimana menerapkan perangkat berbasis cloud dan IoT yang sederhana dan murah dengan potensi besar dari awal tanpa menyolder dan kesulitan yang tidak perlu. Ambil microchip ESP8266 yang bersih, instal firmware dari DeviceHive, konfigurasikan dan tulis aplikasi web sederhana untuk mengakses server cloud. Kami merakit dan menghubungkan perangkat sederhana ke microchip, yang dapat dikontrol dengan beberapa klik di browser. Ini adalah bagian kedua dari siklus, yang menjelaskan perangkat lunak mana yang diperlukan, bagaimana memulainya, cara mem-flash ESP8266 dan berteman dengan server.Penulis artikel menunjukkan apa yang akan dibahas hari ini.Artikel pertama seri:• IoT untuk satu sen, atau Apa yang DeviceHive bisa lakukan.• IOT untuk satu sen: panduan praktis. Bagian 1, perangkat keras.Buat server
Mari kita menyusuri jalan termudah dan menggunakan taman bermain DeviceHive gratis. Untuk melakukan ini, buka di sini dan daftar. Setelah itu, masuk dan buka halaman ini:Selamat! Sekarang Anda memiliki taman bermain sendiri di DeviceHive. Untuk terhubung ke playgroup dari luar, gunakan tautan URL API. Ini adalah alamat yang kami gunakan untuk mengakses server dari ESP8266 dan aplikasi klien. Untuk mengakses panel admin (di Url Admin), gunakan login yang ditentukan (Login Awal) dan kata sandi (Kata Sandi Awal).Penyimpangan kecil: server dapat digunakan secara lokal atau pada layanan cloud. Cari instruksi pemasangan di sini . Anda dapat membuatnya lebih mudah - mulai server menggunakan Docker dalam satu baris: Lihat di sini untuk deskripsi lengkap . DeviceHive adalah proyek sumber terbuka penuh. Ini berarti bahwa server dapat digunakan baik di rumah maupun di layanan cloud, misalnya, Azuredocker run -d --name=devicehive -p 8080:80 -p 9001:9001 devicehive/devicehive-standalone
.Firmware
Sudah waktunya untuk melakukan firmware. Untuk melakukan ini, kita perlu menghubungkan ESP8266 ke komputer, kemudian menghubungkan adaptor USB-> UART, catu daya dan modul ESP8266.Instal driver untuk adaptor Anda. Pengguna Linux lebih mudah di sini, karena kernel sudah menyertakan sebagian besar driver ini. Tetapi pengguna Windows dan OS X harus menginstal driver adaptor sendiri.Tautan ke laman unduhan resmi untuk chip paling populer:CP210x: www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspxPL230x: www.prolific.com.tw/US/ShowProduct.aspx?pcid=41FTDI: www. ftdichip.com/Drivers/VCP.htmCH341: www.wch.cn/index.php?s=/page-search_content-keyword-CH341SER.htmlHubungkan adaptor dan pastikan driver berfungsi dengan benar. Di Linux, perangkat akan muncul di sistem file / dev / ttyUSB *, pada OS X - /dev/tty.*, dan pada Windows - port COM tambahan akan muncul pada manajer perangkat. Jika semuanya baik-baik saja, lepaskan adaptor dari komputer.Selanjutnya, sambungkan output dari catu daya (3,3 Volt) ke ESP8266 dengan dua kabel. Agar modul dapat dinyalakan, saat dinyalakan, modul harus dibolehkan bekerja dengan memasok level tinggi ke output CH_PD. Penting untuk memberi tahu modul bahwa kita akan menggunakan memori internal, jadi ketika dihidupkan GPIO15 harus rendah. Dan untuk masuk ke mode pemrograman, kita perlu menerapkan level rendah ke GPIO0. Kami hanya membutuhkan yang terakhir selama firmware. Kedengarannya menyeramkan, tetapi dalam kenyataannya kita hanya perlu menghubungkan tiga kabel CH_PD dengan nilai plus dari sumber daya, dan menghubungkan GPIO0 dan GPIO15 ke ground (minus) dari sumber daya. Terakhir, kami menghubungkan adaptor USB-> UART menggunakan tiga kabel lagi: kami menghubungkan terminal minus sumber (GND) ke ground adaptor,output dari adaptor RX terhubung ke output dari modul TX dari ESP8266 dan output dari adaptor TX ke output dari modul RX. Kami mendapatkan diagram koneksi akhir untuk tiga modul standar yang berbeda. Jika beberapa output hilang, kemungkinan besar sudah terhubung di dalam modul, kabel ungu adalah koneksi paling sementara untuk masuk ke mode pemrograman.


Contoh pelaksanaan koneksi seperti itu:Seperti yang Anda lihat, tidak diperlukan solder, semua koneksi dapat dilakukan dengan konektor biasa.Selanjutnya, hidupkan sumber listrik, sambungkan adaptor ke komputer, dan unduh firmware DeviceHive yang telah dikompilasi ulang untuk ESP8266. Pada saat publikasi, versi pertama dan terbaru tersedia di sini .Versi prakompilasi baru selalu dapat ditemukan di GitHub . Anda juga dapat mengambil seluruh repositori di sini , kompilasi sendiri firmware dan modifikasi sesuai keinginan. Semua kode dalam repositori dilisensikan di bawah MIT.Buka zip arsip yang diunduh dari tautan di atas ke dalam direktori terpisah, jalankan esp-flasher- <your OS name> dari konsol (pengguna Windows cukup mengklik dua kali pada esp-flasher-win.exe). Akibatnya, Anda harus memiliki sesuatu seperti ini:Selain utilitas yang disertakan untuk firmware ESP8266, Anda dapat menggunakan yang lain, misalnya, esptool .Selamat - firmware terinstal dan sudah berfungsi! Sekarang lepaskan koneksi ground dari pin GPIO0 (tidak diperlukan lagi) sehingga modul tidak masuk ke mode pemrograman lagi. Untuk terhubung ke terminal ESP8266, jalankan esp-terminal- <nama OS Anda> atau terminal port serial lainnya yang mendukung karakter pelarian, misalnya, Putty atau 'layar' utilitas GNU. Parameter port: kecepatan 115200, 8N1.Kedua utilitas yang disertakan dapat mendeteksi port yang terhubung ESP8266 secara otomatis, mis. tidak diperlukan parameter saat startup.Mulai terminal, kita akan melihat undangan:Sebenarnya, ini adalah terminal seperti unix biasa yang mendukung pelengkapan otomatis (tombol Tab) dan riwayat (tombol naik, turun). Tetapi pada kenyataannya, tidak ada file atau sistem operasi di sana. Daftar perintah yang tersedia tersedia di 'bantuan':Kami tertarik pada perintah 'configure'. Jalankan untuk mengkonfigurasi perangkat.Utilitas akan mengajukan lima pertanyaan sederhana:- Nama jaringan Wi-Fi Anda.
- Kata sandi jaringan Wi-Fi Anda.
- Alamat API server Anda.
- DeviceID perangkat Anda.
- DeviceKey dari perangkat Anda.
Dalam "URL server DeviceHive" masukkan "URL API" dari server. Dalam "DeviceID" - beberapa pengidentifikasi perangkat unik untuk server, dengan nama inilah kami akan membedakan perangkat di server. "DeviceID" mungkin berupa teks biasa. Secara khusus, Anda dapat membuat GUID teks dengan mengklik Tab. Dan pada permintaan terakhir untuk DeviceKey, masukkan kata sandi yang dipilih. Itu dapat dihasilkan dengan menekan tombol Tab.Di sini perlu dilakukan penyimpangan kecil. ESP8266 menggunakan otentikasi server oleh DeviceID. Segera setelah DeviceID dan DeviceKey terdaftar di server, tidak ada perangkat lain dengan DeviceID yang sama tetapi dengan kata sandi yang berbeda dapat terhubung. Di masa depan, kata sandi DeviceKey mungkin diperlukan hanya jika Anda ingin mengganti perangkat fisik dengan perangkat lain dengan DeviceID yang sama.Seperti apa bentuk pengaturannya:Jika kami melakukan semuanya dengan benar, kami dapat memeriksa output debug dan memastikan bahwa perangkat berhasil terhubung ke server. Ini adalah output debug dari perangkat yang berhasil terhubung:USB-> adaptor UART sekarang dapat dinonaktifkan. Anda dapat membiarkannya jika Anda ingin dapat melihat output debug atau status jaringan.Sekarang di tab "Perangkat" di panel admin perangkat pertama akan muncul.Mari kita coba mengirim perintah pertama ke perangkat . Untuk melakukan ini, buka panel admin dengan cara berikut: "Perangkat" -> "ESP" -> "perincian" -> "perintah" -> "masukkan perintah baru". Di bidang "nama", tentukan "gpio / read" dan tekan "push". Tim mengirim!Jawabannya akan datang dengan sangat cepat, tetapi hasil dari perintah di panel admin tidak diperbarui secara otomatis. Untuk ini, ada tombol segarkan berlawanan dengan perintah. Klik satu atau dua detik setelah mengirim dan Anda akan melihat layar ini:Apa yang terjadi? Dengan menekan tombol push, Anda mengirim perintah dari panel admin (yang dalam hal ini adalah klien server) ke perintah server. ESP8266 mengambilnya, menjalankannya dan meneruskan hasilnya ke server. Dengan mengklik tombol segarkan, Anda meminta server untuk hasil dari perintah: Daftar perintah yang tersedia terletak di file PDF yang datang dengan firmware. Ini juga tersedia di sini , tetapi mungkin tidak cocok dengan versi firmware Anda.{"0":"1","1":"0","2":"1","3":"0","4":"1","5":"1","12":"0","13":"0","14":"0","15":"0"}
Dengan tradisi yang baik, kita akan menyalakan LED di papan tulis. Pada sebagian besar modul ESP8266, LED berada pada keluaran tipe TX, dan kami akan mengatasinya. Menyala ketika level rendah muncul pada output chip. Dalam dokumen kita akan melihat bahwa GPIO1 tidak lain adalah keluaran TX yang sama, jadi mari kita menetapkan nol logis di atasnya. Dalam hal ini, LED menyala tanpa masalah. Setelah itu, terminal pada modul akan berhenti bekerja sampai reboot.Sekarang kita mengatur perintah yang juga ditunjukkan dalam dokumen. Di bidang "nama" kita atur dan di bidang "parameter" - . Setelah menjalankan perintah, LED di papan harus menyala, seperti pada foto di bawah ini."gpio/write"
"gpio/write"
{"1":"0"}
LED biru di bawah kuarsa, di samping yang merah masih menyala, yang menandakan papan memiliki kekuatan.Seperti yang dapat Anda lihat dari foto, hanya dua kabel dengan daya dan dua jumper yang terhubung ke modul untuk menghidupkan modul dalam mode yang benar. Untuk mematikan, kirim perintah dengan parameter . Format parameter perintah adalah JSON biasa. Bidang yang bisa diisi, serta nilainya yang mungkin, dijelaskan dalam file PDF. Hari ini kami menemukan cara mengirim perintah paling sederhana dari panel admin ke perangkat. Pada artikel selanjutnya, kami akan memberi tahu Anda cara menulis aplikasi klien sederhana untuk server yang memungkinkan Anda mengakses perangkat, dan mengimplementasikan perangkat yang sedikit lebih serius (ingat laser dari artikel pertama?). Tetap disini, itu akan menarik!{"1":"1"}
Diposting oleh Nikolai Khabarov, Senior Embedded Developer. Source: https://habr.com/ru/post/id383027/
All Articles