#include #include #define IDLE_STATE 0; #define SCANNING_STATE 1; #define SCANNED_STATE 2; const int RED_LED = 15; const int YEL_LED = 13; const int GRN_LED = 12; int STATE = IDLE_STATE; ESP32QRCodeReader reader(CAMERA_MODEL_AI_THINKER); void onQrCodeTask(void *pvParameters) { struct QRCodeData qrCodeData; while (true) { if (reader.receiveQrCode(&qrCodeData, 100)) { switchOffLeds(); Serial.println("Found QRCode"); if (qrCodeData.valid) { switchOffLeds(); String payload = (const char *)qrCodeData.payload; Serial.println(payload); if (payload.indexOf('1')==0) { digitalWrite(GRN_LED, HIGH); Serial.print("Payload: "); Serial.println(payload); delay(3000); // hoe lang duurt dat uitsturen van zo'n sapje? } else switchOffLeds(); } else { Serial.print("Invalid: "); Serial.println((const char *)qrCodeData.payload); } } else { switchOffLeds(); digitalWrite(RED_LED, HIGH); } vTaskDelay(100 / portTICK_PERIOD_MS); } } void setup() { Serial.begin(115200); Serial.println(); pinMode(RED_LED, OUTPUT); pinMode(YEL_LED, OUTPUT); pinMode(GRN_LED, OUTPUT); switchOffLeds(); digitalWrite(RED_LED, HIGH); reader.setup(); Serial.println("Setup QRCode Reader"); reader.beginOnCore(1); Serial.println("Begin on Core 1"); xTaskCreate(onQrCodeTask, "onQrCode", 4 * 1024, NULL, 4, NULL); } void loop() { delay(100); } void switchOffLeds() { digitalWrite(RED_LED, LOW); digitalWrite(YEL_LED, LOW); digitalWrite(GRN_LED, LOW); }