From 8531a8d79f590518c3be2e27c145f109a28d5685 Mon Sep 17 00:00:00 2001 From: isa10110 Date: Thu, 27 Jun 2024 11:51:06 +0200 Subject: [PATCH] Add few files --- Arduino/Aktor/aktor.ino | 0 .../Challenge1_sensors/Challenge1_sensors.ino | 120 ++++++++++++++++++ .../challenge1_aktors/challenge1_aktors.ino | 83 ++++++++++++ 3 files changed, 203 insertions(+) delete mode 100644 Arduino/Aktor/aktor.ino create mode 100644 Arduino/Challenge1_sensors/Challenge1_sensors.ino create mode 100644 Arduino/challenge1_aktors/challenge1_aktors.ino diff --git a/Arduino/Aktor/aktor.ino b/Arduino/Aktor/aktor.ino deleted file mode 100644 index e69de29..0000000 diff --git a/Arduino/Challenge1_sensors/Challenge1_sensors.ino b/Arduino/Challenge1_sensors/Challenge1_sensors.ino new file mode 100644 index 0000000..d675681 --- /dev/null +++ b/Arduino/Challenge1_sensors/Challenge1_sensors.ino @@ -0,0 +1,120 @@ +#include +#include +#include +#include +#define SLAVE_ADDRESS 0x0b + +dht DHT; + +#define DHT11_PIN 9 + +const int red = 7; +const int green = 6; +const int yellow = 5; + +// U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, /* clock=*/ A5, /* data=*/ A4); + +void setup(){ + + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(yellow, OUTPUT); + Serial.begin(9600); + // u8g2.begin(); + Wire.begin(SLAVE_ADDRESS); + Wire.onRequest(sendtemperature); +} + +float temperature(uint16_t pin){ + float temp = 0; + int chk = DHT.read11(pin); + temp = DHT.temperature; + return temp; +} + +float humidity(uint16_t pin){ + float hum = 0; + int chk = DHT.read11(pin); + hum = DHT.humidity; + return hum; +} +void set_state(uint8_t state){ + digitalWrite(green,0); + digitalWrite(red,0); + digitalWrite(yellow,0); + switch (state){ + case 0: digitalWrite(green,1); break; + case 1: digitalWrite(red,1); break; + case 2: digitalWrite(yellow,1); break; + default:; + } + +} + +void print4plotter(float temp,float hum){ + Serial.print("Temperatur:"); + Serial.print(temp); + Serial.print(", Humidity:"); + Serial.println(hum); +} + +/* +void print_screen_temp(float temp){ + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_unifont_t_symbols); + u8g2.setFontRefHeightExtendedText(); + u8g2.setDrawColor(1); + u8g2.setFontPosTop(); + u8g2.setFontDirection(0); + u8g2.drawStr( 0, 0, "Temperatur:"); + char buff[6]; + dtostrf(temp, 4, 2, buff); + u8g2.drawStr( 0, 18, buff); + u8g2.drawUTF8(40, 18, "°C"); + u8g2.sendBuffer(); +} + +void print_screen_hum(float hum){ + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_unifont_t_symbols); + u8g2.setFontRefHeightExtendedText(); + u8g2.setDrawColor(1); + u8g2.setFontPosTop(); + u8g2.setFontDirection(0); + u8g2.drawStr( 0, 0, "Humidity:"); + char buff[6]; + dtostrf(hum, 4, 2, buff); + u8g2.drawStr( 0, 18, buff); + u8g2.drawUTF8(40, 18, "%"); + u8g2.sendBuffer(); +} +*/ + +uint8_t converttemp(float temp){ + temp += 75; + return round(temp); +} +float gtemp = 0; + +void sendtemperature(){ + uint8_t dat = converttemp(gtemp); + Wire.write(dat); +} +uint32_t d_state = 0; +uint32_t display_time=10000; +uint32_t messure_time=100; +void loop() { + for (int i=0; i< display_time/messure_time; i++){ + float temp=temperature(DHT11_PIN); + float hum= humidity(DHT11_PIN); + print4plotter(temp,hum); + gtemp = temp; + if (temp<=0) set_state(0); // green + else if (temp <=40) set_state(2); // yellow + else set_state(1); // red + //if (d_state % 2) print_screen_temp(temp); + //else print_screen_hum(hum); + delay(messure_time); + } + d_state ++; +} diff --git a/Arduino/challenge1_aktors/challenge1_aktors.ino b/Arduino/challenge1_aktors/challenge1_aktors.ino new file mode 100644 index 0000000..37a2905 --- /dev/null +++ b/Arduino/challenge1_aktors/challenge1_aktors.ino @@ -0,0 +1,83 @@ +#include +#include +#define Luefter 7 +#define Gasklappe 5 +#define NotfallButton 4 + +Servo kuehlklappe; + +void cooling(){ + int pos; + for (pos = 0; pos <= 180; pos += 1) { + kuehlklappe.write(pos); + delay(10); + } + delay(1000); + for (pos = 180; pos >= 0; pos -= 1) { + kuehlklappe.write(pos); + delay(10); + } +} + +void setup() { + kuehlklappe.attach(Gasklappe); + pinMode(Luefter, OUTPUT); + pinMode(NotfallButton, INPUT); + Serial.begin(9600); + Wire.begin(0x8); + Wire.onReceive(receiveEvent); +} + +void receiveEvent(int howMany) { + while (Wire.available()) { // loop through all but the last + char c = Wire.read(); // receive byte as a character + + } +} + + + + + uint8_t var = 0 ; + uint8_t fan = 0 ; +void loop() { + + if ((Serial.available() > 0)||(Wire.available())){ + char Letter; + if (Serial.available() > 0){ + Letter = Serial.read(); + } + if (Wire.available()){ + Letter = Wire.read(); + } + Serial.println (Letter, DEC); + //Serial.println(Letter ,DEC); + if ( (Letter == 'V') || (Letter == 'v')){ + var =1; + Serial.println("Ventile opened"); + } + else{ + var =0; + } + + if (Letter == 'F'){ + fan = 1; + Serial.println("Luefter eingeschaltet"); + } + if (Letter == 'f'){ + fan = 0; + Serial.println("Luefter ausgeschaltet"); + } + + } + else{ + var = digitalRead(NotfallButton); + } + + + if (var) cooling(); + + + +} +