Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Otomasi Rumah Pintar Berbasis Raspberry Pi 2 dan Windows 10 IoT

Komponen dan Perlengkapan

Aplikasi dan Layanan Online

Tentang Proyek

Di era saat ini, teknologi dapat meningkatkan kehidupan manusia. Teknologi berkembang dekat demi dekat. Otomasi dulu adalah ilmu fiksi namun tidak lagi. Dengan menggabungkan teknologi terbaru dengan rumah, kita dapat membangun rumah yang luar biasa. Dengan Raspberry Pi dan Windows 10, kita dapat membangun sistem otomasi rumah yang mampu mengoperasikan perangkat rumah secara otomatis.

Memulai

Sebelum memulai proyek, mari kita pahami dasar-dasarnya terlebih dahulu. Pertimbangkan gambar berikut (Konfigurasi Keseluruhan):

Konfigurasi untuk Ruangan

Sekarang mempertimbangkan skenario ruangan, sebuah Arduino UNO akan mengontrol perangkat dan membaca data sensor. Secara berkala, Raspberry Pi meminta data sensor yang dikumpulkan oleh Arduino UNO. Gambar "Room Architecture" menggambarkan bagaimana Arduino UNO akan terhubung dengan perangkat dan sensor. Setiap ruangan memiliki beberapa perangkat yang dapat dikontrol (mis. Lampu(s), Kipas, Stop Kontak(s), dll.), satu PassiveIR (untuk mendeteksi kehadiran manusia di ruangan), satu sensor suhu (LM35 untuk mengumpulkan suhu ruangan) dan LDR (untuk mendeteksi intensitas cahaya di dekat jendela ruangan).

Pemetaan Alamat Perangkat

Bagian terpenting adalah bagaimana kita akan mengidentifikasi perangkat? Itu sederhana. Kita akan membuat alamat perangkat dengan menggabungkan nomor ruangan dengan nomor perangkat.

Contoh:

Jadi sampai saat ini kita tahu konfigurasi keseluruhan. Singkatnya, Raspberry Pi akan bertindak sebagai pengontrol utama. Setiap ruangan memiliki Arduino UNO sendiri yang bertindak sebagai slave dari Raspberry Pi. Komunikasi antara Raspberry Pi dan Arduino UNO akan dilakukan menggunakan I2C.

Skematik

Untuk memudahkannya, mari kita mulai mengimplementasikan untuk ruangan pertama. Lihat skematik untuk menghubungkan komponen dengan cara yang tepat.

I2C Bus Stripe: Untuk melampirkan lebih dari satu Arduino Anda dapat menggunakan I2C Bus Stripe seperti yang ditunjukkan di bawah ini.

Cara Memasang Perangkat dengan Papan Relay

Semua selesai di sisi hardware. Sekarang saatnya untuk membangun perangkat lunak.

Perangkat Lunak

Proyek kami terdiri dari Raspberry Pi 2 dan Arduino UNO. Perangkat lunak Raspberry Pi 2 dikembangkan dalam Visual Studio 2015. Saya mengasumsikan pembaca sudah paham dengan pembuatan proyek untuk Raspberry Pi 2 di Visual Studio 2015. Saya juga mengasumsikan pengguna memiliki pengetahuan menengah tentang framework Arduino, Visual C# dan Windows Universal XAML.

Mari kita pahami perangkat lunak dalam bentuk berikut:

Protokol (Bagaimana Raspberry Pi 2 dan Arduino Berbicara melalui I2C)

Sebelum melanjutkan, mari kita pertama tentukan bagaimana Raspberry Pi dan Arduino berbicara. Untuk membuat protokol yang andal, kita harus terlebih dahulu memiliki tujuan atau sasaran yang jelas untuk komunikasi. Dengan mempertimbangkan proyek ini, tujuannya adalah:

Mari kita mulai mendefinisikan protokol terlebih dahulu. Protokol mendefinisikan aturan untuk berkomunikasi melalui bus. Protokol hanyalah urutan byte.

Saya telah mendefinisikan protokol untuk mengirim dan menerima byte. Mengirim byte tetap tiga sementara menerima array byte adalah empat belas byte.

Struktur Kelas (Bagaimana Raspberry Pi 2 Memelihara Objek)

Seperti yang dibahas terlebih dahulu, proyek ini mempertimbangkan seluruh rumah. Rumah terdiri dari beberapa ruangan dan ruangan terdiri dari beberapa perangkat. Jadi struktur OOP dari konfigurasi seperti ini ditunjukkan di bawah ini:

Kelas utama "Home" terdiri dari beberapa objek ruangan sebagai daftar generik ruangan (List<Room>). Kelas Home menyediakan metode statis untuk memuat dan menyimpan objek rumah di Pi untuk digunakan nanti.

Ruangan terdiri dari perangkat sebagai daftar generik perangkat (List<Device>) dan struktur sensor untuk mengenkapsulasi semua sensor ke dalam satu.

Perangkat terdiri dari rincian mereka dan fungsi untuk menyalakan dan mematikan mereka menggunakan protokol Mode - 2. Kelas AmbientLight, PassiveIR dan Temperature menyediakan akses ke data lingkungan ruangan. Objek Ruang memelihara data sensor dan menyegarkan mereka secara berkala menggunakan protokol Mode - 0.

Antarmuka Pengguna

Setiap aplikasi harus ramah pengguna. Untuk membuat aplikasi yang ramah pengguna, mulai dengan wire-frame. Asumsikan Anda akan menggunakan aplikasi Anda sendiri dan temukan tujuan utama dan bagaimana mengintegrasikannya dengan cara yang paling mudah bagi pengguna akhir.

Dalam skenario aplikasi ini, tujuan utama kami adalah:

Untuk melakukannya, saya telah membagi masalah menjadi:

Wire-frame

Berdasarkan wire-frame, saya telah mengembangkan UI yang ditunjukkan berikutnya. Anda dapat mengunduh kode sumber lengkap. Tautan untuk unduhan disediakan di akhir artikel.

Cara Mengonfigurasi?

Saya telah mencoba membuat perangkat lunak ini se-sederhana mungkin. Dengan konfigurasi kecil, Anda dapat mengoperasikan perangkat langsung menggunakan Raspberry Pi 2 ini. Konfigurasi langkah demi langkah ditunjukkan di bawah ini:

Bagaimana saya mengontrol pompa air dan geyser menggunakan aplikasi ini?

Anda dapat melampirkan pompa air dan geyser dengan cara yang sama seperti menambahkan perangkat. Namun Anda tidak dapat melampirkan pompa air atau geyser langsung ke papan relay untuk memberinya daya. Itu akan meledakkan papan relay serta berbahaya.

Untuk mengoperasikan pompa air atau geyser, hubungkan pompa air atau geyser dengan contactor dan hubungkan coil contactor dengan papan relay. Jadi sekarang, saat Anda mengoperasikan perangkat, relay mengaktifkan coil contactor dan begitu pompa atau geyser mulai/berhenti. Sebelum membeli contactor, pastikan rating coil dan rating contactor. Contactor tersedia dalam banyak variasi. Jadi verifikasi dengan rating pompa air Anda. Disarankan untuk membeli contactor dengan rating sedikit lebih tinggi dari rating pompa air Anda.

Bagaimana saya men-deploy solusi ini ke Raspberry Pi 2?

Anda dapat merujuk ke tautan ini untuk memahami proses deployment.

Bagaimana saya mendaftarkan aplikasi ini sebagai aplikasi startup?

Banyak hobiis ingin aplikasi mereka mulai segera setelah Raspberry Pi 2 menyala. Untuk melakukannya, baca artikel saya: Windows 10 IoT Core : Setting Startup App

Masalah Tunjukan

Arduino Bootup

Quando Arduino menyala, pin D13 berkedip. Baik untuk tidak menghubungkan pin relay pada D13 karena saat Arduino menyala atau me-restart, D13 akan berkedip sekali dan jika ada perangkat yang terhubung dengan Relay (dikontrol melalui D13) akan berkedip, juga.

Solusi: Ada dua opsi: yang pertama, jangan menghubungkan relay dengan D13. Yang kedua sedikit rumit. Anda dapat menulis ulang firmware OptiBoot Arduino yang tidak menggunakan D13 saat menyala dan membakar bootloader itu ke Arduino.

Masalah Jam

Raspberry Pi 2 tidak memiliki chip Real Time Clock onboard. Jadi tidak mungkin untuk mempertahankan waktu setelah kegagalan daya atau boot segar. Jadi RTC eksternal harus dilampirkan dan diprogram untuk mempertahankan tanggal waktu.

Solusi: NTP dapat digunakan tetapi memerlukan koneksi Internet atau bahkan Arduino dapat menangani RTC dan Raspberry Pi meminta tanggal waktu saat boot. Juga baik untuk melampirkan RTC eksternal langsung dengan RPi 2.

Masalah Debugging

Saya telah mengalami banyak masalah saat mengembangkan Universal App dalam C#. Universal app adalah superset dari WinRT dan jadi begitu banyak operasi asinkron yang perlu dilakukan. Jika error muncul dalam operasi asinkron, ini menjadi sakit kepala untuk menyelesaikannya. Kapan pun exception atau error terjadi, sebagian besar waktu saya mengalami layar berikut:

Tidak ada titik pada baris yang berpotensi error, tidak ada pesan yang ramah programmer, tidak ada apa-apa. Saya harus menempatkan begitu banyak breakpoint untuk menemukan penyebab error. Dalam debugging, kadang universal app hanya menutup tanpa pemberitahuan sebelumnya dan tiba-tiba jendela watch saya menjadi tidak berguna. Penyebab perilaku ini dijelaskan di tautan ini.

Solusi: Tempatkan breakpoint sebelum baris yang berpotensi error diharapkan.

Singkatnya, pada saat ini (saat artikel ini diterbitkan) universal app bagus tetapi kurang fitur debugging seperti aplikasi Windows konvensional.

Masa Depan

Tidak ada keterbatasan ketika datang ke fitur, ide baru atau bahkan untuk mengatasi keterbatasan yang ada. Namun tidak layak untuk menambahkan setiap fitur sekaligus. Pada rilis ini, artikel ini memungkinkan Anda memahami kekuatan nyata Raspberry Pi 2 dan Windows IoT. Windows Universal XAML adalah framework GUI yang bagus untuk Windows 10 IoT & Raspberry Pi 2 memiliki prosesor grafis yang baik onboard. Dengan menggabungkan keduanya, solusi GUI yang tampak luar biasa dapat dibuat. Selain itu, Raspberry Pi 2 memiliki CPU quad-core 900MHz, yang sangat bagus untuk solusi multi-threaded (dalam UWP, Task). Ini adalah proyek dasar hingga menengah bagi mereka yang ingin mempelajari dasar sistem embedded dan perangkat lunak (mis. komunikasi bus I2C, cara mengoperasikan alat, desain protokol kustom, desain OOP untuk aplikasi dunia nyata dan wire-frame).

Di masa depan, kita dapat menambahkan kemampuan untuk berkomunikasi dengan perangkat jarak jauh menggunakan RadioFrequency atau InfraRed alih-alih bus I2C. Portal manajemen web menggunakan Azure dapat diintegrasikan untuk perangkat seluler. Selanjutnya otomasi nyata akan diintegrasikan seperti operasi berbasis peristiwa, operasi terjadwal dengan chip RTC. Misalnya, nyalakan lampu halaman belakang pada pukul 7:00 Sore dan matikan kembali mereka pada pukul 10:00 Malam; contoh yang baik untuk berbasis peristiwa adalah menyala-lampu taman saat intensitas cahaya lingkungan menurun di bawah intensitas tertentu dan seterusnya. Jadi tidak ada keterbatasan untuk platform Windows 10 IoT Core baru ini untuk Raspberry Pi 2.

Semoga Beruntung & Tetap Aman.

Silakan tanyakan bantuan atau pertanyaan.

Kode

Sketch Arduino
/* Sketch Arduino v0.4 ... */
// Kode lengkap tersedia dalam proyek asli
Perangkat Lunak Raspberry Pi 2 (Windows Headed App)

https://github.com/AnuragVasanwala/Home-Automation--RPi2-WinIoT-

Skematik

Anda dapat menambahkan banyak ruangan dengan melampirkan Arduino individual dengan alamat slave I2C yang unik pada bus.

Proses manufaktur

  1. Membuat Sensor Suhu Jarak Jauh dengan Raspberry Pi dan Python – Panduan Langkah demi Langkah
  2. Membangun Kontroler Rumah Cerdas 433 MHz dengan Sensorflare dan Raspberry Pi
  3. Sensor Keberadaan Kamar Mandi Berbasis Raspberry Pi dengan Pemberitahuan Suara dan SMS melalui Twilio
  4. Memantau Suhu Rumah dengan Dashboard Raspberry Pi
  5. Bangun Sistem Otomatisasi Rumah Berbasis Raspberry Pi untuk Kontrol Jarak Jauh
  6. Kirim Data IMU Adafruit 10DOF dari Raspberry Pi 2 ke Azure Event Hubs dengan Windows 10 IoT Core
  7. Pemantauan Suhu & Kelembaban Akurat dengan SHT15 pada Windows 10 IoT Core
  8. Menginstal Windows 10 IoT Core pada Raspberry Pi 3 Model B+: Panduan Langkah demi Langkah
  9. Integrasi Microsoft Kinect dengan Raspberry Pi untuk Deteksi Manusia Real-Time pada Robot Sonbi
  10. Otomatisasi & IoT: Memperforma Masa Depan Manajemen Rantai Pasokan