Saya seorang pemula di IoT dan ingin memulai karir saya di IoT. Ketika saya mencari di Google untuk startup di IoT, saya menemukan banyak blog. Dan saya menemukan bahasa yang digunakan dalam IoT seperti C #, Java, Node.js, dan mikrokontroler seperti Arduino, Raspberry Pi, Intel, Netduino, dll.
Karena saya baru mengenal IoT, saya tidak tahu bahasa mana yang terbaik dan mikrokontroler mana yang saya gunakan untuk startup?
Untuk startup dasar yang saya katakan, saya ingin membuat perangkat yang memiliki tampilan yang menunjukkan cuaca untuk lokasi yang diberikan dari ponsel saya. Jadi ini bisa menjadi contoh yang baik untuk startup yang mencakup perangkat keras, Internet dan perangkat lunak.
Perangkat akan bertenaga baterai, layar digital kecil dan ya pembatasan biaya.
Mikrokontroler dan bahasa apa yang harus saya gunakan yang memenuhi persyaratan saya untuk menunjukkan cuaca?
sumber
Jawaban:
Secara pribadi, saya akan memilih Raspberry Pi 3B untuk ini, meskipun mungkin jauh lebih kuat daripada yang Anda butuhkan. Alasan saya menyarankan ini adalah:
Ini memiliki LAN Nirkabel 802.11 b / g / n internal, jadi Anda akan dapat menghubungkannya ke jaringan Wi-Fi daripada dengan kabel Ethernet
Ini juga mendukung Bluetooth, jadi Anda mungkin dapat terhubung ke ponsel melalui itu.
Anda juga akan memerlukan unit layar, dan, mudahnya, ada beberapa tampilan yang dirancang untuk Raspberry Pi, seperti layar sentuh 4DPI-32 ini . Anda seharusnya dapat menempatkan layar secara langsung ke header 40-pin:
Yayasan Raspberry Pi , CC BY-SA 4.0 . Saya sadar ini secara teknis adalah Pi 2B, tetapi GPIO adalah sama pada 3B.
Adapun aspek pemrograman dalam kasus ini, yang perlu Anda lakukan adalah mengambil cuaca dari suatu API di suatu tempat, dan menampilkannya di layar sebagai program GUI. Layar hanya berfungsi seperti output HDMI untuk Pi, jadi Anda tidak perlu melakukan sesuatu yang istimewa. Untuk Python, Anda dapat menggunakan Tkinter untuk membuat UI dasar, atau Anda bahkan dapat memilih untuk menulis aplikasi web dalam HTML / CSS / JS, tergantung pada apa yang Anda sukai. Anda bisa menggunakan OpenWeatherMap API secara gratis; dokumentasi tersebut ditautkan untuk setiap titik akhir API.
Pada titik ini, itu terserah Anda. Bahasa terbaik di sini adalah bahasa yang paling nyaman bagi Anda. Jika Anda suka AngularJS, cukup buat halaman HTML, ambil cuaca dengan Angular (atau gunakan perpustakaan seperti ini untuk membantu Anda) dan tampilkan menggunakan beberapa CSS untuk membuatnya terlihat bagus.
Untuk benar-benar mendapatkan lokasi, saya menduga akan lebih mudah untuk hanya mengizinkan pengguna untuk mengetikkan lokasi mereka di layar sentuh Pi. Mengirim lokasi ponsel Anda mungkin sedikit lebih sulit, meskipun Anda mungkin dapat menemukan sesuatu jika Anda banyak meneliti.
Untuk penggunaan baterai, pertanyaan tentang Raspberry Pi Stack Exchange ini layak dibaca.
sumber
The Onion Omega 2 klaim untuk menjadi komputer Linux terkecil di dunia. Klaim itu mungkin tidak sepenuhnya benar (lihat vocore2 di bawah ini, misalnya) tetapi dalam pengalaman saya itu harus dalam 3 terkecil. Biaya hanya $ 5, built-in wifi, dirancang dengan IoT khusus dalam pikiran. Memiliki beberapa perisai yang tersedia di situs web mereka . Produk baru, tampaknya memiliki komunitas yang kuat dan aktif. Pendukung Kickstarter mendapatkan perangkat. Layak dicoba.
Juga, seperti yang ditunjukkan dalam komentar, periksa vocore2 , yang sebenarnya tampaknya lebih kecil dari Bawang, dan lebih murah seharga $ 4. Saat ini sedang didanai di IndieGoGo dan perkiraan tanggal pengiriman adalah Februari 2017 (bulan depan pada saat penulisan ini). Juga terlihat memiliki berbagai macam dermaga yang tersedia, dan memiliki router wifi built-in, yang agak keren.
Saya baru saja menemukan itu beberapa hari yang lalu dan tidak memiliki pengalaman dengan mereka. Catatan, bagaimanapun, karena kebaruan mereka, beberapa paket Linux Anda dapat digunakan untuk menggunakan mungkin tidak tersedia belum (misalnya, saya tahu benar bahwa pada saat ini menulis paket gstreamer tidak tersedia pada Onion namun, Anda harus membangun dari sumber, meskipun gstreamer tidak relevan untuk Anda).
Singkatnya, seperti jawaban yang lain katakan, Pi adalah perangkat biaya rendah yang bagus. Jangan lupakan Raspberry Pi Zero , komputer kecil seharga $ 5 lainnya di sepanjang garis Bawang. Ini tidak memiliki semua port yang dimiliki oleh Pi yang lebih besar tetapi jika Anda tidak keberatan, atau jika Anda hanya ingin menggunakan 3 untuk pengembangan dan Nol untuk ukurannya dalam produk akhir, itu adalah pilihan lain yang patut dipertimbangkan.
Perangkat lain, beberapa mahal, termasuk:
Juga perhatikan bahwa Vilros membuat beberapa starter kit Pi yang luar biasa (lebih murah di Amazon) yang dikemas dengan OS, Wifi yang berfungsi, heat sink, case, bekerja langsung di luar kotak dan menghemat satu ton pekerjaan pengaturan yang kasar. Juga layak untuk dicoba jika Anda memilih rute Pi. Vilros juga digunakan untuk membuat starter kit Beaglebone, yang sepertinya tidak lagi tersedia di situs mereka tetapi jika Anda mencari Newegg / Amazon / etc. Anda masih dapat menemukan stok yang tersedia.
Ngomong-ngomong, Arduino (atau mikrokontroler lain, berbeda dengan komputer papan tunggal yang tercantum di atas) dengan sendirinya mungkin bukan yang Anda inginkan di sini. Arduino hanyalah Atmel ATmega168 / 328. Itu tidak menjalankan OS dan tidak benar-benar melakukan apa pun selain persis apa yang Anda perintahkan. Jadi misalnya, untuk jaringan Anda memerlukan perisai ethernet, yang dikirimkan dengan pustaka kontrol ethernet penuh yang saya percaya menyediakan tumpukan TCP dan UDP (saya tidak pernah menggunakannya, hanya menelusuri situs mereka) dan tentu saja membutuhkan banyak ruang kode terbatas.
Maka Anda harus membangun klien cuaca Anda dan semuanya di atas itu, dan Anda harus melakukan semuanya dalam 32KB atau kurang. Ini rasa pengembangan yang berbeda dari melakukan pengembangan Linux / Windows di Pi / Beaglebone / Gumstix / Colibri / etc. Agak di luar lingkup jawaban ini.
Apa Arduino adalah baik untuk di sini adalah sebagai add-on untuk sistem utama Anda untuk melakukan hal-hal antarmuka perangkat keras, seperti sensor membaca tekanan, tombol, kontrol dasar elemen elektronik, hal semacam itu.
Pengembangan sistem tertanam adalah binatang yang sama sekali berbeda dari pengembangan desktop yang akan Anda lakukan pada Pi, dan saya benar-benar tidak akan merekomendasikan mencoba melakukan ini dengan Arduino sendirian, terutama tanpa pengalaman.
sumber
Saya menyarankan pendekatan langkah demi langkah untuk mencari tahu bahasa dan pengontrol apa yang harus Anda gunakan. Mikrokontroler yang Anda butuhkan akan tergantung pada tugas yang Anda inginkan. Secara teoritis tugas tersebut akan mengatur beberapa persyaratan yang akan dipenuhi oleh mikrokontroler yang sesuai, jadi Anda harus memilih mikrokontroler dengan persyaratan ini.
Tentukan kisah pengguna untuk perangkat. Apa yang Anda harapkan darinya? Apa yang Anda inginkan?
Dalam kasus Anda, itu sudah ditentukan oleh Anda:
Sekarang langkah 1. memberi Anda sesuatu untuk memulai. Anda dapat memutuskan perangkat keras apa yang Anda butuhkan pada level diagram blok.
Anda tentu akan memerlukan tampilan dan mungkin modul WiFi atau Bluetooth untuk berkomunikasi dengan ponsel Anda. Mengakses basis data cuaca global mungkin akan memerlukan koneksi Internet. Anda harus mengontrol keduanya dengan modul MCU atau WiFi (Anda memerlukan Internet sehingga Anda dapat mengecualikan Bluetooth) harus dapat mengontrol tampilan dan menjalankan perangkat lunak Anda.
Anda dapat mulai mencari bagian-bagian tertentu. Anda dapat mulai dengan memutuskan baterai apa yang akan Anda gunakan, sehingga Anda dapat mempertimbangkan konsumsi daya dari komponen potensial Anda. Saya telah menyimpulkan proses umum untuk memilih MCU di salah satu jawaban saya sebelumnya . Pada dasarnya hal yang sama harus dilakukan di sini. Cari tampilan yang murah, mungkin akan menggunakan antarmuka SPI atau I2C untuk komunikasi. Kemudian Anda dapat mencari modul Wifi dengan SPI / I2C dan memiliki MCU terintegrasi atau MCU terpisah dan modul WiFi. Modul WiFi individu mungkin akan menggunakan UART untuk berkomunikasi sehingga MCU individu harus memilikinya di sepanjang SPI / I2C.
Adapun bahasa. Kebanyakan mikrokontroler akan membatasi kemungkinan Anda di bidang ini. Dalam sebagian besar kasus, pilihan Anda adalah C, C ++ atau Assembly, secara tegas berbicara tentang mikrokontroler di sini dan bukan komputer papan tunggal.
Jika Anda memutuskan untuk menggunakan BeagleBone atau Raspberry yang dapat menjalankan Linux atau OS canggih lainnya, maka saya katakan bahwa bahasa terbaik adalah bahasa yang Anda tahu paling baik, tentu saja ia harus mampu menangani tugas tersebut. ( Anda dapat menjalankan Java pada RPi jika mau. )
Membuka soket ke layanan data cuaca global dapat dilakukan dalam C, C # atau Python juga. Akan sedikit lebih sulit untuk memproses JSON dengan C tetapi tentu saja mungkin.
Berbicara tentang biaya secara umum. Pilihan terbaik adalah mencari perangkat layar berkemampuan WiFi, akan ada banyak hasil dan kebanyakan dari mereka akan menggunakan perangkat keras yang sama, dan mungkin ini yang termurah.
Anda dapat menggunakan modul WiFi ESP8266 yang kompatibel dengan Arduino untuk terhubung ke internet dan antarmuka layar. Ini akan membutuhkan banyak mengutak-atik daripada Raspberry Pi akan tetapi akan lebih murah.
Berikut ini adalah proyek Hackaday tentang tampilan ESP8266 + OLED .
sumber
Membuat startup bukan tentang apa yang dapat Anda lakukan dengan teknologi dan bahkan tentang produk. Untuk startup yang sukses yang dapat memikat VC, Anda harus terlebih dahulu memikirkan pasar yang akan Anda layani. Tetapi memikirkan pasar yang akan Anda layani tidak cukup. Anda harus memiliki data nyata tentang pasar. Ini bukan hanya tentang sesuatu yang masuk akal bagi Anda. Menciptakan suatu produk dan kemudian mengikatnya untuk menjualnya bukanlah pendekatan yang berhasil dan itulah akhir dari kebanyakan startup yang gagal. Pasar adalah KEBUTUHAN NYATA. Ketika Anda membuat sebuah produk, buatlah itu untuk mengatasi Pasar tertentu. Inilah yang membuat produk yang sukses, produk yang menjual sendiri karena orang sudah mencarinya. VC hanya berinvestasi pada startup yang memiliki produk seperti itu terutama jika mereka sudah menjual.
Untuk memilih teknologi untuk mengembangkan produk Anda terlebih dahulu, Anda perlu tahu apa yang perlu dilakukan produk Anda, beginilah cara memecahkan masalah di Pasar yang dipilih. Kemudian lihat apa yang calon pelanggan bersedia membayar untuk itu. Kemudian pilih teknologi yang memungkinkan waktu-ke-pasar tercepat dengan tetap menjaga biaya sesuai anggaran. Kemudian outsourcing pengembangan atau mendapatkan pasangan yang bisa melakukannya dan bersedia bekerja sama dengan Anda. Bagikan keuntungan 50/50 dengan pasangan Anda. Kemudian ketika Anda memiliki prototipe, mulailah menyusun rencana bisnis Anda dan ingat bahwa Anda hanya dapat memikat VC jika Anda menunjukkan kepada mereka bagaimana mereka dapat menghasilkan uang.
Jika Anda perlu menurunkan biaya produk Anda untuk produksi massal, Anda dapat menggunakan bahasa tingkat yang lebih rendah dan pengontrol mikro yang kurang banyak akal seperti Microchip PIC atau Silicon Labs EFM dengan ASM / C / C ++. Jika produk tidak akan diproduksi massal (100k +) gunakan bahasa tingkat yang lebih tinggi dan pengontrol mikro yang lebih banyak akal, seperti Micro Python atau Lua dengan ARM32 MIPS, atau bahkan Linux dengan ARM32 / 64. Ini menghemat biaya pengembangan tetapi meningkatkan harga perangkat keras. Ingat, harga produk bukan hanya PCB dengan komponen; pengembangan, perumahan, pengepakan, dan segala hal lain yang diperlukan untuk menjual produk harus dikenai biaya. Masukkan itu dalam rencana bisnis. Dan jangan pergi ke VC dengan Arduino atau Raspberry pi atau Bawang atau apa pun yang terlihat seperti gadget penghobi,
Mulai dari atas, bukan ke bawah, dan yang terbaik dari keberuntungan.
sumber