Here Comes Siwat INC(R) DEVCON V3

This commit is contained in:
Siwat Sirichai 2019-09-04 21:07:36 +07:00
parent 7cde8d63dc
commit 435a92b5f8
1 changed files with 33 additions and 1 deletions

View File

@ -26,9 +26,11 @@
#include <Adafruit_MCP23017.h> #include <Adafruit_MCP23017.h>
#include <Thread.h> #include <Thread.h>
#include <ThreadController.h> #include <ThreadController.h>
#include <AceButton.h>
Adafruit_MCP23017 mcp; Adafruit_MCP23017 mcp;
long tslr = 0; long tslr = 0;
WiFiClient espClient; WiFiClient espClient;
AceButton gpio0(0);
PubSubClient client("siwatsystem.com", 1883, espClient); PubSubClient client("siwatsystem.com", 1883, espClient);
PubSubClientTools mqtt(client); PubSubClientTools mqtt(client);
ThreadController threadControl = ThreadController(); ThreadController threadControl = ThreadController();
@ -41,19 +43,23 @@ boolean lastsensorstate[12];
boolean firstrun = true; boolean firstrun = true;
FlowMeter sensor1 = FlowMeter(12); FlowMeter sensor1 = FlowMeter(12);
FlowMeter sensor2 = FlowMeter(13); FlowMeter sensor2 = FlowMeter(13);
boolean devcon=false;
volatile boolean awakenByInterrupt = false; volatile boolean awakenByInterrupt = false;
LiquidCrystal_I2C lcd(0x3F, 16, 2); LiquidCrystal_I2C lcd(0x3F, 16, 2);
int menu; int menu;
void handleGPIO0(AceButton*, uint8_t, uint8_t);
void writelcd(String line1, String line2){ void writelcd(String line1, String line2){
if(!devcon){
lcd.clear(); lcd.clear();
lcd.print(line1); lcd.print(line1);
lcd.setCursor(0,1); lcd.setCursor(0,1);
lcd.print(line2); lcd.print(line2);
Serial.print("Writing to LCD: "+line1+" "+line2+"\n"); Serial.print("Writing to LCD: "+line1+" "+line2+"\n");
} }
}
void updatelcd() void updatelcd()
{ {
writelcd("1: "+String((int)sensor1.getCurrentFlowrate())+"L/h "+String(sensor1.getTotalVolume())+"L","2:"+String((int)sensor2.getCurrentFlowrate())+"L/h "+String(sensor2.getTotalVolume())+"L"); if(!devcon)writelcd("1: "+String((int)sensor1.getCurrentFlowrate())+"L/h "+String(sensor1.getTotalVolume())+"L","2:"+String((int)sensor2.getCurrentFlowrate())+"L/h "+String(sensor2.getTotalVolume())+"L");
} }
void ICACHE_RAM_ATTR read1() { void ICACHE_RAM_ATTR read1() {
sensor1.count(); sensor1.count();
@ -113,6 +119,8 @@ void setup() {
pinMode(14, INPUT_PULLUP); pinMode(14, INPUT_PULLUP);
pinMode(12, INPUT); pinMode(12, INPUT);
pinMode(13, INPUT); pinMode(13, INPUT);
pinMode(0, INPUT_PULLUP);
gpio0.setEventHandler(handleGPIO0);
attachInterrupt(digitalPinToInterrupt(12), read1, RISING); attachInterrupt(digitalPinToInterrupt(12), read1, RISING);
attachInterrupt(digitalPinToInterrupt(13), read2, RISING); attachInterrupt(digitalPinToInterrupt(13), read2, RISING);
delay(1000); delay(1000);
@ -158,4 +166,28 @@ void setup() {
void loop() { void loop() {
if(online)client.loop(); if(online)client.loop();
threadControl.run(); threadControl.run();
gpio0.check();
}
void handleGPIO0(AceButton* , uint8_t eventType,
uint8_t ) {
switch (eventType) {
case AceButton::kEventPressed:
devcon=true; //no going back, Delete Waterish OS and Install Siwat INC(R) DEVCON OS
lcd.print(" SIWAT INC(R) ","DEVCON OS V3.2.4");
delay(1000);
lcd.print("DEVCON TOOLKITS","3 Extension Load");
delay(1000);
lcd.print("Initia Extension","connectionchck.c");
delay(2000);
lcd.print("Initia Extension","hall_pid_tuner.c")
delay(2000);
lcd.print("Initia Extension","credit_display.c");
delay(2000);
lcd.print("DEVCON TOOLKITS","set WTOS at 0x3D");
delay(1000);
break;
case AceButton::kEventReleased:
//debounce
break;
}
} }