/* CODE FOR PENETRATION TEST OF BITUMEN*/
// Include DHT Libraries from Adafruit
// Dependant upon Adafruit_Sensors Library
#include "DHT.h";
// Include NewPing Library
//#include "NewPing.h"
// include the library code:
#include <LiquidCrystal_I2C.h>
// Define Constants
#define DHTTYPE DHT22 // DHT-22 Output Pin connection
//#define DHTTYPE DHT11 // DHT Type is DHT 22 (AM2302)
#define DHTPIN 3 // Change 2 to your actual GPIO pin
// Define I2C Address - change if reqiuired
const int TRIGGER_PIN = 16;
const int ECHO_PIN = 17;
const int i2c_addr = 0x27;
int solenoid_pin = 2;
LiquidCrystal_I2C lcd(i2c_addr, 16,2);
// Define Variables
float penetration; // Stores calculated penetration in cm
float distance_1; // Stores calculated distance in cm
float hum; // Stores humidity value in percent
float temp; // Stores temperature value in Celcius
float duration; // Stores HC-SR04 pulse duration value
float distance_2; // Stores calculated distance in cm
// Initialize DHT sensor for normal 16mhz Arduino
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600); // Initialize serial communication
pinMode( TRIGGER_PIN, OUTPUT); // Set trigger pin as output
pinMode(ECHO_PIN, INPUT); // Set echo pin as input
pinMode(solenoid_pin, OUTPUT);
// set up the LCD's number of columns and rows:
lcd.begin(16,2);
Serial.begin (9600);
dht.begin();
lcd.setCursor(2, 0);
lcd.print("MEASUREMENTS:");
// Send a short pulse to the trigger pin to initiate the measurement
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
// Measure the duration of the pulse from the echo pin
unsigned long duration = pulseIn(ECHO_PIN, HIGH);
// Calculate distance in centimeters
// Speed of sound is 343 meters per second or 0.0343 centimeters per microsecond (divided by 2 because it's a round trip)
float distance_1 = duration * 0.034 / 2; // Distance in centimeters
// Send results to Serial Monitor
if (distance_1 >= 400 || distance_1 <= 2) {
Serial.println("Out of range");
}
else {
Serial.print("distance_1 ");
Serial.print(distance_1);
Serial.print(" cm, ");
lcd.setCursor(9, 1);
lcd.print("D1:");
lcd.print(distance_1, 1);
}
Serial.println(" ");
}
void loop() {
// Send a short pulse to the trigger pin to initiate the measurement
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
// Measure the duration of the pulse from the echo pin
unsigned long duration2 = pulseIn(ECHO_PIN, HIGH);
// Calculate distance in centimeters
// Speed of sound is 343 meters per second or 0.0343 centimeters per microsecond (divided by 2 because it's a round trip)
float distance_2 = duration2 * 0.034 / 2; // Distance in centimeters
// Send results to Serial Monitor
if (distance_2 >= 400 || distance_2 <= 2) {
Serial.println("Out of range");
}
else {
Serial.print("distance_2 ");
Serial.print(distance_2, 1);
Serial.print(" cm, ");
Serial.print("distance_1 ");
Serial.print(distance_1, 1);
Serial.print(" cm, ");
lcd.setCursor(0, 1);
lcd.print("D2:");
lcd.print(distance_2);
penetration=abs((distance_1)-(distance_2));
Serial.print("Penetration: ");
Serial.print(penetration);
Serial.print(" 1/10mm");
delay(2000);
//lcd.setCursor(0, 1);
//lcd.print(" ");
//lcd.setCursor(0, 1);
// lcd.print("P:");
//lcd.print(penetration);
}
Serial.println(" ");
}