Embedded System Project : External Sensor (part 4)

Galuh Dipa Bharata
3 min readFeb 21, 2021

--

Halooo!! kembali lagi dengan aku di embedded system project, segmen external sensor.

Pekan lalu aku sudah melakukan project tentang internal sensor, nah kali ini masukklah bagian external sensor.

External sensor yg aku gunakan disini adalah BME280

Modul sensor BME280 membaca tekanan barometrik, suhu, dan kelembaban. Nah kan tekanan itu ada pengaruhnya sama ketinggian, sensor ini juga dapat memperkirakan ketinggian berdasarkan tekanan yg ada. Kurang lebih itu yg dapat dilakukan BME280.

Nah alat yg aku pakai itu ada ESP32, Jumper Male-to-Female, lalu tentu sensor BME280 itu sendiri. Ini nii gambarnyaa

Alat yg ku gunakan

Oke alatnya udah, sekarang skema nya, aku ambil skema yg sudah ada di randomnerdtutorial.com, kurang lebih seperti ini

Skema yg digunakan

Secara fisik kurang lebih seperti ini.

Nah oke, skemanya tidak terlalu sulit, tinggal colok aja GPIO 21 ke Pin SDA, GPIO 22 ke Pin SCL pada sensor BME280.

OKE! mengenai penjelasan GPIO atau sudah ku tulis di sini ya!

https://galuhdipa165.medium.com/embedded-system-project-digital-input-and-output-ffd964730de5

OKE!

Setelah sudah terpasang, kita download libraries dari arduino dengan cara Sketch → Include Library → Manage Libraries.. lalu search seperti yg ada digambar di bawah ini, dan download!

Lanjut ke program yang sudah disediakan nihh, kurang lebih programnya seperti yg dibawah ini.



#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

/*#include <SPI.h>
#define BME_SCK 18
#define BME_MISO 19
#define BME_MOSI 23
#define BME_CS 5*/

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI

unsigned long delayTime;

void setup() {
Serial.begin(9600);
Serial.println(F("BME280 test"));

bool status;

// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}

Serial.println("-- Default Test --");
delayTime = 1000;

Serial.println();
}


void loop() {
printValues();
delay(delayTime);
}

void printValues() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println(" *C");

// Convert temperature to Fahrenheit
/*Serial.print("Temperature = ");
Serial.print(1.8 * bme.readTemperature() + 32);
Serial.println(" *F");*/

Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa");

Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" m");

Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println(" %");

Serial.println();
}

Oke, pertama libraries

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

Diatas adalah libraries yg sudah ada dari yg kita download diatas. Lalu dibawah ini ada setup(). Ada pembuatan variabel yg menyimpan nilai awal bme.begin()

void setup() {
Serial.begin(9600);
Serial.println(F("BME280 test"));

bool status;

// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}

Serial.println("-- Default Test --");
delayTime = 1000;

Serial.println();
}

ada inisiasi pada sensornya, yaitu pembuatan status yg merupakan sebuah boolean yg mana akan mengecek apakah sensor terpasang atau tidak.

Lalu ada printing values didalam loop()

printValues() ini sendiri berisi perintah untuk memprint hasil yg didapatkan dari sensor, dengan menggunakan object dari bme ini. Mulai dari bme.readTemprature() yg membaca nilai tempratur ruangan, bme.readHumidity() yg kelembapan, bme.readPressurre() yg akan membaca tekanan, dan bme.readAltitude(SEALEVELPRESSURE_HPA) yg akan membaca ketinggian.

Oke untuk tes dari eksperimennya akan ditampilkan melalui video dibawah ini.

OKE! Semua sudah selesai.

Nah pelajaran yg saya dapat mengenai eksperimen kali ini adalah, ketika saya menutupi sensor dengan tangan saya, yg terjadi adalah humidity atau kelembapannya semakin tinggi presentasenya, artinya sensor berfungsi dengan baik. Lalu ketika percobaan terjadi beberapa kesalahan yaitu tentang pin wire yg kurang baik saat dipasangkan. Ketika pemasangan kurang baik, akan terjadi error yg cukup membingungkan.

Terimakasih sudah membaca :D
Galuh Dipa Bharata
18219100

--

--