Bagaimana pengembang yang berpengalaman memulai dengan IoT

10

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?

TheUnreal
sumber
Perangkat "lainnya" memiliki prosesor atau mikrokontroler serta komputer umum, satu-satunya perbedaan adalah kinerjanya, memori yang tersedia, dll.
Bence Kaulics
9
Sepertinya saya memutuskan hubungan antara pertanyaan 'pengembang berpengalaman' dan 'bagaimana memulai'. Sangat sederhana. Temukan aplikasi yang relevan untuk Anda hari ini (pemanasan, penerangan, otomasi) dan implementasikan. Setelah ada pertanyaan spesifik , Anda harus mendapatkan jawaban yang baik di sini - kemungkinan besar mereka akan datang dari perbaikan atau iterasi pada prototipe asli Anda. Seperti yang diajukan, pertanyaan ini benar-benar meminta pendapat, tidak ada jawaban yang jelas benar.
Sean Houlihane
3
Saya telah membuat suntingan yang mencoba masuk ke inti pertanyaan, tetapi menyimpan beberapa teks aslinya. Saya menyarankan OP @TheUnreal bertanya pada bagian kedua, "Apakah masuk ke IoT mengharuskan menjadi perusahaan yang banyak akal atau bisakah seseorang melakukannya juga di dunia ini?" sebagai pertanyaan terpisah, karena saya pikir itu masih relevan.
Simon Munro

Jawaban:

14

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.

Arsitektur SCADA

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).

Papan Raspberry Pi

Dan saya * sangat * merekomendasikan topi sensor. Ini hanya sebuah contoh, tetapi tidak mahal dan mengandung

  • Giroskop - sensor kecepatan sudut: +/- 245/500 / 2000dps Accelerometer
  • Sensor akselerasi linier: +/- 2/4/8/16 g
  • Magnetometer - Sensor Magnetik: +/- 4/8/12/16
  • Gauss Barometer: 260 - 1260 hPa rentang absolut (akurasi tergantung pada suhu dan tekanan, +/- 0,1 hPa dalam kondisi normal)
  • Sensor suhu (Suhu akurat hingga +/- 2 degC dalam rentang 0-65 degC)
  • Sensor Kelembaban Relatif (akurat hingga +/- 4,5% dalam kisaran 20-80% rH, akurat hingga +/- 0,5 degC dalam rentang 15-40 degC)
  • Layar matriks LED 8x8 RGB
  • Joystick 5 tombol kecil

papan sensor

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.

Mawg berkata mengembalikan Monica
sumber
1
Terima kasih Mawg, sebagian besar dari apa yang Anda katakan saya sudah tahu dan bukan pert pertanyaan, saya bekerja dengan PHP dan Javascript serta corodva selama bertahun-tahun. Saya pikir saya akan mulai membeli UNO R3 dan melihat bagaimana saya bisa melanjutkan dari sana.
TheUnreal
1
Saya mulai menulis & tidak bisa berhenti :-) Saya berharap ini akan membantu orang lain. Saya tidak begitu mengenal Cordova. Baik untuk mengakses perangkat keras ponsel, kamera limau, SIM, sensor kemiringan, tetapi bisakah ia mengakses port serial? Karena itu banyak digunakan dalam industri; Anda dapat bertahan dengan USB ke serial konverter, yang merupakan apa yang kami gunakan untuk laptop, tetapi dapatkah Cordova mengirim data melalui USB? Dan Ethernet? lanjutan ...
Mawg mengatakan mengembalikan Monica
1
... Anda tahu JS, tapi saya tidak akan merekomendasikan menggunakannya pada prosesor yang tertanam. Anda bisa , tetapi tentu saja itu tidak normal. Mungkin saatnya mengambil beberapa Python, atau C? Atau, mungkin maksud Anda browser UNO R3 <--> server <-->? Tetap dengan Arduino jika Anda sudah mengetahuinya, tentu saja. Saya beralih ke R Pi, tapi itu hanya preferensi pribadi saya. . Apakah Anda memiliki proyek pembelajaran dalam pikiran? Petunjuk, petunjuk ... iot.stackexchange.com/questions/675/ ... :-)
Mawg mengatakan mengembalikan Monica
9

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.

Simon Munro
sumber
1
Ini adalah jawaban terdekat untuk pertanyaan saya. Terima kasih.
TheUnreal
6

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!

Snake Sanders
sumber
Saya sudah punya ide, tetapi saya ingin mengalami dunia ini sebelum melompat ke ini. Saya pikir saya akan mulai membeli Uno R3 dan mengirim pertanyaan segera setelah saya pergi.
TheUnreal
1
Arduino Uno bagus untuk mengendalikan item fisik, tetapi mahal untuk beradaptasi dengan protokol jaringan, karena Anda pada dasarnya harus menambahkan mikrokontroler atau komputer yang lebih baik untuk melakukannya. Kadang-kadang Anda dapat menemukan satu bagian yang melakukan keduanya, di lain waktu Anda memiliki sistem yang menghadap jaringan yang mendelegasikan tugas kontrol listrik ke sesuatu seperti Arduino
Chris Stratton
2

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 , 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:

Bagaimana saya bisa mulai berlatih mengembangkan perangkat IOT pertama saya?

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.

anonim2
sumber
1
Dan di mana lebih baik memulai daripada iot.stackexchange.com/questions/675/… ?
Mawg mengatakan mengembalikan Monica