ws2021:kabelsalat

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ws2021:kabelsalat [2021/04/30 13:57] – [Relais Modul] j-h-fws2021:kabelsalat [2022/03/15 09:40] (aktuell) – [Teilnehmer] j-h-f
Zeile 8: Zeile 8:
  
 Webseite: https://www.kabelsalat-lab.de/ Webseite: https://www.kabelsalat-lab.de/
 +
 +==== Teilnehmer ====
 +  * Fabian Janosch Krüger
 +  * Ben Niclas Thal
 +  * Arthur Bilinsky
 +  * Henry Schittkowski
 +  * Jan-Hendrik Fabricius
 +
 ==== Darstellung bisheriger Arbeit ==== ==== Darstellung bisheriger Arbeit ====
 == Arbeitsaufteilung == == Arbeitsaufteilung ==
Zeile 45: Zeile 53:
   * LED-Streifen für Pflanzen   * LED-Streifen für Pflanzen
  
-==== Arduino Nano ====+===== Arduino Nano ====
 +{{ :ws2021:arduino-nano-pinout.jpg?400 |}}
 “Arduino is an open-source hardware and software company, project and user community that “Arduino is an open-source hardware and software company, project and user community that
 designs and manufactures single-board microcontrollers and microcontroller kits for building digital designs and manufactures single-board microcontrollers and microcontroller kits for building digital
-devices.” [https://en.wikipedia.org/wiki/Arduino]+devices.” [https://en.wikipedia.org/wiki/Arduino]\\
 Der Arduino ist also ein Mikrocontroller, der nach Belieben programmiert werden kann und dann Der Arduino ist also ein Mikrocontroller, der nach Belieben programmiert werden kann und dann
-als Hauptsteuereinheit diverser Projekte genutzt werden kann.+als Hauptsteuereinheit diverser Projekte genutzt werden kann.\\
 Bei einem Mikrocontroller handelt es sich, vereinfacht gesagt, um einen winzigen Computer, Bei einem Mikrocontroller handelt es sich, vereinfacht gesagt, um einen winzigen Computer,
 bestehend aus einem Prozessor, einem Arbeitsspeicher (RAM) und ggf. weitere Peripheriebauteile, bestehend aus einem Prozessor, einem Arbeitsspeicher (RAM) und ggf. weitere Peripheriebauteile,
-wie bspw. externer Speicher oder I/O-Schnittstellen (USB, I2C, SPI...)+wie bspw. externer Speicher oder I/O-Schnittstellen (USB, I2C, SPI...)\\
 Der große Unterschied zwischen einem richtigen PC und einem Mikrocontroller liegt darin, dass Der große Unterschied zwischen einem richtigen PC und einem Mikrocontroller liegt darin, dass
 der Mikrocontroller auf einen bestimmen Anwendungsfall zugeschnitten und entwickelt ist. Dies der Mikrocontroller auf einen bestimmen Anwendungsfall zugeschnitten und entwickelt ist. Dies
Zeile 60: Zeile 69:
 beschränkten Rechenleistung und Speicherkapazität sehr günstig sind, aber dennoch ausreichend beschränkten Rechenleistung und Speicherkapazität sehr günstig sind, aber dennoch ausreichend
 Funktionalität bieten, um ein etwas komplexeres Projekt zu realisieren. Funktionalität bieten, um ein etwas komplexeres Projekt zu realisieren.
 +{{ :ws2021:arduino-nano-pinout-schema.png?400 |}}
  
-==== ESP01-S ====+===== ESP01-S ====
 +{{ :ws2021:esp01s-esp-01s-esp8266ex-black-1mb-300x287.jpg |}}
 Der ESP01-S ist auch ein Mikrocontroller, der auch, ähnlich wie der Arduino, programmiert werden Der ESP01-S ist auch ein Mikrocontroller, der auch, ähnlich wie der Arduino, programmiert werden
-kann, um Steuerungsaufgaben zu übernehmen. Der Unterschied zwischen einem ESP01-S und +kann, um Steuerungsaufgaben zu übernehmen.\\ 
-einem Arduino liegt darin, dass der ESP01-S Mikrocontroller auf dem sogenannten ESP8266 +Der Unterschied zwischen einem ESP01-S und einem Arduino liegt darin, dass der ESP01-S Mikrocontroller auf dem sogenannten ESP8266 Mikroprozessor basiert. Der Vorteil an dem ESP8266 Mikroprozessor ist, dass dieser einen 
-Mikroprozessor basiert. Der Vorteil an dem ESP8266 Mikroprozessor ist, dass dieser einen +WLAN-Chip verbaut hat, mit dem der ESP01-S eine Verbindung zum Internet aufbauen kann. \\ 
-WLAN-Chip verbaut hat, mit dem der ESP01-S eine Verbindung zum Internet aufbauen kann. Der +Der Nachteil am ESP01-S Mikrocontroller ist. Dass dieser nur 2 I/O Pins besitzt. Das bedeutet, dass man nur über 2 Signalleitungen (GPIO Pins) mit anderen Geräten kommunizieren kann. Somit eignet sich der ESP01-S meist nur für sehr kleine Projekte, wie z.B. ein Thermometer, welches über WLAN ausgelesen werden kann. Alternativ kann man den ESP01-S auch als WLAN-Modul mit einem Arduino verbinden. 
-Nachteil am ESP01-S Mikrocontroller ist. Dass dieser nur 2 I/O Pins besitzt. Das bedeutet, dass +{{ :ws2021:esp01-esp01s-pinout-esp8266ex-1453x1536.jpg?400 |}} 
-man nur über 2 Signalleitungen mit anderen Geräten kommunizieren kann. Somit eignet sich der +===== Relais Modul ====
-ESP01-S meist nur für sehr kleine Projekte, wie z.B. ein Thermometer, welches über WLAN +{{ :ws2021:relay.png?400 |}}
-ausgelesen werden kann. Alternativ kann man den ESP01-S auch als WLAN-Modul mit einem +
-Arduino verbinden. +
- +
-==== Relais Modul ====+
 Das Relais-Modul wird benötigt, damit der Arduino Höhere Spannungen und Höhere Ströme mit einem sehr kleinen Steuerungssignal steuern kann. Das Relais-Modul wird benötigt, damit der Arduino Höhere Spannungen und Höhere Ströme mit einem sehr kleinen Steuerungssignal steuern kann.
 Wenn beispielsweise eine Handelsübliche LED-Glühlampe mit einer GU4-Fassung steuern möchte, fällt auf, dass die LED eine Spanung von 12 Volt braucht. Der Arduino hingegen hat aber nur eine Ausgangsspannung von 5V an den GPIO Pins und einen Ausgangsstrom von maximal 40mA (wobei max. 20mA empfohlen sind). Das reicht nicht aus, um die LED, oder Andere Geräte zu steuern, die entweder eine höhere Spannung oder eien größeren Strom brauchen zu betreiben.  Wenn beispielsweise eine Handelsübliche LED-Glühlampe mit einer GU4-Fassung steuern möchte, fällt auf, dass die LED eine Spanung von 12 Volt braucht. Der Arduino hingegen hat aber nur eine Ausgangsspannung von 5V an den GPIO Pins und einen Ausgangsstrom von maximal 40mA (wobei max. 20mA empfohlen sind). Das reicht nicht aus, um die LED, oder Andere Geräte zu steuern, die entweder eine höhere Spannung oder eien größeren Strom brauchen zu betreiben. 
Zeile 124: Zeile 131:
 Anschließend wird in der Loop Funktion, die ja immer und immer wieder ausgeführt wird, der Input Pin alle 2,5 Sekunden auf "HIGH" bzw. "LOW" gesetzt, was dazu führt, dass die am Relais angeschlossene Lampe im 2,5 Sekunden Takt blinkt. Anschließend wird in der Loop Funktion, die ja immer und immer wieder ausgeführt wird, der Input Pin alle 2,5 Sekunden auf "HIGH" bzw. "LOW" gesetzt, was dazu führt, dass die am Relais angeschlossene Lampe im 2,5 Sekunden Takt blinkt.
  
-==== Temperatursensor BME/BMP280 ====+===== Temperatursensor BME/BMP280 ====
 +{{ :ws2021:bme-sensor.png?400 |}} 
 +\\ 
 +Der BME/BMP280 Tempratursensor ist ein Vollständiges Modul, das die Temperatur, die Luftfeuchtigkeit und den Lufdruck misst und die gemessenen Daten anschließend über eine [[https://de.wikipedia.org/wiki/I%C2%B2C|I²C]] Schnittstelle ausgibt. Durch die Ausgabe über die [[https://de.wikipedia.org/wiki/I%C2%B2C|I²C]] Schnittstelle können die Daten sehr einfach mit dem Arduino ausgelesen und verarbeitet werden. 
 +Zusätzlich gibt es eine [[https://github.com/adafruit/Adafruit_BME280_Library|Bibliothek]], die es erlaubt mit einem Funktionsaufruf die Daten auszulesen. 
 +\\ 
 +Für die Verbindung des BME/BMP280 Sensors mit dem Arduino werden 4 Kabel benötigt. Die Verbidnung sieht wie folgt aus: 
 +{{:ws2021:bme-schema.png?400 | Schema Arduino-BME280}} 
 +^ BME280 Pin  ^ Arduino Pin  ^ 
 +| VCC  | 5V  | 
 +| GND  | GND  | 
 +| SCL  | A5  | 
 +| SDA  | A4  |</dtable> 
 +Die Pins SCL und SDA sind die Anschlüsse des I²C Busses. Über diese Pins werden Datenpakete hin und her gesendet, wodurch der im Code des Arduinos die gemessenen Werte des Sensors angefragt werden können.
  
-==== Reich Tauchpumpe ====+\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 + 
 +Um die Daten des BME/BMP280 einfach auszulesen gibt es die [[https://github.com/adafruit/Adafruit_BME280_Library|Adafruit BME280 Library]] auf Github. Wenn diese Bibliothek installiert ist, dann sieht der Code wie folgt aus: 
 +<code c> 
 +/* 
 + * Complete Project Details https://randomnerdtutorials.com/bme280-sensor-arduino-pressure-temperature-humidity/ 
 +*/ 
 + 
 +#include <Wire.h> 
 +#include <Adafruit_Sensor.h> 
 +#include <Adafruit_BME280. 
 + 
 +#define SEALEVELPRESSURE_HPA (1013.25) 
 + 
 +Adafruit_BME280 bme; // I2C 
 + 
 +unsigned long delayTime; 
 + 
 +void setup() { 
 +  Serial.begin(9600); 
 +  Serial.println(F("BME280 test")); 
 + 
 +  bool status; 
 +   
 +  // default settings 
 +  // (you can also pass in a Wire library object like &Wire2) 
 +  status = bme.begin();   
 +  if (!status) { 
 +    Serial.println("Could not find a valid BME280 sensor, check wiring!"); 
 +    while (1); 
 +  } 
 +   
 +  Serial.println("-- Default Test --"); 
 +  delayTime = 1000; 
 + 
 +  Serial.println(); 
 +
 + 
 + 
 +void loop() {  
 +  printValues(); 
 +  delay(delayTime); 
 +
 + 
 + 
 +void printValues() { 
 +  Serial.print("Temperature = "); 
 +  Serial.print(bme.readTemperature()); 
 +  Serial.println(" *C"); 
 +   
 +  Serial.print("Pressure = "); 
 +  Serial.print(bme.readPressure() / 100.0F); 
 +  Serial.println(" hPa"); 
 +   
 +  Serial.print("Approx. Altitude = "); 
 +  Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA)); 
 +  Serial.println(" m"); 
 +   
 +  Serial.print("Humidity = "); 
 +  Serial.print(bme.readHumidity()); 
 +  Serial.println(" %"); 
 +   
 +  Serial.println(); 
 +
 +</code> 
 +Der Kern dieses Codeblocks liegt in den Zeilen 
 +<code> 
 +Adafruit_BME280 bme; // I2C 
 +status = bme.begin(); 
 +</code> 
 +mit der ersten Zeile wird eine Variable "bme" der Klasse "Adafruit_BME280" Instanziert. Somit sind jetzt über die Variable "bme" alle benötigten Funktionen Verfügbar. 
 +In der zweiten Zeile wird dann dann die Funktion "bme.begin()" aufgerufen, die eine I²C Verbindung zu dem Sensor aufbaut. Der Rest der Funktionen, die in der Setup Funktion aufgerufen werden sind einfache Konfigurationen, die nur für dieses Beispiel benötigt werden, eine detailierte Erklärung kann unter [[https://randomnerdtutorials.com/bme280-sensor-arduino-pressure-temperature-humidity/]] gefunden werden. 
 +Letztendlich sehr wichtig sind die Funktionen 
 +<code> 
 +bme.readHumidity() 
 +bme.readTemperature() 
 +</code> 
 +Diese Funktionen machen im Hintergrund alles nötige, um die Daten, die der BME/BMP280 Sensor misst, als einfache Zahl in den Arduino zu bekommen. In dem konkreten Fall sind das die Werte der Luftfeuchtigkeit in Prozent und die Temperatur in °C.  
 +==== Tauchpumpe ====
  
 +{{:ws2021:pumpe.jpg?100 |}} Die Pumpe wird verwendet, um das Wasser vom Unteren Wassertank zur spitze des Hydroponikturms zu pumpen. 
 ==== LED-Streifen für Pflanzen ==== ==== LED-Streifen für Pflanzen ====
 ==== Quellen ==== ==== Quellen ====
    *Baras, T: DIY Hydroponic Gardens: How to Design and Build an Inexpensive System for Growing Plants in Water    *Baras, T: DIY Hydroponic Gardens: How to Design and Build an Inexpensive System for Growing Plants in Water
  • ws2021/kabelsalat.1619783823.txt.gz
  • Zuletzt geändert: 2021/04/30 13:57
  • von j-h-f