/*
Ich hab es nicht geschafft den MPU6050 zum funktionieren zu
bringen und der LDR ist vielleicht auch nicht so wie gewünscht
Ausserdem habe ich vergessen die Daten wie die Sensoren funktionieren
herauszusuchen, ansonsten hätte ich alles denke ich.
*/
//Display
#include <Arduino.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
//HC-SR04
#define PIN_TRIG 12
#define PIN_ECHO 14
//DHT
#include "DHTesp.h"
const int DHT_PIN = 18;
DHTesp dhtSensor;
//Pir
const int bew =23;
//NTC
const float BETA = 3950;
//LDR
#define LDR_PIN 34
const float GAMMA = 0.7;
const float RL10 = 50;
void setup() {
Serial.begin(115200);
//Display
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
//HC-SC04
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
//DHT
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
//Pir
pinMode(bew,INPUT);
//NTC
analogReadResolution(10);
//LDR
pinMode(LDR_PIN, INPUT);
}
void loop() {
if (Serial.available()) {
String command = Serial.readStringUntil('\n');
if (command == "abstand") {
Serial.println(" ");
abstand();
}else if (command == "humi") {
Serial.println(" ");
humi();
}else if (command == "beweg1") {
Serial.println(" ");
beweg1();
}else if (command == "temp2") {
Serial.println(" ");
temp2();
}else if (command == "licht") {
Serial.println(" ");
licht();
}else if (command == "name") {
Serial.println(" ");
name();
}
}
display.clearDisplay();
display.setTextSize(2);
display.setCursor(1, 1);
display.println("wartet auf eingabe");
display.display();
delay(100);
}
void abstand(){
for (int p = 0; p <= 10; p++){
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
int distanz = pulseIn(PIN_ECHO, HIGH);
Serial.print("Entfernung in cm: ");
Serial.println(distanz / 58);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("hc-sr04");
display.setTextSize(1);
display.print("cm:: ");
display.println(distanz / 58);
display.display();
delay(500);
}
}
void humi(){
for (int p = 0; p <= 10; p++){
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temperatur: " + String(data.temperature, 2) + "°C");
Serial.println("Feuchtigkeit: " + String(data.humidity, 1) + "%");
Serial.println("---");
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("DHT");
display.setTextSize(1);
display.println("Temp.: " + String(data.temperature, 2)+" C");
display.println("Feucht.:" + String(data.humidity, 2)+ " %");
display.display();
delay(500);
}
}
void beweg1(){
for (int p = 0; p <= 10; p++){
const int ding=digitalRead(bew);
delay(100);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Pir Motion");
if (ding==1){
Serial.println("Bewegung!");
display.println("Bewegung!");
delay(200);
}
else{
Serial.println(" ");
display.println("----------");
delay(200);
}
display.display();
delay(500);
}
}
void temp2(){
for (int p = 0; p <= 10; p++){
int analogValue = analogRead(15);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
Serial.print("Temp2: ");
Serial.print(celsius);
Serial.println(" C");
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("NTC");
display.setTextSize(1);
display.print("Temp2: ");
display.print(celsius);
display.println(" C");
display.display();
delay(500);
}
}
void licht(){
for (int p = 0; p <= 10; p++){
int hell = analogRead(LDR_PIN);
Serial.print("Der Wert vom LDR ");
Serial.println(hell);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("LDR");
display.setTextSize(1);
display.print("Helligkeit: ");
display.println(hell);
display.display();
delay(500);
}
}
void name(){
Serial.println("Alessandro Wagner");
for (int p = 0; p <= 15; p++){
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 20);
display.println("Alessandro");
display.display();
delay(500);
}
}