Sensor api ditemukan dari kompor gas paling sederhana hingga pabrik industri besar. Ada berbagai jenis sensor api -- ada yang murah, ada yang mahal. Namun semuanya dibangun untuk satu tujuan: mendeteksi api. Pada artikel ini, saya akan memandu Anda tentang cara membuat sensor api dengan sedikit uang tambahan dan beberapa pengetahuan pemrograman mikrokontroler.
Apa yang Anda Butuhkan
- Modul sensor api
- Mikrokontroler ( Arduino atau NodeMCU ESP8266 atau PIC )
- Sumber daya
- Perangkat keluaran ( buzzer atau smartphone)
Modul Sensor Api
Bintang dari proyek ini adalah modul sensor api ini:
Modul ini berisi fototransistor dan elektronik pengkondisi sinyal . Fototransistor menghantarkan lebih banyak arus listrik ketika terkena cahaya. Fisika mengajarkan kita bahwa cahaya (tampak) terdiri dari semua warna, dari merah hingga ungu. Dengan melapisi fototransistor dengan epoksi hitam, ia menjadi lebih sensitif terhadap warna merah atau bahkan tidak terlihat di bawah merah atau infra merah. Menariknya, api memancarkan radiasi infra merah. Jadi, ketika sensor ini melihat nyala api, ia menghantarkan lebih banyak arus.
Mikrokontroler membaca tegangan, bukan arus. Dengan demikian, rangkaian pengkondisi sinyal dalam modul mengubah arus menjadi level tegangan yang dianggap aman untuk mikrokontroler (biasanya tegangan maksimum harus menjadi tegangan suplai ke mikrokontroler).
Modul sensor api juga berisi LED indikator. Satu LED menyala (PWR-LED) saat modul dinyalakan sementara yang lain menyala (D0-LED) saat sensor mendeteksi api.
Selain itu, tegangan dari pin D0 turun ke nol di sekitar api dan naik ke tegangan suplai ketika tidak ada. Kami menggunakan ini sebagai pemicu untuk mikrokontroler.
Arduino - Antarmuka Sensor Api
Saya bertujuan untuk menggunakan tiga jenis mikrokontroler yang berbeda untuk proyek ini. Pertama, saya akan menunjukkan cara membuat sensor api Arduino dengan indikator buzzer.
Karena modul hanya menyediakan dua nilai, hidup dan mati, kita tidak perlu menggunakan pin analog Arduino apa pun. Diagram pengkabelan di bawah ini menunjukkan bahwa pin D0 modul terhubung ke pin digital 2 Arduino UNO :
Selain itu, pin VCC atau + terhubung ke 5V dan pin G terhubung ke GND. Perhatikan bahwa modul detektor kebakaran juga dapat berjalan pada 3.3V. Akhirnya, kabel merah buzzer terhubung ke pin 5 sementara pin hitamnya terhubung ke GND. Dalam proyek ini, saya menggunakan buzzer yang dapat berjalan dari tegangan 3 hingga 24 V.
Sketsanya sederhana:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | const int sensor_pin = 2; const int buzzer = 5; void setup() { pinMode(sensor_pin,INPUT_PULLUP); pinMode(buzzer,OUTPUT); } void loop() { if(digitalRead(sensor_pin) == LOW){ digitalWrite(buzzer,HIGH); }else{ digitalWrite(buzzer,LOW); } } |
Saya memberikan pin 2 dan 5 alias yang sesuai:
1 2 | const int sensor_pin = 2; const int buzzer = 5; |
Di dalam setup() , kita mendeklarasikan sensor_pin sebagai pin input sedangkan buzzer adalah pin output:
1 2 | pinMode(sensor_pin,INPUT_PULLUP); pinMode(buzzer,OUTPUT); |
Dalam loop() , kami memeriksa apakah tegangan sensor_pin adalah nol. Jika ya, kami membunyikan bel. Jika tidak, maka matikan bel.
1 2 3 4 5 6 7 | void loop() { if(digitalRead(sensor_pin) == LOW){ digitalWrite(buzzer,HIGH); }else{ digitalWrite(buzzer,LOW); } } |
Sensor api dapat mendeteksi nyala api dalam sudut pengambilan 60 derajat. Jarak nyala api bervariasi dengan cahaya sekitar. Dalam pengujian saya, sensor mampu mendeteksi nyala korek api dari jarak sekitar 5 cm.
Menggunakan Sensor Api dengan PIC16F877A
Perbedaannya di sini adalah bahwa kita menggunakan mikrokontroler yang berbeda dan dengan demikian, kompiler yang berbeda. Namun demikian, konsepnya sama: PIC16F877A membaca pin D0 dan jika pin D0 rendah, nyalakan bel dan seterusnya.
Berikut diagram pengkabelan:
Pin D0 dari modul pendeteksi kebakaran terhubung ke RB0 sedangkan kabel merah buzzer terhubung ke RB1.
Kode C (XC8) untuk rangkaian di atas ditunjukkan di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #define _XTAL_FREQ 4000000 #include <xc.h> void main(void) { TRISBbits.TRISB0 = 1; TRISBbits.TRISB1 = 0; while(1){ if(PORTBbits.RB0 == 0){ PORTBbits.RB1 = 1; }else{ PORTBbits.RB1 = 0; } } return; } |
Pin RB0 adalah pin input sedangkan RB1 adalah pin output. Oleh karena itu bit TRIS yang sesuai harus:
1 2 | TRISBbits.TRISB0 = 1; TRISBbits.TRISB1 = 0; |
Kami kemudian menggunakan pernyataan if-else sederhana untuk memeriksa apakah sensor mendeteksi api dan kemudian menghidupkan atau mematikan bel:
1 2 3 4 5 6 | while(1){ if(PORTBbits.RB0 == 0){ PORTBbits.RB1 = 1; }else{ PORTBbits.RB1 = 0; } } |
Tidak ada fungsi loop() di XC8 jadi kita membuat infinite loop kita sendiri menggunakan pernyataan while(1) .
Itu saja untuk antarmuka detektor api dengan mikrokontroler PIC.
Sensor Api dan ESP8266
Akhirnya kami turun ke mikrokontroler terakhir kami, the ESP8266 . Tentu saja, kami akan menggunakan sensor api dengan ESP8266 sesuai dengan kemampuan yang terakhir. Dalam versi ini, pengguna akan menerima pemberitahuan push di smartphone-nya setiap kali detektor kebakaran dipicu.
Berikut diagram pengkabelan:
Diagram ini paling sederhana karena kita tidak membutuhkan buzzer lagi. Perhatikan bahwa saya menggunakan papan NodeMCU ESP8266 untuk proyek ini. Jika ini pertama kalinya Anda menggunakan NodeMCU, silakan ikuti instruksi untuk memprogramnya menggunakan Arduino IDE .
Berikut sketsa lengkapnya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | /* * This sketch sends push notifications via Pushbullet App through PushingBox. * * You need to create a service and scenario at pushingbox.com to acquire * a device ID. Also change lines 12 and 13 to your own WiFi SSID and password * */ #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> const char* ssid = "<your WiFi SSID>"; const char* password = "<your WiFi password>"; const char* host = "api.pushingbox.com"; const char* devid = "vADAB279A6A4DA5A"; const int sensor_pin = 14; void setup() { pinMode(sensor_pin,INPUT_PULLUP); pinMode(buzzer,OUTPUT); Serial.begin(115200); delay(10); // We start by connecting to a WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } int value = 0; void loop() { delay(5000); if(digitalRead(sensor_pin) == LOW){ //flame sensor triggered Serial.print("connecting to "); Serial.println(host); // Use WiFiClient class to create TCP connections WiFiClient client; const int httpPort = 80; if (!client.connect(host, httpPort)) { Serial.println("connection failed"); return; } // We now create a URI for the request String url = "/pushingbox"; url += "?devid="; url += devid; Serial.print("Requesting URL: "); Serial.println(url); // This will send the request to the server client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); unsigned long timeout = millis(); while (client.available() == 0) { if (millis() - timeout > 5000) { Serial.println(">>> Client Timeout !"); client.stop(); return; } } // Read all the lines of the reply from server and print them to Serial while(client.available()) { String line = client.readStringUntil('\r'); Serial.print(line); } Serial.println(); Serial.println("closing connection"); }else{;} } |
Sebelum mengupload sketsa ini, kita perlu mengkonfigurasi Pushingbox dan Pushbullet agar proyek ini berfungsi.
Pertama, buka Pushingbox dan daftar atau masuk ke akun Anda. Anda kemudian akan diarahkan ke halaman Dashboard
Klik tab Layanan Saya dan klik “Tambahkan layanan”:
Namun, sebelum Anda menekan tombol “Pilih layanan ini”, Anda harus memiliki akun Pushbullet terlebih dahulu.
Pergi ke Pushbullet :
Beri nama konfigurasi, tempel token Pushbullet Anda lalu klik kirim.
Selanjutnya, klik tab Skenario Saya untuk menambahkan skenario yang ditautkan ke layanan yang baru saja dibuat:
Setelah membuat skenario, tambahkan tindakan:
Pastikan Anda memilih skenario yang sesuai:
Sebuah jendela muncul; berikan judul tindakan, pesan pemberitahuan push, lalu klik kirim.
Terakhir, salin ID perangkat yang lokasinya ditampilkan:
Sekarang pada sketsa, cari baris 16 dan ubah ID perangkat:
1 | const char* devid = "vADAB279A6A4DA5A"; |
Juga, jangan lupa untuk memberikan SSID dan kata sandi WiFi Anda sendiri di baris 12 dan 13:
1 2 | const char* ssid = "<your WiFi SSID>"; const char* password = "<your WiFi password>"; |
Unggah sketsa dan Anda siap melakukannya! Sekarang, instal aplikasi Pushbullet di ponsel cerdas Anda dan masuk ke akun Anda. Setiap kali detektor kebakaran dipicu, Anda akan menerima pemberitahuan push!
Kesimpulan
Proyek sensor api di sini terbatas dalam sudut pengambilan dan jangkauan. Namun, ada modul khusus yang berisi lima fototransistor:
Posting Komentar