Skip to content

Commit

Permalink
Refactored OLED code
Browse files Browse the repository at this point in the history
  • Loading branch information
achim committed Aug 13, 2020
1 parent 89e1d35 commit bb3c572
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 47 deletions.
43 changes: 22 additions & 21 deletions examples/C02_PM_SHT_OLED/C02_PM_SHT_OLED.ino
Original file line number Diff line number Diff line change
@@ -1,41 +1,42 @@
#include <AirGradient.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Wire.h>
#include "SSD1306Wire.h"

AirGradient ag = AirGradient();
#define OLED_RESET 0
Adafruit_SSD1306 display(OLED_RESET);

SSD1306Wire display(0x3c, SDA, SCL);

void setup(){
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.init();
display.flipScreenVertically();
showTextRectangle("Init", String(ESP.getChipId(),HEX));

ag.PMS_Init();
ag.CO2_Init();
ag.TMP_RH_Init(0x44); //check for SHT sensor with address 0x44
showTextRectangle("Init", String(ESP.getChipId(),HEX),"AirGradient");
ag.TMP_RH_Init(0x44);

delay(2000);
}

void loop(){
int PM2 = ag.getPM2_Raw();
int CO2 = ag.getCO2_Raw();
TMP_RH result = ag.periodicFetchData();
showTextRectangle(String(result.t)+"c "+String(result.rh)+"%", "PM2: "+ String(ag.getPM2()), "CO2: "+String(ag.getCO2())+"");
delay(5000);
showTextRectangle(String(result.t),String(result.rh)+"%");
delay(2000);
showTextRectangle("PM2",String(PM2));
delay(2000);
showTextRectangle("CO2",String(CO2));
delay(2000);
}

// DISPLAY
void showTextRectangle(String ln1, String ln2, String ln3) {
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(32,8);
display.println(ln1);
display.setTextSize(1);
display.setCursor(32,16);
display.println(ln2);
display.setTextSize(1);
display.setCursor(32,24);
display.println(ln3);
void showTextRectangle(String ln1, String ln2) {
display.clear();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_24);
display.drawString(32, 12, ln1);
display.drawString(32, 36, ln2);
display.display();
}
57 changes: 31 additions & 26 deletions examples/C02_PM_SHT_OLED_WIFI/C02_PM_SHT_OLED_WIFI.ino
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
#include <AirGradient.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <WiFiManager.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

#include <Wire.h>
#include "SSD1306Wire.h"

AirGradient ag = AirGradient();
#define OLED_RESET 0
Adafruit_SSD1306 display(OLED_RESET);

SSD1306Wire display(0x3c, SDA, SCL);

String APIROOT = "http://hw.airgradient.com/";

void setup(){
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

display.init();
display.flipScreenVertically();
showTextRectangle("Init", String(ESP.getChipId(),HEX));

ag.PMS_Init();
ag.CO2_Init();
ag.TMP_RH_Init(0x44); //check for SHT sensor with address 0x44
showTextRectangle("Init", String(ESP.getChipId(),HEX),"AirGradient");
ag.TMP_RH_Init(0x44);

connectToWifi();
delay(2000);
}
Expand All @@ -26,8 +31,14 @@ void loop(){
int PM2 = ag.getPM2_Raw();
int CO2 = ag.getCO2_Raw();
TMP_RH result = ag.periodicFetchData();
showTextRectangle(String(result.t)+"c "+String(result.rh)+"%", "PM2: "+ String(PM2), "CO2: "+String(CO2)+"");


showTextRectangle(String(result.t),String(result.rh)+"%");
delay(2000);
showTextRectangle("PM2",String(PM2));
delay(2000);
showTextRectangle("CO2",String(CO2));
delay(2000);

// send payload
String payload = "{\"pm02\":" + String(ag.getPM2()) + ",\"wifi\":" + String(WiFi.RSSI()) + ",\"rco2\":" + String(ag.getCO2()) + ",\"atmp\":" + String(result.t) + ",\"rhum\":" + String(result.rh) + "}";
Serial.println(payload);
Expand All @@ -41,37 +52,31 @@ void loop(){
Serial.println(httpCode);
Serial.println(response);
http.end();
delay(15000);

delay(2000);
}

// DISPLAY
void showTextRectangle(String ln1, String ln2, String ln3) {
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(32,8);
display.println(ln1);
display.setTextSize(1);
display.setCursor(32,16);
display.println(ln2);
display.setTextSize(1);
display.setCursor(32,24);
display.println(ln3);
void showTextRectangle(String ln1, String ln2) {
display.clear();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_24);
display.drawString(32, 12, ln1);
display.drawString(32, 36, ln2);
display.display();
}

// Wifi Manager
void connectToWifi(){
WiFiManager wifiManager;
//chWiFi.disconnect(); //to delete previous saved hotspot
//WiFi.disconnect(); //to delete previous saved hotspot
String HOTSPOT = "AIRGRADIENT-"+String(ESP.getChipId(),HEX);
wifiManager.setTimeout(120);
if(!wifiManager.autoConnect((const char*)HOTSPOT.c_str())) {
//Serial.println("failed to connect and hit timeout");
delay(3000);
ESP.restart();
delay(5000);
}
}

}

0 comments on commit bb3c572

Please sign in to comment.