Fabian Peter Hammerle пре 8 година
комит
6d31b3b8f4
1 измењених фајлова са 66 додато и 0 уклоњено
  1. 66 0
      DallasTemperatureInterface.ino

+ 66 - 0
DallasTemperatureInterface.ino

@@ -0,0 +1,66 @@
+#include <OneWire.h>
+#include <DallasTemperature.h>
+
+OneWire one_wire_network(2);
+DallasTemperature sensors(&one_wire_network);
+const uint8_t sensors_max_count = 8;
+uint8_t sensors_count;
+DeviceAddress sensors_addrs[sensors_max_count];
+
+// typedef uint8_t DeviceAddress[8];
+void printAddress(DeviceAddress addr)
+{
+  Serial.print("0x");
+  for(int i=0; i<8; i++) {
+    if(addr[i] < 16) Serial.print('0');
+    Serial.print(addr[i], HEX);
+  }
+}
+
+void setup()
+{
+  Serial.begin(9600);
+  Serial.println("a buhh");
+  Serial.println("dallas-temperature-interface 1.0.0");
+  
+  sensors.begin();
+  sensors_count = 0;
+  for(uint8_t i=0; i<sensors.getDeviceCount(); i++) {
+    Serial.print("address ");
+    Serial.print(i);
+    Serial.print(' ');
+    if(sensors.getAddress(sensors_addrs[sensors_count], i)) {
+      printAddress(sensors_addrs[sensors_count]);
+      Serial.println();
+      sensors_count++;
+    } else {
+      Serial.println('n/a');
+    }
+  }
+  
+  for(uint8_t i=0; i<sensors_count; i++) {
+    Serial.print("resolution ");
+    printAddress(sensors_addrs[i]);
+    Serial.print(' ');
+    Serial.println(sensors.getResolution(sensors_addrs[i]), DEC);
+  }
+}
+
+void loop()
+{
+  unsigned long request_millis = millis();
+  sensors.requestTemperatures();
+  for(uint8_t i=0; i<sensors_count; i++) {
+    Serial.print("temperature ");
+    Serial.print(request_millis);
+    Serial.print(' ');
+    printAddress(sensors_addrs[i]);
+    Serial.print(' ');
+    float temp = sensors.getTempC(sensors_addrs[i]);
+    if(abs(temp - DEVICE_DISCONNECTED_C) < 0.1) {
+      Serial.println("disconnected");
+    } else {
+      Serial.println(temp);
+    }
+  }
+}