Smart Parking Meter – Tutorial DIY untuk Membangun Meteran Parkir IoT by unsplash
Latihan instruksional ini menunjukkan cara membangun model aplikasi meteran penghentian cerdas yang diberdayakan IoT menggunakan IBM Bluemix dan PubNub.
Kelompok vokal kami berharap bahwa kemacetan lalu lintas akan menjadi masalah pertama yang ditangani oleh kota yang lebih cerdas.Parkir adalah faktor lain yang berkontribusi terhadap kesengsaraan lalu lintas.Jadi, bagaimana kita bisa mengatasinya? Dengan meteran untuk parkir pintar. IBM Bluemix dan PubNub digunakan untuk membuat prototipe DIY dari aplikasi meteran parkir pintar IoT dalam tutorial ini. Aplikasi ini melayani tiga tujuan utama:
- Memberi pengemudi pandangan langsung dari tempat parkir yang kosong dan tersedia.
- Memberi pengemudi kemampuan untuk memesan tempat parkir.
- Penagihan yang dilacak secara otomatis sehubungan dengan tindakan pengemudi (seperti masuk dan keluar dari tempat parkir).
Penyiapan Proyek dan Repo Kode Lengkap
Untuk penggemar IoT, proyek ini adalah eksperimen DIY yang hebat. Oleh karena itu, kode sumber lengkap proyek bluemix-parking-meter dapat ditemukan di GitHub jika Anda ingin mengujinya.
Dari mengonfigurasi perangkat keras hingga menghosting dan menjalankan aplikasi, langkah-langkah terperinci dapat ditemukan di petunjuk pembuatan dan file readme.
Anda harus membuat akun Bluemix dan PubNub untuk menghosting aplikasi ini. Untuk membuat akun Anda, buka halaman pendaftaran IBM Bluemix dan halaman add-on PubNub. akun tingkat tersedia.
Komponen
Aplikasi ini terdiri dari tiga bagian:
- Menghentikan Server Eksekutif (PMS) — menyaring semua tempat parkir dan mengawasi pengukuran dan pengisian untuk semua klien.
- Tempat parkir terhubung ke Platform Perangkat Keras IoT, yang juga mendeteksi ada atau tidaknya kendaraan.
- Aplikasi seluler menyediakan antarmuka yang ramah pengguna untuk digunakan pengemudi dalam mengelola penggunaan dan penagihan parkirnya.
Platform perangkat keras menggunakan sensor ultrasonik untuk menentukan apakah kendaraan berada di tempat parkir dan ditenagai oleh Arduino Yun. PMS diimplementasikan sebagai server aplikasi berbasis Python. Ini mengelola penagihan dan reservasi selain melacak semua perangkat .
Aplikasi Seluler, yang juga dikenal sebagai Auto Park, adalah aplikasi Android yang menggunakan JavaScript dan Cordova.
Jaringan Stream Data Realtime PubNub memberdayakan semua komunikasi antara PMS dan perangkat keras serta PMS dan aplikasi seluler. Server aplikasi PMS dihosting di platform cloud IBM Bluemix.
Perangkat Keras
Berikut ini adalah daftar komponen perangkat keras yang digunakan untuk proyek ini:
- ArduinoYun
- Sensor ultrasonik HC-SR04 (3 nos.)
Dan diagram skematik terkait untuk rangkaian perangkat keras di bawah ini:
Ada tiga bagian fungsional dari perangkat keras:
- Pengontrol Utama — Arduino Yun yang mendukung WiFi bertindak sebagai pengontrol utama untuk mengendalikan beberapa tempat parkir. Secara berkala memantau dan mendapatkan status setiap tempat parkir di dalam yurisdiksinya melalui sensor ultrasonik. Itu juga berinteraksi dengan PMS melalui PubNub dan menerbitkan status parkir
- Pengontrol Sensor — Ini adalah komponen internal papan Arduino Yun, ditenagai oleh chip ATMega32. Ini langsung berinteraksi dengan sensor dan menjalankan loop, setiap beberapa detik, untuk mendapatkan status terbaru dari setiap sensor
- Sensor Ultrasonik — Tiga sensor HC-SR04 digunakan untuk mensimulasikan tiga tempat parkir.
Repositori GitHub berisi kode sumber untuk pengaturan perangkat keras di direktori yun_pubnub (untuk pengontrol master) dan device/hcsr04 (untuk pengontrol sensor).
Server Manajemen Parkir (IBM Bluemix)
PMS ditulis dengan Python dan dapat diperkenalkan sebagai administrasi yang difasilitasi IBM Bluemix. IBM Bluemix memberikan drive pendaftaran ke PMS untuk menyaring gadget peralatan dan mengawasi penghentian pengukuran dan pengisian daya untuk klien. Selanjutnya, Anda harus menghubungkan bantuan add-on PubNub dengan IBM Bluemix Anda yang mewakili PMS untuk bekerja dengan PubNub. Singgung cara di README.md untuk mengetahui cara mengatur dan menghosting aplikasi Python di bawah Bluemix dengan PubNub.
Kode sumber untuk PMS terletak di bawah daftar meteran henti di gudang GitHub.
Aplikasi Seluler
Aplikasi seluler adalah aplikasi Android standar yang dibangun di Cordova. Ini memberi pengguna peta area parkir dengan ruang parkir berkode warna untuk membantu mereka menemukan tempat gratis.
Direktori MobileApp repositori GitHub berisi kode sumber aplikasi seluler.
PubNub
PubNub berfungsi sebagai middleware komunikasi sistem. Menawarkan Jaringan Aliran Data real-time berbasis cloud yang memungkinkan perangkat apa pun untuk berkomunikasi dengan perangkat lain di Internet dan mendukung lebih dari 70 SDK. Untuk komunikasi tanpa batas antara semua komponen, aplikasi ini menggunakan tiga PubNub SDK. Mereka adalah:
- SDK Javascript untuk aplikasi seluler
- Python SDK untuk PMS
- POSIX C SDK untuk Arduino Yun
Seperti yang ditunjukkan di bawah ini, aplikasi ini bergantung pada sejumlah saluran
Operasi Sistem dan Skenario
Lima skenario berikut dapat digunakan untuk memecah seluruh operasi sistem ini.
Skenario 1: Inisialisasi Aplikasi
Plat nomor atau nomor registrasi kendaraan pengguna diminta saat pertama kali aplikasi seluler diluncurkan setelah instalasi. PMS dapat menggunakan ini sebagai pengenal unik untuk melacak aplikasi untuk tujuan penagihan.
Aplikasi kemudian mengirimkan permintaan ke PMS untuk mencari tahu di mana setiap tempat parkir berdiri. Ini digunakan untuk menunjukkan peta, yang memiliki nomor slot (001, 002, dan 003) untuk setiap ruang. PMS dan aplikasi seluler bertukar pesan di cara berikut:
Aplikasi mengirimkan permintaan JSON dengan parameter RequestType disetel ke “1” untuk menunjukkan bahwa ia ingin mendapatkan status massal dari semua tempat parkir. Nomor slot tempat parkir adalah parameter dalam respons JSON PMS, dan statusnya adalah “0 ” atau “1” untuk menunjukkan apakah ruang tersebut ditempati atau kosong.
Tempat parkir yang kosong saat ini disorot dengan warna hijau pada peta di aplikasi seluler, sedangkan yang ditempati atau dipesan disorot dengan warna merah.
Skenario 2: Pembaruan Status Perangkat
PMS segera diberitahu setiap kali tempat parkir mendeteksi ada tidaknya kendaraan.
Nilai “1” menunjukkan bahwa ruang parkir telah ditempati, dan nomor identifikasi slot untuk ruang ini adalah “001”. Sebaliknya, nilai nol menunjukkan bahwa ruang tersebut kosong. Selain itu, PMS mentransmisikan ini data melalui saluran PubNub global yang disebut parking app-resp, yang memungkinkan semua aplikasi memperbarui tampilan peta parkir mereka.
Skenario 3: Permintaan Reservasi & Penagihan Mulai
Dengan mengetuk slot parkir kosong yang diinginkan pada aplikasi, pengguna yang mendekati ruang kosong dapat memesannya terlebih dahulu. Sebagai akibatnya, PMS diminta untuk memulai sesi penagihan pengguna. Untuk memulai penagihan, PMS mengirim pesan ke aplikasi di saluran pribadinya. Selain itu, PMS memulai penghitung waktu.
Dalam interaksi ini, format pesan JSON diperiksa secara lebih rinci sebagai berikut:
- Permintaan reservasi ditunjukkan oleh parameter RequestType, yang memiliki nilai “2.”
- Reg_no adalah nomor plat kendaraan
- Saluran pribadi diidentifikasi oleh reg_no itu sendiri
- SessionType, yang memiliki nilai “0”, adalah awal dari sesi penagihan untuk pengguna yang telah memesan nomor slot yang diwakili oleh nilai deviceID.
Selain itu, PMS juga mengirimkan laporan ke channel parkingapp-resp untuk menerangi semua aplikasi seluler yang saat ini terlibat di tempat parkir tersebut.
Skenario 4: Konfirmasi Reservasi
Saat pengguna akhirnya masuk dan memarkir mobilnya di tempat parkir yang ditentukan setelah melakukan reservasi, perangkat keras mengirimkan pembaruan status ke PMS untuk menunjukkan bahwa reservasi telah dikonfirmasi. PMS mengakhiri pengatur waktu pada titik ini.
Skenario 5: Penghentian Penagihan
Kemudian, ketika pengguna mengeluarkan kendaraannya dari tempat parkir, perangkat keras mendeteksi ini sekali lagi dan mengirim PMS pembaruan status yang memberi tahu mereka bahwa ruang tersebut sekarang kosong. PMS menghitung tagihan pengguna dan mengirimkan pesan penghentian sesi penagihan dan detail tagihan ke aplikasi seluler melalui saluran pribadinya saat menerima pembaruan ini.
Parameter untuk detail tagihan terdapat dalam pesan JSON yang diterima aplikasi seluler:
Waktu mulai parkir, waktu selesai parkir, total waktu parkir dalam menit, dan jumlah tagihan diwakili oleh s_time>, e_time>, dan t_time>.
Skenario Alternatif
Timer PMS dimulai dalam skenario 3 dan menghitung mundur dari 60 detik ke 0 sebelum melakukan skenario 5 tanpa pemicu perangkat keras jika pengguna memesan tempat parkir tetapi tidak muncul. Dalam hal ini, pengguna ditagih $10 sebagai jumlah minimal.
Selain itu, aplikasi ini tidak memiliki kemampuan untuk mengautentikasi pengguna saat parkir (seperti dalam skenario 4), memastikan bahwa orang yang memesan tempat parkir adalah orang yang menggunakannya. Ini diserahkan kepada pembaca untuk melakukannya jika mereka mau. jadikan aplikasi ini lebih baik dan memungkinkan untuk menerapkannya lebih dekat dengan kehidupan nyata
Wrapping Up – Meter Parkir Pintar
Wrapping Up – Meter Parkir Pintar by unsplash
Kami bersenang-senang mengembangkan dan bereksperimen dengan aplikasi ini, dan mengingat banyak subsistem yang terlibat, menguji seluruh skenario cukup menarik.
Tantangan pengembangan sangat disederhanakan dengan penggunaan layanan IBM Bluemix dan PubNub, yang memungkinkan pengembang untuk berkonsentrasi pada logika aplikasi tanpa khawatir tentang bagaimana membuat komunikasi antara berbagai subsistem berfungsi. Selain itu, kedua layanan ini mampu menangani skala besar , yang dapat digunakan untuk membuat aplikasi serupa di dunia nyata yang perlu aktif dan berjalan 24 jam sehari, 7 hari seminggu dan menerima ribuan pengguna acak.