Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. /**
  2. * Measure temperature & humidity and display on OLED screen
  3. * Copyright 2017 - Nathan Osman
  4. */
  5.  
  6. #include <dht.h>
  7. #include <SPI.h>
  8. #include <Wire.h>
  9. #include <Adafruit_GFX.h>
  10. #include <Adafruit_SSD1306.h>
  11. #include <Fonts/FreeSans12pt7b.h>
  12.  
  13. dht DHT;
  14.  
  15. #define DHT11_PIN 3
  16.  
  17. #define OLED_RESET 4
  18. Adafruit_SSD1306 display(OLED_RESET);
  19.  
  20. #if (SSD1306_LCDHEIGHT != 64)
  21. #error("Height incorrect, please fix Adafruit_SSD1306.h!");
  22. #endif
  23.  
  24. void setup()
  25. {
  26. display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  27. }
  28.  
  29. void loop()
  30. {
  31. // Read the data from the sensor
  32. int chk = DHT.read11(DHT11_PIN);
  33. char disp[128];
  34. char fTemp[8];
  35. char fHum[8];
  36.  
  37. // Determine what to display on the screen
  38. switch (chk)
  39. {
  40. case DHTLIB_OK:
  41. dtostrf(DHT.temperature, 1, 1, fTemp);
  42. dtostrf(DHT.humidity, 1, 1, fHum);
  43. sprintf(disp, "T: %s C\nH: %s%%", fTemp, fHum);
  44. break;
  45. case DHTLIB_ERROR_CHECKSUM:
  46. sprintf(disp, "E: checksum");
  47. break;
  48. case DHTLIB_ERROR_TIMEOUT:
  49. sprintf(disp, "E: timeout");
  50. break;
  51. case DHTLIB_ERROR_CONNECT:
  52. sprintf(disp, "E: connect");
  53. break;
  54. case DHTLIB_ERROR_ACK_L:
  55. sprintf(disp, "E: ack low");
  56. break;
  57. case DHTLIB_ERROR_ACK_H:
  58. sprintf(disp, "E: ack high");
  59. break;
  60. default:
  61. sprintf(disp, "E: unknown");
  62. break;
  63. }
  64.  
  65. // Show the computed value
  66. display.clearDisplay();
  67. display.setTextColor(WHITE);
  68. display.setFont(&FreeSans12pt7b);
  69. display.setCursor(0, 20);
  70. display.println(disp);
  71. display.display();
  72.  
  73. // Values can only be read from the sensor every two seconds
  74. delay(2000);
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement