banner image
Sedang Dalam Perbaikan

Project Sensor Alkohol Grove Menggunakan Arduino

Sensor alkohol grove.





Kebanyakan orang mencari untuk membeli sensor ini untuk membuat breathalyser DIY sendiri. Jangan repot-repot. Anda tidak akan mendapatkan akurasi yang Anda cari, atau Anda mungkin tidak akan memiliki semua peralatan / bahan yang diperlukan untuk mengkalibrasi itu. Meskipun Anda bisa mendapatkan ide kasar, saya TIDAK akan merekomendasikan menggunakan sensor ini untuk membuat keputusan berdasarkan pengukuran kuantitatif.
Saya juga akan menunjukkan bahwa sensor ini tidak spesifik untuk Alkohol. Ini akan bereaksi terhadap beberapa bahan kimia lain juga. Dengan kata lain, Anda tidak dapat berasumsi bahwa hasil positif sama dengan keberadaan alkohol (etanol) di udara. Itu bisa butana, LPG, Isopropanol dll.
Proyek ini akan berusaha untuk menunjukkan berapa banyak alkohol di udara, untuk tujuan mengidentifikasi keberadaan, serta mendapatkan perkiraan kasar dari kekuatan alkohol, dalam berbagai minuman meriah.

PLEASE NOTE:
Jangan merendam sensor dalam cairan, dan menghindari percikan sensor. Juga jangan biarkan sensor terkena bahan kimia kuat (termasuk alkohol) untuk waktu yang lama. Ada waktu burn-in selama 48 jam untuk sensor ini. Yang berarti bahwa itu benar-benar berkinerja lebih baik setelah digunakan selama lebih dari 48 jam. Sensor juga perlu melakukan pemanasan, yang seringkali memakan waktu lebih dari 15 menit. Setelah terpapar dengan konsentrasi alkohol yang kuat di udara, sensor ini membutuhkan waktu yang lama untuk pulih. Pertimbangkan ini saat merencanakan proyek masa depan Anda.
 


Bagian yang diperlukan


  1. Arduino Uno (atau papan yang kompatibel)
  2. Grove Base Shield (v2)
  3. Grove Alcohol Sensor
  4. Grove 16x2 LCD (Putih pada Biru)
  5. Grove Universal 4 pin buckled cable: satu disertakan dengan setiap modul.
  6. Kabel USB - untuk menghidupkan dan memprogram Arduino
  7. Baterai / Power bank

Informasi lebih lanjut tentang Modul Grove dapat ditemukan di sini:

Grove Base Shield memiliki 14 pin di sisi Analog, dan 18 pin di sisi digital. Periksa jumlah pin pada UNO Arduino Anda (atau papan yang kompatibel) untuk memastikan perisai akan duduk dengan baik di atas. TIDAK kompatibel dengan papan Arduino yang memiliki tata letak pin header Arduino Duemilanove.


IDE Arduino

Walaupun ada banyak alternatif Arduino IDE di luar sana, saya akan merekomendasikan Anda menggunakan Arduino IDE resmi untuk proyek ini. Saya menggunakan aplikasi Arduino IDE resmi (v1.8.5) untuk Windows 10.
Pastikan untuk mendapatkan versi terbaru untuk sistem operasi Anda di sini.



 

Perpustakaan diperlukan

Perpustakaan berikut akan digunakan dalam kode Arduino:
  1. Wire.h
  2. math.h
  3. rgb_lcd.h
The Wire.h perpustakaan digunakan untuk komunikasi I2C, untuk layar LCD Grove.
The math.h perpustakaan digunakan untuk fungsi pow (), untuk menghitung konsentrasi alkohol di udara.
The rgb_lcd.h perpustakaan menyederhanakan pengoperasian layar LCD.

Pustaka Wire.h dan math.h sudah ada dalam Arduino IDE, tidak perlu lagi mengunduh atau menginstal. Namun, Anda perlu menginstal pustaka rgb_lcd.h - yang dapat diunduh dari GitHub . Setelah Anda mengunduh file zip, instal ke dalam Arduino IDE:
  1. Muat IDE Arduino
  2. Navigasikan ke Sketsa> Sertakan perpustakaan> Tambahkan .ZIP library ...
  3. Pilih file zip yang diunduh dari GitHub, dan tekan tombol "Open"
  4. Periksa apakah itu dipasang dengan benar dengan menavigasi ke File> Examples> Grove-LCD RGB Backlight

 

Kode Arduino

Jika opsi Grove-LCD RGB Backlight tersedia di folder contoh, maka Anda dapat melakukannya.

Pilih File> Baru

Rekatkan kode berikut ke Arduino IDE, dan unggah ke Arduino UNO (atau papan yang kompatibel).

HARAP DICATAT: Pastikan Sensor Alkohol TIDAK terhubung ke Arduino saat mengunggah kode Anda ke Arduino. Tampaknya mengganggu komunikasi Serial karena alasan tertentu, dan menjadikan port COM tidak dapat digunakan hingga Anda mereset papan, reboot IDE dan / atau komputer Anda. Cara terbaik untuk menghindari masalah ini, adalah mencabut sensor Alkohol dari pelindung Grove Base, SETIAP kali Anda mengunggah kode ke Arduino.


/ * ================================================ ==========================
* Proyek: Proyek Deteksi Alkohol
* Penulis: Scott C
* Tanggal dibuat: 17 Desember 2018
* Versi Arduino IDE: 1.8.5
* Sistem Operasi: Windows 10 Pro
* Tautan Tutorial: https://harianidnet.blogspot.com/
*
* *** PERINGATAN ***: Anda harus TIDAK PERNAH menggunakan ini sebagai breathalyser kehidupan nyata.
*
* Keterangan:
* Proyek pendeteksian Alkohol bertujuan untuk secara kasar mengukur konsentrasi alkohol di udara.
* Kualitas atau keakuratan proyek ini belum diverifikasi.
* Nilai-nilai yang diperoleh karena itu BUKAN dipercaya untuk tujuan menakjubkan.
* Ada banyak sekali kekurangan dalam proyek ini yang harus Anda TIDAK PERNAH menggunakannya sebagai breathalyser kehidupan nyata.
* Jika Anda memilih untuk mereproduksi proyek ini, Anda melakukannya dengan risiko Anda sendiri.
* Saya tidak bertanggung jawab atas tindakan atau keputusan atau akibat dari penggunaan kode ini (atau bagian daripadanya)
*
* Grove Alkohol sensor bereaksi terhadap keberadaan zat-zat ini di udara
* - Alkohol (etanol)
* - Isopropil alkohol
* - Butane
* - Gas LPG
* - Asap bensin
* - mungkin zat lain yang belum saya uji.
* Oleh karena itu reaksi sensor yang nyata tidak dapat diasumsikan dari adanya Alkohol (etanol) di udara.
*
* Ucapan Terima Kasih:
* Kode ini telah diadaptasi dari kode wiki Seeedstudio:
* http://wiki.seeedstudio.com/Grove-Alcohol_Sensor/
================================================== ========================== * /
/ * ================================================ =======================================
* Perpustakaan:
* Wire.h = digunakan untuk komunikasi I2C - yang digunakan oleh layar LCD Grove
* rgb_lcd.h = menyederhanakan pengoperasian layar LCD
* math.h = required for the pow() function which is used to calculate the concentration of alcohol in the air.
========================================================================================*/
#include <Wire.h>
#include "rgb_lcd.h"
#include <math.h>
/*=======================================================================================
* GLOBAL VARIABLES:
* lcd = used to control the lcd text messages
* point 1,2 and 3 = are variables used to hold the sensor readings
* ratio = holds the ratio of alcoholic air to clean air
* alc = holds the concentraton of alcohol in the air in parts per million (ppm)
* titleCounter = is a variable which aids in the clean up of residual text on the lcd screen
========================================================================================*/
rgb_lcd lcd;
float point1;
float point2;
float point3;
float ratio;
double alc;
int titleCounter=0;
/*=======================================================================================
* SETUP:
* Initialise the LCD (16 columns, 2 rows)
* Create introductory text for the project
* Set Analog Pin 1 as an OUTPUT pin, and set it to LOW. This activates the heater on the Alcohol sensor,
* which sometimes causes the program to hang. If it hangs, just reset the Arduino.
* If the program successfully passes the "heater activation" section, we want to display a confirmation message.
* Then prepare the LCD for the next section (loop).
========================================================================================*/
void setup() {
lcd.begin(16,2);
printToLCD("Alcohol Project","",3000);
printToLCD("Alcohol Project","by ARDUINOBASICS",3000);
lcd.clear();
pinMode(A1,OUTPUT); // heater pin is on Analog Pin (A1)
digitalWrite(A1,LOW);
printToLCD("Heater", "Activated", 3000);
printToLCD("Reading:", "", 10);
}
/*=======================================================================================
* LOOP:
* Take a reading from the Grove Alcohol sensor and assign it to variable "point1"
* Print the reading on the LCD screen
*
* Take another reading from the sensor and assign it to "point2"
* If the point2 reading is LOWER than point1, then take a third reading.
* If the point3 reading is LOWER than point2, then we will do the Alcohol concentration calculations
*
* Calculate the ratio of point3 to point1
* Use the ratio to calculate the alcohol concentration in the air.
* The alc formula was derived from extrapolating the points from the datasheet and plotting them in Microsoft Excel
* Once plotted in Excel, I obtained the curve calulation and imported it back into this program.
*
* WARNING ************************************************************
* Please note, that this calculation does NOT produce accurate results. It is for demonstration purposes only - and a proof of concept.
* This should not be used for making any decisions in real life.
* The calculated Alcohol in parts per million (ppm) is printed to the LCD.
*
* The titleCounter is used to tidy up stray characters that are left behind from bigger numbers.
* This is because I do not clear the screen every time. I don't like the flickering.
* So I clear the screen after every 20 readings.
========================================================================================*/
void loop() {
point1 = readSensor();
lcd.setCursor(0,1);
lcd.print(point1);
delay(100);
point2 = readSensor();
if(point2<point1){
delay(100);
point3 = readSensor();
if(point3<point2){
printToLCD("Alcohol (ppm):","",10);
while(point3<point2){
ratio = point3 / point1;
point3 = readSensor();
alc = 3.9839 * pow(ratio, -2.188);
lcd.setCursor(0,1);
lcd.print(alc);
delay(100);
titleCounter++;
if(titleCounter>20){
printToLCD("Alcohol (ppm):","",10);
titleCounter=0;
}
}
printToLCD("Reading:","",10);
}
}
}
/*=======================================================================================
* readSensor():
* Take the avareage of 100 readings from Analog pin 0.
* Calculate the voltage from the analog reading, and assign it to the sensorVolt variable.
* - for greater accuracy, replace Vref with your own reference voltage measurement
* Calculate the resistance using a voltage divider equation, and assign it to RS_gas.
* - the 10k resistor (R16 on the Grove alcohol sensor datasheet) is not included in the
* calculation because it is later cancelled out in the "ratio" calculation.
* The resistance of the gas being measured is returned.
======================================================================================= */
float readSensor(){
float vRef = 5.0
float sensorValue = 0;
float sensorVolt;
float RS_gas;
for(int x = 0 ; x < 100 ; x++){
sensorValue = sensorValue + analogRead(A0);
}
sensorValue = sensorValue/100.0;
sensorVolt = (float)(sensorValue*vRef)/1024;
RS_gas = sensorVolt/(vRef-sensorVolt);
return RS_gas;
}
/*=======================================================================================
* printToLCD():
* a function that aims to further simplify the process of writing to the LCD screen.
======================================================================================= */
void printToLCD(String line1, String line2, int timeDelay){
lcd.clear();
lcd.print(line1);
lcd.setCursor(0,1);
lcd. print (line2);
delay (timeDelay);
}




 

Instruksi koneksi




Sekarang kode telah diunggah, sekarang saatnya untuk membuat koneksi yang diperlukan dari Arduino ke modul LCD Grove 16x2, dan juga ke sensor Alkohol Alkohol.

  1. Lepaskan koneksi kabel USB dari Arduino untuk melepaskan daya.
  2. Instal Grove Base Shield (v2) ke Arduino UNO. Pin tajuk pada pelindung Pangkalan harus sejajar persis dengan tajuk perempuan Arduino. Harap pastikan bahwa tidak ada pin yang tersesat atau tidak selaras yang tidak ditemukan oleh dewan Arduino.
  3. Setel Base Shield Switch ke 5V. Saklar ada di sudut dekat LED pada Perisai Dasar.
  4. Sambungkan salah satu ujung kabel 4-pin ke konektor A0 pada Grove Base Shield, dan ujung lainnya dari kabel ke modul Grove Alcohol Sensor.
  5. Sambungkan satu ujung kabel 4-pin ke konektor I2C pada Grove Base Shield, dan ujung lainnya kabel ke modul LCD Grove 16x2.
  6. Anda sekarang dapat menerapkan daya ke Papan Arduino melalui colokan listrik atau kabel USB.

 

 

Tabel Koneksi


Modul Sensor Alkohol Arduino ke Grove


Sensor Grove Alkohol beroperasi pada 5V.
Jika Anda menggunakan Grove Base Shield, letakkan sakelar ke 5V.
Lepaskan koneksi sensor Alkohol dari pelindung dasar saat mengunggah kode ke Arduino.



Modul LCD Arduino ke Grove 16x2


Modul Grove 16x2 LCD dapat beroperasi dari 5V atau 3.3V.
Saya menggunakan 5V dari UNO Arduino.


 

Penjelasan Proyek

Ketika Arduino dinyalakan, Anda akan disajikan dengan pesan, "Proyek Alkohol oleh ArduinoBasics". Ini adalah layar pembuka untuk memperkenalkan proyek.

Pin pemanas pada sensor Alkohol kemudian diaktifkan, yang dapat menyebabkan program macet. Jika Anda tidak melihat pesan "Heater Activated", dan hanya melihat layar LCD kosong - setel ulang papan Arduino. Ada pin reset pada pelindung Basis di sebelah LED. Pesan ini hanya akan muncul sekitar 3 detik sebelum mulai membaca dari sensor Alkohol.

Saya menduga bahwa setiap sensor berbeda, namun, saya menemukan bahwa sensor bekerja paling baik, setelah digunakan selama lebih dari 48 jam. Saya biasanya menunggu sensor membaca hingga di atas 5 atau 6 sebelum memaparkannya pada asap alkohol. Anda akan melihat bacaan perlahan meningkat seiring waktu. Tunggu sampai pembacaan stabalise, yang bisa memakan waktu antara 15-20 menit, atau lebih lama jika sensor belum digunakan untuk sementara waktu.
 



Di hadapan uap / uap alkohol, pembacaan sensor akan turun, dan akan memicu Arduino untuk mengubah tampilan untuk menunjukkan konsentrasi alkohol yang kasar di Udara. Jangan memaparkan sensor pada konsentrasi alkohol yang kuat untuk waktu yang lama, karena hal ini dapat secara permanen mempengaruhi kinerja sensor setelahnya. Saya tidak dapat memberi tahu Anda bacaan apa yang NORMAL, karena saya hanya memiliki satu sensor, dan tidak memiliki apa pun untuk membandingkannya. Saya telah melihat pembacaan sensor saya menjadi 11,96, tetapi telah memperhatikan bahwa pembacaan maksimum berubah setiap kali saya mengujinya (kadang-kadang lebih tinggi, kadang-kadang lebih rendah). Saya menduga bahwa kondisi lingkungan sekitar akan mempengaruhi maksimum ini (yaitu suhu / kelembaban / kualitas udara), dan juga lamanya waktu sensor harus "terbakar" untuk.

Setelah Anda mencapai nilai maksimum (atau selama Anda bersedia menunggu), silakan dan mengujinya. Arahkan sensor di atas minuman keras yang mencurigakan, dan tangkap nenek Anda yang licik.


 

Kesimpulan

Poin pembelajaran terbesar bagi saya tentang penggunaan sensor Grove Alkohol, adalah berapa lama yang mengejutkan bagi sensor untuk menusuk, dan saya kira betapa tidak sabarnya saya. Jenis sensor ini sering diiklankan sebagai cara untuk membuat Breathalyser Anda sendiri. Tetapi saya segera mengetahui betapa sulitnya itu, dan setelah pengalaman saya dengan sensor, saya tidak akan pernah merenungkan menggunakannya untuk tujuan itu, karena saya tidak dapat memverifikasi keakuratan hasil.

Bisakah ia mendeteksi alkohol di udara? Ya bisa. Sensor Grove Alkohol dapat memberikan perkiraan kasar konsentrasi uap alkohol di udara, dan paling baik, saya akan mengatakan bahwa itu memberi Anda hasil semi-kuantitatif. Sensor yang sama akan mendeteksi butana, LPG, bensin, asap isopropanol - yang baik atau buruk, tergantung pada apa yang Anda rencanakan untuk menggunakannya.
 



Salah satu cara paling umum membaca hasil Alkohol adalah melalui monitor Serial. Namun, sensor Alkohol akan karena suatu alasan mengunci atau membekukan komunikasi Serial. Saya menemukan cara terbaik untuk mengamati pembacaan dari sensor Alkohol adalah dengan menggunakan modul Grove LCD.

Modul Grove LCD sangat mudah digunakan dan memungkinkan proyek yang lebih portabel. Modul-modul Grove umumnya sangat mudah disambungkan ke pelindung Grove Base, dan sangat "plug and play". Kabel Universal 4pin, mengurangi "sarang tikus" kabel - endemik untuk proyek Arduino.

Saya harap tutorial ini sedikit membantu Anda. Jika Anda menggunakan proyek ini, harap beri tahu saya pengalaman Anda dalam komentar di bawah, dan bahkan lebih baik, beri tahu saya siapa yang Anda kenal.
Project Sensor Alkohol Grove Menggunakan Arduino Project Sensor Alkohol Grove Menggunakan Arduino Reviewed by MCH on December 26, 2019 Rating: 5

No comments:

Powered by Blogger.