Sistem Pembersih Udara Cerdas Berbasis Arduino Yun dengan Sharp Plasmacluster
Komponen dan Perlengkapan
Arduino Yun
1
Sharp Plasmacluster Air Purifier
1
GP2Y1010AU0F Compact Optical Dust Sensor
1
Relay Module
1
Breadboard (generik)
1
Kapasitor 220 µF
1
Resistor 150Ω
1
Kabel AC 1 meter
1
Kabel Jumper Male/Male
1
Kabel Jumper Male/Female
1
Terminal Block
1
Kawat Solder
1
Alat dan Mesin yang Diperlukan
Multimeter
Pistol Solder
Wire Stripper
Aplikasi dan Layanan Online
Amazon Web Services AWS IoT
Arduino IDE
Terminal
Mosquitto MQTT
Tentang Proyek Ini
Kehadiran debu di rumah, kantor, dan lingkungan manusia lainnya tidak dapat dihindari. Faktanya, menurut Environmental Protection Agency, udara dalam ruangan dapat terpolusi 2 hingga 5 kali lebih dari udara luar. Polusi udara udara ini berkontribusi pada gangguan kecil seperti mata gatal, bersin, dan sakit kepala pada manusia. Lebih parah lagi, ini dapat menjadi faktor penyumbang utama alergi parah, asma yang mengancam nyawa.
Untuk mengatasi masalah ini, mesin pembersih udara yang bekerja akan mengatasi masalah ini. Tetapi, saya ingin memanfaatkan keuntungan IoT untuk membuat pembersih udara menjadi lebih cerdas. Alih-alih cara konvensional dengan menyalakan pembersih udara sepanjang hari, saya ingin menerapkan "otak - mikrokontroler" dan "sensor" untuk beroperasi hanya jika kehadiran debu mencapai tingkat kesadaran tertentu, hal ini dapat menghemat banyak listrik! Dan status operasional akan tersedia di "jendela terminal" saya di laptop atau perangkat klien "mengaktifkan MQTT" apa pun setiap kali saya bepergian ke mana saja di seluruh dunia.
Langkah 1: Kumpulkan Semua Komponen
Untuk melihat semua komponen, Anda dapat mengunduh Daftar Bahan (BOM) dari Dropbox saya.
Atau rujuk ke bagian komponen dan perlengkapan saya.
Langkah 2: Pastikan Semua Potongan Membuat Kesan
Hal pertama yang saya lakukan setelah mendapatkan semua komponen, saya mengujinya segera untuk memastikan fungsionalitas komponen saya berperilaku seperti yang seharusnya.
Untuk pengaturan GP2Y1010AU0F Sharp Dust Sensor, Anda dapat merujuk ke tutorial blog oleh Cyrille Médard de Chardon dan Christophe Trefois. Tutorial ini mencakup yang terbaik dari kabel-koneksi hingga pemrograman.
Untuk pengaturan Relay Module, saya hanya menggunakan status toggle (nyala dan mati) sederhana untuk menguji koneksi untuk fungsi relai.
Langkah 3: Pengkodean
Pengkodeannya sederhana. Tantangannya di sini adalah untuk menggunakan AWS IoT untuk berkomunikasi data dari sensor ke perangkat mana pun yang mengaktifkan MQTT (seperti kasus saya, saya menggunakan laptop). Silakan rujuk ke bagian pengkodean. Menarik sekali, saya juga membuat tutorial video untuk AWS CLI IoT, jadi siapa pun dapat mempelajarinya.
(Catatan: pada saat pembuatan video ini hanya mencakup versi beta)
Langkah 4: Pengkabelan
Langkah 5: Dapatkan Hasil
Demonstrasi Video
Perbaikan Masa Depan
Saya tahu masih banyak perbaikan yang dapat dilakukan untuk proyek ini, terutama "Proyek IoT". Tetapi karena pekerjaan saya selama siang hari, saya hanya dapat menggunakan sebagian waktu luang saya untuk pengembangan proyek ini. Namun, aplikasi "cara pemantauan data secara real-time" (petunjuk: NodeJS) memikat saya. Dan akan ditambahkan sebagai daftar keinginan (atau daftar tugas) untuk proyek ini di masa depan yang akan datang. Tetap menyimak!
Kesimpulan
Ada banyak kesenangan saat melakukan proyek ini, terutama dengan "IoT - Internet of Things". Kemungkinan dan perbaikan masih luas dalam IoT. Juga, saya menikmati belajar cara menggunakan layanan IoT yang disediakan oleh AWS, karena sangat nyaman digunakan (setup sederhana dengan dasbor AWS IoT) dan mengamankan setiap koneksi dengan enkripsi.
Masalah | Pertanyaan | Komentar | Saran
Mungkin, ada beberapa masalah teknis dalam proyek ini yang tidak saya ketahui, Anda dapat meninggalkan komentar atau mengirim pesan pribadi kepada saya, umpan balik Anda sangat dihargai!
Jika ada pertanyaan atau masalah dalam mereplikasi proyek ini, Anda dapat menghubungi saya atau meninggalkan komentar di bawah. Saya akan mencoba sebaik-baiknya untuk membantu Anda, lagi-lagi kami di sini untuk belajar perangkat keras bersama!
Semua macam komentar dan saran dipersilakan.
Kode
Simple-and-Smart-Air-Purifier-System.ino
iot_config.h
iot_config.cpp
dust_config.h
dust_config.cpp
aws_iot_config.h
LICENSE
Simple-and-Smart-Air-Purifier-System.inoArduino
Kode Utama Arduino
/* Source Code for Simple and Smart Air Purifier System Written by Aaron Kow Licence: MIT Licence */ #include "iot_config.h" #include "dust_config.h" aws_iot_setup aws_iot; dust_setup dust_sensor; int measurePin = 4; int ledPower = 12; int relayPin = 13; float result; void setup() { pinMode(ledPower, OUTPUT); pinMode(relayPin, OUTPUT); aws_iot.config(); } void loop() { // set dust density result result = dust_sensor.init(measurePin, ledPower); // AWS IoT MQTT for real-time data monitoring aws_iot.data(result); // if dust density more than 0.25 mg/m3, turn on air filter if (result > 0.25){ digitalWrite(relayPin, HIGH); } else { digitalWrite(relayPin, LOW); } delay(1000); }
iot_config.hC/C++
File Header untuk Konfigurasi IoT Saya
/* Source Code for Simple and Smart Air Purifier System Written by Aaron Kow Licence: MIT Licence */ #ifndef iotconfig_h #define iotconfig_h #include <Arduino.h> #include <aws_iot_mqtt.h> #include <aws_iot_version.h> #include "aws_iot_config.h" class aws_iot_setup { public: void config(void); void test(void); void data(float); }; #endif
/* Source Code for Simple and Smart Air Purifier System Written by Aaron Kow Licence: MIT Licence */ #ifndef dustconfig_h #define dustconfig_h #include <Arduino.h> class dust_setup { public: float init(int, int); }; #endif
dust_config.cppC/C++
Kode Sumber Konfigurasi Sensor Debu
/* Standalone Sketch to use with a Arduino Fio and a Sharp Optical Dust Sensor GP2Y1010AU0F ... */ /* * This Source Code is Modified for Simple and Smart Air Purifier System * Written by Aaron Kow */ #include "dust_config.h" int samplingTime = 280; int deltaTime = 40; int sleepTime = 9680; float voMeasured = 0; float calcVoltage = 0; float dustDensity = 0; float dust_setup::init(int measurePin, int ledPower){ digitalWrite(ledPower,LOW); delayMicroseconds(samplingTime); voMeasured = analogRead(measurePin); delayMicroseconds(deltaTime); digitalWrite(ledPower,HIGH); delayMicroseconds(sleepTime); calcVoltage = voMeasured * (5.0 / 1024); dustDensity = 0.17 * calcVoltage - 0.1; return dustDensity; }
aws_iot_config.hC/C++
File Header untuk Konfigurasi AWS IoT
/* * Copyright 2010-2015 Amazon.com, Inc. or its affiliates. ... */ #ifndef config_usr_h #define config_usr_h // Copy and paste your configuration into this file //=============================================================== #define AWS_IOT_MQTT_HOST "<your-endpoint>" #define AWS_IOT_MQTT_PORT 8883 #define AWS_IOT_CLIENT_ID "<your-client-ID>" #define AWS_IOT_MY_THING_NAME "<your-thing-name>" #define AWS_IOT_ROOT_CA_FILENAME "<your-rootCA-filename>" #define AWS_IOT_CERTIFICATE_FILENAME "<your-certificate-filename>" #define AWS_IOT_PRIVATE_KEY_FILENAME "<your-private-key-filename>" //=============================================================== // SDK config, DO NOT modify it #define AWS_IOT_PATH_PREFIX "./certs/" #define AWS_IOT_ROOT_CA_PATH AWS_IOT_PATH_PREFIX AWS_IOT_ROOT_CA_FILENAME #define AWS_IOT_CERTIFICATE_PATH AWS_IOT_PATH_PREFIX AWS_IOT_CERTIFICATE_FILENAME #define AWS_IOT_PRIVATE_KEY_PATH AWS_IOT_PATH_PREFIX AWS_IOT_PRIVATE_KEY_FILENAME #endif
LICENSEMarkdown
MIT Licence
The MIT License (MIT) ...
Source Code for Simple and Smart Air Purifier System
Repositori GitHub untuk Simple and Smart Air Purifier Systemhttps://github.com/AaronKow/Simple-and-Smart-Air-Purifier-System
Skematik
Saya menggunakan schematic.com untuk menggambar skematik ini