Tentang proyek ini
Sensor yang berbeda digunakan untuk mendapatkan data suhu, semuanya memiliki keterbatasan dan akurasi yang berbeda. Untuk proyek berbasis kesehatan, sangat penting untuk mendapatkan nilai paling tepat dari suhu eksternal dan tubuh untuk mendapatkan pandangan realistis tentang keadaan kesehatan dan rekomendasi apa pun. Karena alasan ini, saya memutuskan untuk membandingkan ketepatan sensor suhu paling populer dan sensor suhu mikro:bit.
Untuk proyek ini saya mengambil sensor suhu DS18B20, DS18B20 tahan air, AM2302, arduino dan papan mikro:bit dan termometer standar.
Pertama, saya menghubungkan sensor ke papan arduino (lihat bagian Skema) dan begitulah tampilannya terhubung:
Kemudian saya mengunggah kode untuk papan arduino (lihat bagian Kode) dan saya menggunakan platform Vittascience (https://en.vittascience.com/microbit/) untuk menghasilkan kode untuk proyek ini:
Berikut hasil saat kami memeriksa suhu kamar (10 percobaan disediakan, analisis data dari percobaan dengan data yang paling representatif ditampilkan di bawah):
Termometer ruangan menunjukkan nilai 21°C, yang kami anggap paling tepat. Mikro:bit menunjukkan nilai 27°C, yang sangat jauh dari nilai yang benar. Ketiga sensor yang terhubung ke board arduino cukup akurat dalam menunjukkan suhu ruangan, tetapi sensor AM2302 menunjukkan akurasi tertinggi.
Berikut hasilnya saat kami memeriksa suhu tubuh, menggunakan kabel ekstra untuk dapat menyimpan sensor di tangan saya (10 percobaan disediakan, analisis data dari percobaan dengan data yang paling representatif ditunjukkan di bawah):
* nilai termometer:32,2°C
* mikro:nilai bit:34°C
* sensor kedap air 18B20 (kolom ketiga):32,40 °C
* sensor DS18B20 (kolom pertama):31,50 °C
* sensor AM2302 (kolom kedua):33°C
Oleh karena itu, sensor kedap air 18B20 menunjukkan nilai yang paling tepat dan harus digunakan untuk mengukur suhu tubuh dan sensor AM2302 adalah yang terbaik untuk mengukur suhu ruangan.
Kode
- Kode untuk arduino dan sensor suhu
- Kode untuk mikro:bit
Kode untuk arduino dan sensor suhuC/C++
#include #include #define AM2302_PIN 3#include "cactus_io_DS18B20.h"#include #include #define ONE_WIRE_BUS 2OneWire_BUS;Sensor suhu Dallas(&oneWire);AM2302 dht(AM2302_PIN);int DS18B20_Pin =4;DS18B20 ds(DS18B20_Pin);void setup() { Serial.begin(9600); ds.readSensor(); dht.mulai(); sensor.mulai(); Serial.println("18B20 | AM2302 | DS18B20"); Serial.println("Suhu (C) | Suhu (C) | Suhu (C)");}void loop() { ds.readSensor(); sensor.requestTemperatures(); dht.readSuhu(); if (isnan(dht.humidity) || isnan(dht.temperature_C)) { kembali; } Serial.print(sensors.getTempCByIndex(0)); Serial.print(""); Serial.print(dht.temperature_C); Serial.print(""); Serial.println(ds.getTemperature_C()); delay(1500);}
Kode untuk mikro:bitPython
dari microbit import *uart.init(baudrate=9600, bits=8, parity=None, stop=1, tx=pin8, rx=pin14)sementara True:if button_a.is_pressed():uart.write(str (suhu()))
Skema