Saya adalah pengembang berpengalaman yang menggunakan berbagai teknologi sekaligus waktu nyata. Saya ingin belajar bagaimana mengembangkan perangkat yang bukan komputer, tablet, atau perangkat yang dikenal semua orang.
Saya perhatikan bahwa situs belanja global menawarkan perangkat keras IoT seperti modul relai 2 saluran, papan pengembangan nodeMCU, dan lebih banyak perangkat keras yang terkait dengan IoT. Saya tidak tahu harus melakukan apa atau memulai .
Dengan asumsi saya tahu bagaimana cara membuat kode, bagaimana saya mulai mengembangkan perangkat IOT pertama saya?
Jawaban:
Ini adalah pertanyaan yang sangat luas, tetapi saya akan mencoba memberikan beberapa petunjuk umum, semoga bermanfaat bagi orang lain, juga bagi Anda (jadi, terimalah permintaan maaf saya jika saya memposting hal-hal yang sudah Anda ketahui).
Jika Anda bertanya tentang membaca sensor, ini adalah telemetri dan belum tentu IOT. Saya telah mengkodekan banyak proyek di mana PC mandiri membaca dan menampilkan beberapa pengukuran.
Jika Anda juga ingin mengontrol perangkat keras yang terpasang, ini adalah SCADA . Sekali lagi, itu tidak perlu terhubung ke internet.
Berikut adalah diagram SCADA, yang memberikan kesan yang sangat baik untuk IOT secara umum. Perhatikan bahwa PLC pada diagram adalah sensor dan kontrol perangkat yang diaktifkan IoT.
Anda dapat meminta pujian perangkat keras untuk sensor & pengontrol di Rekomendasi Perangkat Keras .
Dan, setelah Anda memiliki beberapa kode, Anda bisa mendapatkan saran untuk masalah di Stack Overflow .
Secara umum, IoT untuk industri melibatkan model klien / server, dengan klien mengukur / mengendalikan perangkat perangkat keras dan melaporkan ke / menerima perintah dari server. Server juga umumnya memiliki database, dan memungkinkan pembuatan laporan untuk manajemen dan alarm (dan dapat menginstruksikan perangkat keras jarak jauh untuk mengkonfigurasi ulang / mematikan berdasarkan data yang diterima).
Fiuh! Itu intro dari jalan. Sekarang untuk membuat tangan kita kotor.
Jika Anda ingin memahami seluk beluk pengkodean, lihat soket , dan pahami perbedaan antara TCP dan UDP .
Untungnya, beberapa dekade telah membungkus sebagian besar barang rumit di perpustakaan, dan Anda mungkin disarankan untuk membaca tentang layanan RESTful. Ada banyak tutorial, kursus, dan video online gratis, tergantung pada bahasa Anda; C adalah bahasa embedded tradisional, dengan beberapa menggunakan C ++, tetapi tentu saja, gunakan apa pun yang Anda ketahui / rasakan nyaman. Python sangat populer dan mudah dipelajari, serta menjadi bahasa yang direkomendasikan untuk Raspberry Pi.
Secara pribadi, saya lebih suka mengkompilasi bahasa untuk ditafsirkan, karena lebih mudah untuk mengeluarkan bug, tetapi pilihan sepenuhnya terserah Anda. Pastikan bahwa ia memiliki dukungan yang baik untuk mengakses periferal melalui USB, Ethernet dan - masih sangat umum di port serial industri.
Untuk sisi server, 90% + server dunia masih berjalan di PHP. Namun, ada penggunaan NodeJS, terutama dari orang-orang yang membuat kode aplikasi browser, yang saat ini hanya dapat dilakukan dalam JavaScript dan tidak ingin belajar dua bahasa. Saya tidak merekomendasikan pengembangan aplikasi IoT berbasis browser, karena pembatasan kode browser mengakses sistem file dan periferal (walaupun, saya akan menyebutkan orang-orang seperti Cordova , jika Anda ingin mengembangkan untuk smartphone).
Untuk memulai, saya akan merekomendasikan Raspberry Pi (pengkodean dengan Python atau C).
Dan saya * sangat * merekomendasikan topi sensor. Ini hanya sebuah contoh, tetapi tidak mahal dan mengandung
Itu akan memungkinkan Anda mengumpulkan beberapa data dan melaporkannya ke server Anda. Anda mungkin dapat menemukan layanan online gratis untuk menerima dan menampilkan data Anda. Saya telah melihat beberapa di situs SO lainnya, tetapi lupa di mana.
Tapi, Anda mungkin ingin membuat kode server Anda sendiri. Saya akan merekomendasikan PHP sebagai bahasa pemrograman. Untuk Linux, Anda dilengkapi dengan LAMP (Linux, Apache, Mysql & PHP). Untuk Windows, Anda harus menginstal WAMP (Windows ... dll).
Anda dapat memilih. Saya telah menggunakan XAMPP dalam aplikasi industri selama lebih dari satu dekade. Anda tidak harus menggunakan Mysql, Sqlite dapat berfungsi dengan baik (plug shaless untuk pertanyaan SO saya sendiri 6 tahun yang lalu, " Sqlite atau MySql? Bagaimana cara memutuskan? "). Anda juga harus belajar tentang CRUD .
Berdasarkan data yang diterima dari klien / sensor, Anda mungkin ingin mengirim perintah kembali, bahkan hanya sederhana (tampilan: "suhu terlalu tinggi", yang mungkin diterjemahkan dengan menutup katup dalam sistem industri).
Anda mungkin ingin menaikkan alarm secara real time (kirim email yang mengatakan bahwa suhunya terlalu tinggi).
Dan, Anda mungkin juga ingin berpikir tentang membuat laporan. Mulailah dengan tabel yang menunjukkan data yang diterima. Pertimbangkan grafik, atau sesuatu yang lebih menarik. Tambahkan opsi untuk mengekspor ke Comma Separated Values (CSV) yang memungkinkan pengguna akhir untuk mengimpor data ke dalam spreadsheet untuk analisis dan manipulasi lebih lanjut.
Jika Anda tidak memutuskan bahwa Anda ingin pelaporan mewah, Anda dapat melakukannya di PHP, tapi, setelah beberapa dekade bahwa saya sekarang telah pindah ke melakukan banyak sisi klien laporan barang, dalam browser.
Untuk prinsip umum, dapatkan gambaran umum Aplikasi Satu Halaman dan AJAX . Saya, secara pribadi, melakukan banyak penelitian dan memilih Google AngularJS sebagai bahasa pemrograman saya (ada banyak tutorial & dukungan hebat), tetapi Anda bebas menggunakan JS, Jquery, dll, sesuka Anda.
Jika Anda memutuskan untuk membuat kode hal-hal browser juga, dan Anda mungkin juga menggunakan NodeJs di sisi server, sehingga Anda hanya perlu belajar satu bahasa pemrograman baru.
Terlalu banyak pilihan? Maaf :-(
Saya harap ini telah memberi Anda beberapa saran, tetapi jangan ragu untuk bertanya, dan beri tahu saya jika ada saran umum yang hilang di sini.
sumber
Sebagai pengembang yang berpengalaman, Anda memiliki kemampuan untuk memahami logika, membaca dan menulis kode, mencari tahu, dan beberapa keterampilan penting lainnya. Apa yang Anda mungkin tidak miliki adalah pemahaman tentang elektronik dasar dan seni mendapatkan kode dari desktop Anda yang berjalan pada perangkat kecil.
Melompat pada tingkat kerumitan yang salah dapat menjadi hal yang menakutkan, dan mungkin berarti Anda menyerah terlalu cepat. Misalnya, orang merekomendasikan ESP8266 dan NodeMCU tanpa berpikir bahwa Anda perlu mendapatkan yang benar, Anda memerlukan chip yang dipasang pada papan pengembangan, Anda harus mendapatkan perangkat lunak di atasnya, Anda perlu menghubungkannya dengan sesuatu, dan hanya maka apakah Anda dapat menjalankan JavaScript. Itu banyak keterampilan berbeda yang Anda butuhkan, dan Anda bisa menyerah pada salah satu dari tahapan itu.
Rekomendasi saya adalah mulai dengan Arduino. Di mana Arduino membuat perbedaan dalam komunitas pembuat adalah betapa mudahnya untuk memasang Arduino di port USB, dan kompilasi, membangun, menyebarkan rantai semuanya disortir untuk Anda. Anda dapat menulis beberapa kode, dan mem-flash beberapa LED dengan sangat cepat.
Saya juga menyarankan agar Anda mulai dengan kit starter Arduino resmi . Meskipun sangat sederhana, instruksinya mudah dan Anda mendapatkan banyak potongan dan potongan elektronik yang berguna (papan tempat memotong roti, kabel jumper, LED, dll.) Yang tetap berguna.
Jangan kaget dengan betapa dasar Arduino itu. Dapatkan antusiasme terlebih dahulu untuk bagian elektronik dan langsung sebelum mencoba sesuatu yang terlalu rumit Jika Anda menemukan barang elektronik yang menarik dan ingin berbuat lebih banyak, tetap menggunakan Arduino dan dapatkan kit yang lebih rumit. Saya membeli robot BOE Shield-Bot . Ini mungkin bukan robot terbaik atau termurah, tetapi memiliki tutorial yang sangat bagus yang menjelaskan secara terperinci tentang cara mengontrol servos dan semacamnya. Anda juga mendapatkan bit yang jauh lebih berguna.
Jika Anda melewati itu, Anda akan menyerah dan kembali ke perangkat lunak sisi server, atau Anda akan membeli lebih banyak bit, menyolder setrika, lebih banyak papan dan komponen. Segera Anda akan mendapatkan laci impian yang rusak seperti kita semua.
Saya tidak akan merekomendasikan menggunakan Pi terlalu cepat. Ini lebih dari komputer daripada benda, dan tidak memiliki fitur penting yang diperlukan di awal perjalanan pemahaman Anda (seperti input analog). Anda akan dengan cepat melampaui Arduino (ini tidak mudah terhubung ke Internet), tetapi ini adalah tempat yang baik untuk melihat apakah ini akan menjadi sesuatu yang Anda nikmati.
sumber
Saya akan melanjutkan untuk menjawab pertanyaan pertama Anda.
Jika Anda hanya ingin belajar, saya dapat merekomendasikan Anda beberapa buku tentang IoT tetapi saya kira Anda dapat mencarinya sendiri. Jika itu jelas, maka saya akan merekomendasikan Anda untuk mulai bekerja pada proyek kecil Anda sendiri, yaitu bagaimana Anda belajar yang terbaik, menghadapi masalah kehidupan nyata.
Anda harus memutuskan apa yang ingin Anda buat. Berikut ini beberapa inspirasi dan ide keren untuk memulai:
Proyek Arduino -> Mikrokontroler
Proyek Raspberry Pi -> Microprocessor (lebih kuat)
hackaday.com -> Komponen campuran
Setelah Anda memiliki gagasan tentang apa yang ingin Anda lakukan, maka Anda perlu membuat persyaratan untuk proyek Anda. Mikrokontroler, sensor, aktuator, protokol komunikasi, dll.
Seperti yang Anda lihat perangkat yang paling populer adalah Arduino , Raspberry Pi dan semua kerabat lainnya, beaglebone hitam , bawang , dll, Ada banyak lagi, perbedaan yang harga, kompatibilitas dengan sensor lain dan popularitas. Yang populer lebih kompatibel dan memiliki lebih banyak dukungan di forum.
Kami akan membantu Anda dengan persyaratan berdasarkan proyek Anda. Semoga berhasil!
sumber
Yang lain berfokus pada sisi pertama pertanyaan Anda; Saya akan fokus pada yang terakhir. Anda bertanya apakah ada orang yang bisa masuk ke IoT atau apakah Anda harus menjadi perusahaan besar dengan banyak sumber daya.
Jika Anda meramban tag smart-home , Anda akan melihat bahwa ada perangkat IoT yang sudah menyelesaikan semua sisi server untuk Anda. Ada banyak perangkat IoT yang "dapat dibeli siapa saja", termasuk Nest cam, thermostat, dll., Amazon Echo, Google Home, oven pintar, lemari es, dll.
Bahkan banyak mobil baru yang memenuhi syarat sebagai objek yang dapat diraba atau dikendalikan dari jarak jauh ... walaupun mungkin belum menjadi bagian yang dikendalikan. :)
Ini mengarah ke jawaban pertanyaan pertama Anda:
Anda tidak harus memulai dengan mengembangkan: Anda bisa mulai dengan sesuatu yang lebih sederhana. Jika Anda ingin masuk ke sisi pengembangannya, Anda bisa mengambil risiko, seperti yang disarankan beberapa orang, tetapi Anda memang memiliki pilihan yang tersedia untuk Anda mulai dari yang sederhana dan pindah secara bertahap ke ranah yang lebih kompleks.
sumber