Advertisement
Nemo1979

esp8266_oled_i2c_dht_ssd1309

Jul 30th, 2023 (edited)
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | Source Code | 0 0
  1. #include <Arduino.h>
  2. #include <DHT.h>
  3. #include <DHT_U.h>
  4. #include <U8g2lib.h>
  5. //#include <SPI.h>
  6. //#include <SD.h>
  7. //const int chipSelectPin = 10;
  8.  
  9. #define SDA_PIN 19
  10. #define SCL_PIN 20
  11.  
  12. #define DHTTYPE    DHT22
  13. char temperature [5];
  14. char humidity [5];
  15. const char DEGREE_SYMBOL[] = { 0xB0, '\0' };
  16.  
  17. DHT dht(7, DHTTYPE);
  18.  
  19. U8G2_SSD1309_128X64_NONAME0_F_HW_I2C u8g2(U8G2_R0, /* clock=*/ SCL_PIN, /* data=*/ SDA_PIN, /* reset=*/ U8X8_PIN_NONE);
  20.  
  21. void setup() {
  22.   dht.begin();
  23.   Serial.begin(9600);
  24.    
  25.   u8g2.begin();
  26.  
  27.   u8g2.setI2CAddress(0x3C);
  28.  
  29.    
  30.   //u8g2.setColorIndex(0);  
  31. }
  32.  
  33. void loop() {
  34.   u8g2.firstPage();
  35.   do {  
  36.     draw();
  37.   } while( u8g2.nextPage() );
  38. }
  39.  
  40. void draw(){
  41.   u8g2.enableUTF8Print();
  42.   u8g2.setFont(u8g2_font_helvB10_tf);
  43.  
  44.  
  45.   readTemperature();
  46.   readHumidity();
  47.  
  48.   u8g2.drawRFrame(0,0,128,31,5);               // upper frame
  49.   u8g2.drawRFrame(0,33,128,31,5);              // lower frame    
  50.                
  51.  
  52.   u8g2.drawStr( 3, 20, "Teplota: ");  
  53.   u8g2.drawStr( 70, 20, temperature);  
  54.   u8g2.drawUTF8(100, 20, DEGREE_SYMBOL);
  55.   u8g2.drawUTF8(105, 20, "C");
  56.  
  57.   u8g2.drawStr(3,55, "Vlhkost: ");        
  58.   u8g2.drawStr( 70, 55, humidity);
  59.   u8g2.drawStr(105,55, "%");  
  60. }
  61.  
  62. void readTemperature()
  63. {
  64.  float t = dht.readTemperature();
  65.  dtostrf(t, 3, 1, temperature);
  66. }
  67.  
  68. void readHumidity()
  69. {
  70.  float h = dht.readHumidity();
  71.  dtostrf(h, 3, 1, humidity);
  72. }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement