Forum: Mikrocontroller und Digitale Elektronik Wetterstation mit RGB-LED


von Melinamell (Gast)


Lesenswert?

Hallo zusammen,

ich studiere Wirtschaftsingenieurwesen und bin nun im dritten Semester.

In der Uni habe ich ein Semester lang Elektrotechnik gehabt, jedoch kein
Programmieren.

Nun ist unser Dozent auf die Idee gekommen, wir könnten uns das
Programmieren bis zum nächsten Semester ja mal eben selber beibringen
und eine Wetterstation bauen...

Meine Bauteile sind folgende:

- Node MCU
- DHT 22
- DS18B20
- MPL3115A2
- RGB LED

Die Hardware ist so weit fertig und ich konnte mit der Arduino IDE (ja,
viele finden die sch***e, mir bleibt derzeit aber nichts anderes über
als vollkommen ahnungslose) bereits die Sensoren einzeln und
mittlerweile auch gemeinsam auslesen. So weit so gut. Auch die 
Datenübertragung bzw. der Datenabruf über eine IP-Adresse klappt 
mittlerweile.

Meine letzte Aufgabe ist nun:

Die RGB-LED soll unter 18°C blau, über 22°C rot und dazwischen grün 
blinken.





Mein Code ist grob ohne die anderen Sensoren folgender (kann sein, dass 
ich noch was beim Löschen vergessen habe):



#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2
#define TEMPERATURE_PRECISION 9

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer;

void setup()
{
 Serial.begin(115200);

 sensors.getAddress(insideThermometer, 0);
 sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);

 Wire.begin();
 sensors.begin();
}


void loop()
{
 delay(500);

 sensors.requestTemperatures();
 float tempC = sensors.getTempC(insideThermometer);

 Serial.print("Temperature(DS1820): ");
 Serial.print(tempC);
 Serial.println("*C ");
}



die RGB-LED zum blinken bekomme ich damit:



int redPin = D5, greenPin = D6, bluePin = D8;

void setup()
{
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop()
{
  digitalWrite(redPin, LOW);
  delay(500);
  digitalWrite(redPin, HIGH);
  delay(500);
  digitalWrite(greenPin, LOW);
  delay(500);
  digitalWrite(greenPin, HIGH);
  delay(500);
  digitalWrite(bluePin, LOW);
  delay(500);
  digitalWrite(bluePin, HIGH);
  delay(500);
 }


Ich habe mein Glück versucht, die RGB-LED je nach Temperatur blinken zu 
lassen, aber es nicht geschafft.. Ich hoffe sehr, dass ihr mir helfen 
könnt!

Ich danke euch bereits im Voraus und bitte auch noch einmal zu bedenken,
dass ich eine absolute Anfängerin bin. Also bitte Verständnis dafür
zeigen :)

Liebe Grüße,
Melina

: Verschoben durch Moderator
von Martin K. (maart)


Lesenswert?

Du musst also testen, in welchem Bereich die Temperatur liegt und 
dementsprechend die "richtige" LED blinken lassen.

Schaue dir mal if..then...else if... an.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.