Compare commits

..

2 Commits
1.3.1 ... 1.3.2

Author SHA1 Message Date
16a29b4646 Edited version code 2020-08-13 08:57:05 +07:00
bb3c57297e Refactored OLED code 2020-08-13 08:55:04 +07:00
3 changed files with 54 additions and 48 deletions

View File

@ -1,18 +1,21 @@
#include <AirGradient.h> #include <AirGradient.h>
#include <Adafruit_GFX.h> #include <Wire.h>
#include <Adafruit_SSD1306.h> #include "SSD1306Wire.h"
AirGradient ag = AirGradient(); AirGradient ag = AirGradient();
#define OLED_RESET 0
Adafruit_SSD1306 display(OLED_RESET); SSD1306Wire display(0x3c, SDA, SCL);
void setup(){ void setup(){
Serial.begin(9600); Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.init();
display.flipScreenVertically();
showTextRectangle("Init", String(ESP.getChipId(),HEX));
ag.PMS_Init(); ag.PMS_Init();
ag.CO2_Init(); ag.CO2_Init();
ag.TMP_RH_Init(0x44); //check for SHT sensor with address 0x44 ag.TMP_RH_Init(0x44);
showTextRectangle("Init", String(ESP.getChipId(),HEX),"AirGradient");
delay(2000); delay(2000);
} }
@ -20,22 +23,20 @@ void loop(){
int PM2 = ag.getPM2_Raw(); int PM2 = ag.getPM2_Raw();
int CO2 = ag.getCO2_Raw(); int CO2 = ag.getCO2_Raw();
TMP_RH result = ag.periodicFetchData(); TMP_RH result = ag.periodicFetchData();
showTextRectangle(String(result.t)+"c "+String(result.rh)+"%", "PM2: "+ String(ag.getPM2()), "CO2: "+String(ag.getCO2())+""); showTextRectangle(String(result.t),String(result.rh)+"%");
delay(5000); delay(2000);
showTextRectangle("PM2",String(PM2));
delay(2000);
showTextRectangle("CO2",String(CO2));
delay(2000);
} }
// DISPLAY // DISPLAY
void showTextRectangle(String ln1, String ln2, String ln3) { void showTextRectangle(String ln1, String ln2) {
display.clearDisplay(); display.clear();
display.setTextColor(WHITE); display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setTextSize(1); display.setFont(ArialMT_Plain_24);
display.setCursor(32,8); display.drawString(32, 12, ln1);
display.println(ln1); display.drawString(32, 36, ln2);
display.setTextSize(1);
display.setCursor(32,16);
display.println(ln2);
display.setTextSize(1);
display.setCursor(32,24);
display.println(ln3);
display.display(); display.display();
} }

View File

@ -1,23 +1,28 @@
#include <AirGradient.h> #include <AirGradient.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <WiFiManager.h> #include <WiFiManager.h>
#include <ESP8266WiFi.h> #include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h> #include <ESP8266HTTPClient.h>
#include <Wire.h>
#include "SSD1306Wire.h"
AirGradient ag = AirGradient(); AirGradient ag = AirGradient();
#define OLED_RESET 0
Adafruit_SSD1306 display(OLED_RESET); SSD1306Wire display(0x3c, SDA, SCL);
String APIROOT = "http://hw.airgradient.com/"; String APIROOT = "http://hw.airgradient.com/";
void setup(){ void setup(){
Serial.begin(9600); Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.init();
display.flipScreenVertically();
showTextRectangle("Init", String(ESP.getChipId(),HEX));
ag.PMS_Init(); ag.PMS_Init();
ag.CO2_Init(); ag.CO2_Init();
ag.TMP_RH_Init(0x44); //check for SHT sensor with address 0x44 ag.TMP_RH_Init(0x44);
showTextRectangle("Init", String(ESP.getChipId(),HEX),"AirGradient");
connectToWifi(); connectToWifi();
delay(2000); delay(2000);
} }
@ -26,7 +31,13 @@ void loop(){
int PM2 = ag.getPM2_Raw(); int PM2 = ag.getPM2_Raw();
int CO2 = ag.getCO2_Raw(); int CO2 = ag.getCO2_Raw();
TMP_RH result = ag.periodicFetchData(); 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 // send payload
String payload = "{\"pm02\":" + String(ag.getPM2()) + ",\"wifi\":" + String(WiFi.RSSI()) + ",\"rco2\":" + String(ag.getCO2()) + ",\"atmp\":" + String(result.t) + ",\"rhum\":" + String(result.rh) + "}"; String payload = "{\"pm02\":" + String(ag.getPM2()) + ",\"wifi\":" + String(WiFi.RSSI()) + ",\"rco2\":" + String(ag.getCO2()) + ",\"atmp\":" + String(result.t) + ",\"rhum\":" + String(result.rh) + "}";
@ -42,29 +53,23 @@ void loop(){
Serial.println(response); Serial.println(response);
http.end(); http.end();
delay(15000); delay(2000);
} }
// DISPLAY // DISPLAY
void showTextRectangle(String ln1, String ln2, String ln3) { void showTextRectangle(String ln1, String ln2) {
display.clearDisplay(); display.clear();
display.setTextColor(WHITE); display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setTextSize(1); display.setFont(ArialMT_Plain_24);
display.setCursor(32,8); display.drawString(32, 12, ln1);
display.println(ln1); display.drawString(32, 36, ln2);
display.setTextSize(1);
display.setCursor(32,16);
display.println(ln2);
display.setTextSize(1);
display.setCursor(32,24);
display.println(ln3);
display.display(); display.display();
} }
// Wifi Manager // Wifi Manager
void connectToWifi(){ void connectToWifi(){
WiFiManager wifiManager; WiFiManager wifiManager;
//chWiFi.disconnect(); //to delete previous saved hotspot //WiFi.disconnect(); //to delete previous saved hotspot
String HOTSPOT = "AIRGRADIENT-"+String(ESP.getChipId(),HEX); String HOTSPOT = "AIRGRADIENT-"+String(ESP.getChipId(),HEX);
wifiManager.setTimeout(120); wifiManager.setTimeout(120);
if(!wifiManager.autoConnect((const char*)HOTSPOT.c_str())) { if(!wifiManager.autoConnect((const char*)HOTSPOT.c_str())) {

View File

@ -1,5 +1,5 @@
name=AirGradient Air Quality Sensor name=AirGradient Air Quality Sensor
version=1.3.1 version=1.3.2
author=AirGradient <support@airgradient.com> author=AirGradient <support@airgradient.com>
maintainer=AirGradient <support@airgradient.com> maintainer=AirGradient <support@airgradient.com>
sentence=ESP8266 library for an air quality sensor featuring PM2.5, CO2, Temperature and Humidity with OLED display. sentence=ESP8266 library for an air quality sensor featuring PM2.5, CO2, Temperature and Humidity with OLED display.