From 173da652f494b10ef734da885021cf5008d1dc0f Mon Sep 17 00:00:00 2001
From: Benjamin Koch <bbbsnowball@gmail.com>
Date: Sat, 6 May 2023 00:28:37 +0200
Subject: [PATCH] add temperature sensors

The one on the display PCB isn't working, right now.
---
 firmware/test1/heizung-test1/platformio.ini |  4 +++-
 firmware/test1/heizung-test1/src/main.cpp   | 23 +++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/firmware/test1/heizung-test1/platformio.ini b/firmware/test1/heizung-test1/platformio.ini
index 02716d6..6c6199b 100644
--- a/firmware/test1/heizung-test1/platformio.ini
+++ b/firmware/test1/heizung-test1/platformio.ini
@@ -13,4 +13,6 @@ platform = https://github.com/maxgerhardt/platform-raspberrypi.git
 board = pico
 framework = arduino
 board_build.core = earlephilhower
-lib_deps = adafruit/Adafruit SSD1306@^2.5.7
+lib_deps = 
+	adafruit/Adafruit SSD1306@^2.5.7
+	sparkfun/SparkFun TMP102 Breakout@^1.1.2
diff --git a/firmware/test1/heizung-test1/src/main.cpp b/firmware/test1/heizung-test1/src/main.cpp
index 4983019..2147c23 100644
--- a/firmware/test1/heizung-test1/src/main.cpp
+++ b/firmware/test1/heizung-test1/src/main.cpp
@@ -2,6 +2,7 @@
 #include <Wire.h>
 #include <Adafruit_GFX.h>
 #include <Adafruit_SSD1306.h>
+#include <SparkFunTMP102.h>
 
 enum Pinout {
   DRIVE1 = 0,
@@ -42,6 +43,8 @@ bool hasDisplay;
 
 #include "logo.h"
 
+TMP102 sensor0, sensor1;
+
 void setup() {
   rp2040.enableDoubleResetBootloader();
 
@@ -80,6 +83,19 @@ void setup() {
     display.drawBitmap(0, 0, logo_data, logo_width, logo_height, SSD1306_WHITE);
     display.display();
   }
+
+  if (sensor0.begin(0x48)) {
+    //0-3: 0:0.25Hz, 1:1Hz, 2:4Hz, 3:8Hz
+    sensor0.setConversionRate(2);
+    sensor0.setExtendedMode(1);
+    sensor0.wakeup();
+  }
+  if (sensor1.begin(0x49)) {
+    //0-3: 0:0.25Hz, 1:1Hz, 2:4Hz, 3:8Hz
+    sensor1.setConversionRate(2);
+    sensor1.setExtendedMode(1);
+    sensor1.wakeup();
+  }
 }
 
 void i2c_scan() {
@@ -204,6 +220,13 @@ void loop() {
     display.print(digitalRead(REED4) ? '^' : 'v');
     display.println();
 
+    auto temp0 = sensor0.readTempC();
+    auto temp1 = sensor1.readTempC();
+    display.print(F("Temp: "));
+    display.println(temp0, 2);
+    display.print(F("      "));
+    display.println(temp1, 2);
+
     display.display();
   }
 
-- 
GitLab