#include <stdio.h>
#include <stdbool.h>
#include <unistd.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <esp_err.h>
#include "wiringpi.h"
#include "ultrasonic.h"
#define ECHO_GPIO 12
#define TRIGGER_GPIO 13
#define BUZZER_PIN 4
#define MAX_DISTANCE_CM 500
void ultrasonic_test(void *pvParameters)
{
float distance;
ultrasonic_sensor_t sensor = {
.trigger_pin = TRIGGER_GPIO,
.echo_pin = ECHO_GPIO
};
ultrasonic_init(&sensor);
while (true) {
esp_err_t res = ultrasonic_measure(&sensor, MAX_DISTANCE_CM, &distance);
if ( 21 >= distance*100) {
printf("bin was 100%% full !!\n");
}
else if( 120 <= distance*100){
printf("bin was Empty...\n");
}
else if ((110<=distance*100)&(120>=distance*100)){
printf("bin was 10%% full...\n");
}
else if((99<=distance*100)&(110>=distance*100)){
printf("bin was 20%% full...\n");
}
else if((88<=distance*100)&(99>=distance*100)){
printf("bin was 30%% full...\n");
}
else if ((77<=distance*100)&(88>=distance*100)){
printf("bin was 40%% full....\n");
}
else if ((66<=distance*100)&(77>=distance*100)){
printf("bin was 50%% full....\n");
}
else if ((55<=distance*100)&(66>=distance*100)){
printf("bin was 60%% full....\n");
}
else if ((44<=distance*100)&(55>=distance*100)){
printf("bin was 70%% full....\n");
}
else if ((33<=distance*100)&(44>=distance*100)){
printf("bin was 80%% full....\n");
}
else if ((22<=distance*100)&(33>=distance*100)){
printf("bin was 90%% full....\n");
}
else {
printf("bin was Empty...\n");
}
vTaskDelay(pdMS_TO_TICKS(500));
}
}
void app_main()
{
xTaskCreate(ultrasonic_test, "ultrasonic_test", configMINIMAL_STACK_SIZE * 3, NULL, 5, NULL);
}