aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.adoc22
-rw-r--r--humidity-led-indicator/humidity-led-indicator.ino51
2 files changed, 70 insertions, 3 deletions
diff --git a/README.adoc b/README.adoc
index 15cfd55..698e25a 100644
--- a/README.adoc
+++ b/README.adoc
@@ -4,7 +4,23 @@ Every now and then I create a small Arduino (test) project. I think I should
publish the stuff here — this is mostly cargo cult code that has been hammered
into some semi-working form.
-Currently in this repository:
+=== lighting/strobe.ino
-lighting/strobe.ino::
- The code behind my https://xenoworld.de/2017/01/18/blink.html[fluorescent light demo].
+The code behind my https://xenoworld.de/2017/01/18/blink.html[fluorescent light demo].
+
+=== humidity-led-indicator/
+
+Code for a small project which uses a humidity sensor (DHT22) and an
+APA102-RGB-LED to indicate if the current humidity is in an acceptable range.
+*red* means it is too dry, *blue* means it is too humid, everything else is
+something between yellow-orange and green.
+
+It would also switch off the LED if it was too dark in the room, so it would
+not annoy me at night.
+
+At some point I will polish that code and move the whole thing from breadboard
+to a more fixed setup. All components are here, but I haven't gotten around to
+doing it yet. I'm targeting some ATTiny, though.
+
+The original file name was `sketch_humidity_cargo_cult.ino`, so take that into
+account…
diff --git a/humidity-led-indicator/humidity-led-indicator.ino b/humidity-led-indicator/humidity-led-indicator.ino
new file mode 100644
index 0000000..9ecf34c
--- /dev/null
+++ b/humidity-led-indicator/humidity-led-indicator.ino
@@ -0,0 +1,51 @@
+#include <FastLED.h>
+#include <Adafruit_Sensor.h>
+#include <DHT.h>
+
+#define DHTPIN 2 // what digital pin we're connected to
+#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
+DHT dht(DHTPIN, DHTTYPE);
+
+const int analogInPin = A0; // Analog input pin that the LDR is attached to
+
+#define NUM_LEDS 1
+#define DATA_PIN 11
+#define CLOCK_PIN 12
+
+CRGB leds[NUM_LEDS];
+
+CHSV temp;
+
+byte counter;
+
+void setup()
+{
+ FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN>(leds, NUM_LEDS );
+}
+
+void loop()
+{
+ delay(2000);
+
+ int ldrValue = analogRead(analogInPin);
+ int humidity = dht.readHumidity();
+
+ if (ldrValue > 1012) {
+ temp.val = 0;
+ } else {
+ temp.val = 255;
+ }
+
+ if( humidity < 35 ) {
+ temp.hue = HUE_RED;
+ } else if(humidity > 60) {
+ temp.hue = HUE_BLUE;
+ } else {
+ temp.hue = map(humidity, 35, 60, HUE_RED, HUE_AQUA);
+ }
+
+ temp.s = 255;
+ leds[0] = temp;
+ FastLED.show();
+}
+