Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* connect to Gas Sensor */
- #include "Adafruit_CCS811.h"
- Adafruit_CCS811 ccs;
- /* connect to wifi */
- #include <ESP8266WiFi.h>
- const char* ssid = "NSTDA-Project-7013"; // ssid wifi
- const char* password = "1q2w3e4r"; // password wifi
- WiFiClient client;
- /* connect to netpie */
- #include <MicroGear.h>
- #define APPID "SmartOfficeAt418B" // APPLICATION (APPID) etc. KMUTNBM2
- #define KEY "9LnnyoiXdorYtNn" // device key แต่ในเว็บ netpie ใช้ session key
- #define SECRET "ZhGtoPWqueqmtDDrTNRutKcMT" // *secret device key
- #define FEEDID "418BSensors" // feed name
- #define ALIAS "Air_Quality_Sensor"
- MicroGear microgear(client);
- /* Variable */
- int timer = 0;
- char str[32];
- void onMsghandler(char *topic, uint8_t* msg, unsigned int msglen) {
- Serial.print("Incoming message --> ");
- msg[msglen] = '\0';
- Serial.println((char *)msg);
- }
- void onConnected(char *attribute, uint8_t* msg, unsigned int msglen) {
- Serial.println("Connected to NETPIE...");
- microgear.setAlias(ALIAS);
- }
- void setup() {
- Serial.begin(115200);
- // Initialize Gas Sensor
- if (!ccs.begin()) {
- Serial.println("Failed to start sensor! Please check your wiring.");
- while (1);
- }
- //calibrate temperature sensor
- while (!ccs.available());
- float temp = ccs.calculateTemperature();
- ccs.setTempOffset(temp - 25.0);
- // Initialize microgear
- microgear.on(MESSAGE, onMsghandler);
- microgear.on(CONNECTED, onConnected); //optional
- microgear.on(ERROR, onConnected);
- microgear.on(INFO, onConnected);
- //Wait for WiFi Establishement
- Serial.println("Starting...");
- if (WiFi.begin(ssid, password)) {
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
- }
- Serial.println("WiFi connected");
- Serial.println("IP address: ");
- Serial.println(WiFi.localIP());
- microgear.init(KEY, SECRET, ALIAS);
- microgear.connect(APPID);
- }
- void loop() {
- if (microgear.connected()) {
- Serial.print("*");
- microgear.loop();
- if (timer >= 60000) {
- int CO2;
- int TVOC;
- float temp;
- if (ccs.available()) {
- temp = ccs.calculateTemperature();
- if (!ccs.readData()) {
- Serial.println("CO2: ");
- Serial.print(ccs.geteCO2());
- CO2 = ccs.geteCO2();
- Serial.print("ppm, TVOC: ");
- Serial.print(ccs.getTVOC());
- TVOC = ccs.getTVOC();
- Serial.print("ppb, Temp: ");
- Serial.println(temp);
- }
- else {
- Serial.println("ERROR!");
- while (1);
- }
- }
- //Don't You DARE USE white spaces in the String
- String data = "{\"Room_CO2\":";
- data += CO2 ;
- data += ",\"Room_TEMP\":";
- data += temp ;
- data += ",\"Room_TVOC\":";
- data += TVOC ;
- data += "}";
- sprintf(str, "%d,%.2f,%d", CO2, temp, TVOC);
- Serial.println(str);
- microgear.publish("/roomquality", str);
- Serial.println((char*) data.c_str());
- Serial.print("Sending --> ");
- microgear.writeFeed(FEEDID, data); //YOUR FEED ID, API KEY
- timer = 0;
- }
- else timer += 200;
- } else {
- Serial.println("connection lost, reconnect...");
- if (timer >= 5000) {
- microgear.connect(APPID);
- timer = 0;
- }
- else timer += 200;
- }
- delay(200);
- }
Advertisement
Add Comment
Please, Sign In to add comment