Jump to content

Sensor Tambak

From IoT Colabs Wiki
Revision as of 05:13, 23 April 2026 by Colabs Admin (talk | contribs)

Deskripsi Singkat

Daftar Komponen

  • Board (PCB Custom)
  • ESP 32


Perakitan

Pemrograman (Source Code)

Tahap pertama dalam memulai programming utama adalah menyiapkan initial code yang mencakup seluruh library yang diperlukan untuk komunikasi sensor dan transmisi data. Berikut adalah code program yang digunakan.

#include <Wire.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_INA219.h>

#include <SoftwareSerial.h>

#include <DHT.h>

#include <Adafruit_BME280.h>

#include <OneWire.h>

#include <DallasTemperature.h>  //DS18B20

#include <SPI.h>

#include <LoRa.h>

Sensor DHT 22

Konfigurasi sensor DHT22 dimulai dengan mendefinisikan pin koneksi dan tipe sensor yang digunakan untuk pengukuran suhu dan kelembaban udara. fungsi setDHT() untuk akuisisi data, dan printDHT() untuk menampilkan hasil. Berikut adalah code program yang digunakan.

//DHT22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//Constants

#define DHTPIN 27          // what pin we're connected to

#define DHTTYPE DHT22      // DHT 22  (AM2302)

DHT dht(DHTPIN, DHTTYPE);  //// Initialize DHT sensor for normal 16mhz Arduino


float dhtTemperature = 0;

float dhtHumidity = 0;


void setDHT() {

//Read data and store it to variables hum and temp

dhtHumidity = dht.readHumidity();

dhtTemperature = dht.readTemperature();

}

void printDHT() {

Serial.print("Humidity = ");

Serial.print(dhtHumidity);

Serial.print("Temperature = ");

Serial.print(dhtTemperature);

Serial.println("ºC");

}

Sensor Tinggi Muka Air (Ultrasonic RS485 A01ANY4B)

Konfigurasi sensor DHT22 dimulai dengan mendefinisikan pin koneksi dan tipe sensor yang digunakan untuk pengukuran tinggi muka air. Berikut adalah code program yang digunakan.

// Ultrasonic RS485 A01ANY4B ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#define MAX485_DE 26

#define MAX485_RE_NEG 25

#define RXD2 16

#define TXD2 17

ModbusMaster node485;

float distance = 0;

void preTransmission() {

digitalWrite(MAX485_RE_NEG, 1);

digitalWrite(MAX485_DE, 1);

}

void postTransmission() {

digitalWrite(MAX485_RE_NEG, 0);

digitalWrite(MAX485_DE, 0);

}

void setDistance() {

  uint8_t result = node485.readHoldingRegisters(257, 1); // Read one register

  delay(100);

  if (result == node485.ku8MBSuccess) {

   int jarak = node485.getResponseBuffer(0);  // First buffer index holds the temperature

   distance = 200.0 - jarak / 10.0;

  }

}

void printDistance() {

Serial.print("Distance = ");

Serial.print(distance);

  Serial.println(" cm");

}

Sensor BME 280

Sensor BME280 dikonfigurasi untuk mengukur empat parameter lingkungan sekaligus: suhu, tekanan barometrik, kelembaban, dan estimasi ketinggian berdasarkan tekanan permukaan laut standar. Berikut adalah code program yang digunakan.

//BME280 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;  // I2C

float bmeTemperature;

float bmePressure;

float bmeHumidity;

float bmeAltitude;


void setBMEValues() {

  try {

   bmeTemperature = bme.readTemperature();               //Celcius

   bmePressure = bme.readPressure() / 100.0F;             // hPa

   bmeHumidity = bme.readHumidity();                     // %

   bmeAltitude = bme.readAltitude(SEALEVELPRESSURE_HPA); // meter

  } catch (String error) {

  Serial.println("Error BME: " + error);

  }

}


void printBMEValues() {

Serial.print("Temperature = ");

Serial.print(bmeTemperature);

  Serial.println(" *C");


Serial.print("Pressure = ");

Serial.print(bmePressure);

  Serial.println(" hPa");


Serial.print("Approx. Altitude = ");

Serial.print(bmeAltitude);

  Serial.println(" m");


Serial.print("Humidity = ");

Serial.print(bmeHumidity);

  Serial.println("  %");


  Serial.println();

}


Konfigurasi dan Kalibrasi