#include <Arduino.h>
#include <DHT.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include "constants.h"
#include "api_service.h"
#include "sensor_service.h"
void setup() {
Serial.begin(9600);
WiFi.begin(SSID, WIFI_PASSWORD);
dht.begin();
timeClient.begin();
timeClient.setTimeOffset(0);
}
void loop() {
int videoPotValue = analogRead(VIDEO_POTENTIOMETER_PIN);
int movementPotValue = analogRead(MOVEMENT_POTENTIOMETER_PIN);
/* Map the potentiometer's values to the range of 0 to 100 */
int animalConditionValue = map(videoPotValue, 0, 4095, 0, 100);
int animalActivityValue = map(movementPotValue, 0, 4095, 0, 100);
double humidityValue = readHumidity();
double temperatureValue = readTemperature();
Serial.println("animal condition value: " + String(animalConditionValue));
Serial.println("animal activity value: " + String(animalActivityValue));
Serial.println("humidity " + String(humidityValue));
Serial.println("temperature " + String(temperatureValue));
delay(1000);
Serial.println("current time " + getCurrentTimestamp());
/* Init sensors */
SensorData humiditySensor = {0, HumiditySensor, humidityValue,
getCurrentTimestamp(), "working", "Carpathians"
};
SensorData temperatureSensor = {0, TermometerSensor, temperatureValue,
getCurrentTimestamp(), "working", "Carpathians"
};
SensorData movementSensor = {0, MovementSensor, animalActivityValue,
getCurrentTimestamp(), "working", "Deer"
};
SensorData videoSensor = {0, VideoSensor, animalConditionValue,
getCurrentTimestamp(), "working", "Deer"
};
/* Update sensor data on server */
if (WiFi.status() == WL_CONNECTED) {
String userEmail = "[email protected]";
String userPassword = "user111";
bool authSuccess = authenticateUser(userEmail, userPassword);
if (authSuccess) {
Serial.println("User logged in successfully");
int humiditySensorId =
getSensorByIdentificator(humiditySensor.sensorIdentificator, humiditySensor.sensorType);
int temperatureSensorId
= getSensorByIdentificator(temperatureSensor.sensorIdentificator, temperatureSensor.sensorType);
int videoSensorId
= getSensorByIdentificator(videoSensor.sensorIdentificator, videoSensor.sensorType);
int movementSensorId
= getSensorByIdentificator(movementSensor.sensorIdentificator, movementSensor.sensorType);
/* Update humidity sensor data on server */
if (humiditySensorId != -1) {
humiditySensor.sensorDataId = humiditySensorId;
if (!updateSensorData(humiditySensor)) {
Serial.println("Failed to update humidity sensor data");
}
} else {
Serial.println("Failed to get humidity sensor data");
}
/* Update temperature sensor data on server */
if (temperatureSensorId != -1) {
temperatureSensor.sensorDataId = temperatureSensorId;
if (!updateSensorData(temperatureSensor)) {
Serial.println("Failed to update temperature sensor data");
}
} else {
Serial.println("Authentication failed");
}
/* Update video sensor data on server */
if (videoSensorId != -1) {
videoSensor.sensorDataId = videoSensorId;
if (!updateSensorData(videoSensor)) {
Serial.println("Failed to update video sensor data");
}
} else {
Serial.println("Failed to get video sensor data");
}
/* Update movement sensor data on server */
if (movementSensorId != -1) {
movementSensor.sensorDataId = movementSensorId;
if (!updateSensorData(movementSensor)) {
Serial.println("Failed to update humidity sensor data");
}
} else {
Serial.println("Failed to get humidity sensor data");
}
}
delay(FREQUENCY);
}
}