#include #include #include #include WiFiClient client; #define S_CONN1 D5 #define S_CONN2 D7 #define LEDS1 D1 #define LEDS2 D4 #define NUM_LEDS 3 // Aantal LED's op LED-ring #define WIFISSID "JeWifiSSID" #define WIFIPASS "JeWifiWachtwoord" #define HOST1 "octopi.local" #define API1 "API-Key 1 Octopi" #define HOST2 "octopi2.local" #define API2 "API-Key 2 Octopi" OctoprintApi api1(client, HOST1, 80, API1); OctoprintApi api2(client, HOST2, 80, API2); Adafruit_NeoPixel Ring1(NUM_LEDS, LEDS1, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel Ring2(NUM_LEDS, LEDS2, NEO_GRB + NEO_KHZ800); #define UIT "Printer is not operational" #define KNIPPERINTERVAL 300 void setup() { Serial.begin(115200); Ring1.begin(); AllesAan1(Ring1.Color(128,128, 0)); Ring1.show(); Ring2.begin(); AllesAan2(Ring2.Color(128,128, 0)); Ring2.show(); pinMode(S_CONN1,INPUT_PULLUP); pinMode(S_CONN2,INPUT_PULLUP); Serial.print("Verbinden met Wifi"); WiFi.begin(WIFISSID,WIFIPASS); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("IP address: "); Serial.println(WiFi.localIP()); } static long tPrinter=millis(); static long tLoop1=millis(); static long tLoop2=millis(); static bool PrinterOnline1, PrinterOnline2; int ToolTemp1=0, ToolTemp2=0; void loop() { if(digitalRead(S_CONN1)==LOW) { Serial.println("Pushbutton 1"); TestOnline1(); } if(digitalRead(S_CONN2)==LOW) { Serial.println("Pushbutton 2"); Serial.println(TestOnline2()); } if(abs(millis()-tPrinter)>=2000) { api1.getPrinterStatistics(); Interupt(); api2.getPrinterStatistics(); Interupt(); Serial.println("1==>"+String(api1.printerStats.printerState)); Serial.println("2==>"+String(api2.printerStats.printerState)); PrinterOnline1 = api1.printerStats.printerState!=UIT; PrinterOnline2 = api2.printerStats.printerState!=UIT; if(PrinterOnline1) { ToolTemp1=api1.printerStats.printerTool0TempActual; Interupt(); if(api1.printerStats.printerStatePrinting) { api1.getPrintJob(); } } else { Interupt(); Serial.println("Printer 1 uit!"); } if(PrinterOnline2) { ToolTemp2=api2.printerStats.printerTool0TempActual; Interupt(); if(api2.printerStats.printerStatePrinting) { api2.getPrintJob(); } } else { Interupt(); Serial.println("Printer 2 uit!"); } //Display(); tPrinter=millis(); } Interupt(); } void Interupt() { int n1=1,n2=1,kleur1=Ring1.Color(128, 0, 0),kleur2=Ring2.Color(128, 0, 0); if(ToolTemp1>200) n1=5; if(api1.printerStats.printerStatePrinting) { if(abs(millis()-tLoop1)>=KNIPPERINTERVAL && PrinterOnline1) { LoopLicht(1,Ring1.Color(0, 0, 255),3); tLoop1=millis(); } } else if(!PrinterOnline1) { AllesAan1(Ring1.Color(255, 0, 0)); } else if(PrinterOnline1) { AllesAan1(Ring1.Color(0, 255, 0)); } if(api2.printerStats.printerStatePrinting) { if(abs(millis()-tLoop2)>=KNIPPERINTERVAL && PrinterOnline2) { LoopLicht(2,Ring1.Color(0, 0, 255),3); tLoop2=millis(); } } else if(!PrinterOnline2) { AllesAan2(Ring2.Color(255, 0, 0)); } else if(PrinterOnline2) { AllesAan2(Ring2.Color(0, 255, 0)); } } void AllesAan1(int Kleur) { for(int i=0; i=2) Rondeteller[PrinterNr-1]=0; } bool TestOnline1() { for(int i=0; i<3 && !PrinterOnline1; i++) { api1.octoPrintConnectionAutoConnect(); delay(6000); api1.getPrinterStatistics(); PrinterOnline1 = api1.printerStats.printerState!=UIT; } return PrinterOnline1; } bool TestOnline2() { for(int i=0; i<3 && !PrinterOnline2; i++) { api2.octoPrintConnectionAutoConnect(); delay(6000); api2.getPrinterStatistics(); PrinterOnline2 = api2.printerStats.printerState!=UIT; } return PrinterOnline2; } /*void Opwarmen(OctoprintApi &Printer) { if(!TestOnline()) return; Printer.octoPrintPrinterCommand("M104 S215"); delay(50); Printer.octoPrintPrinterCommand("M140 S60"); delay(50); } void LoadFilament(OctoprintApi &Printer) { if(!TestOnline()) return; Printer.octoPrintPrinterCommand("M701"); delay(50); } void UnLoadFilament(OctoprintApi &Printer) { if(!TestOnline()) return; Printer.octoPrintPrinterCommand("M702"); delay(50); }*/