Last Updated or created 2025-10-18
December is coming, time for candles.
The plan is to make a flame sensor, with in combination with my presence sensor will alert me when we leave the room and candles are on, give us a notification.
Above is the schematic. A Wemos mini (left over from another project), an analog multiplexer and a cheap 5 times flame detector.
There is a potentiometer on this board to change the sensitivity.
Search “Infrared Ir Flame Sensor Detector Fire Detection Module 5 Channel” on Aliexpress. These are 1 euro.
Presence sensor:


ESPHome code will follow, here is some Arduino code.
(esphome code is not complete yet, 5 sensor reading needs to trigger single switch.)
#define MUX_A D5 #define MUX_B D6 #define MUX_C D7 #define ENABLE D1 #define ANALOG_INPUT A0 void setup() { Serial.begin(9600); //Define output pins for Mux pinMode(MUX_A, OUTPUT); pinMode(MUX_B, OUTPUT); pinMode(MUX_C, OUTPUT); pinMode(ENABLE, OUTPUT); digitalWrite(ENABLE, LOW); // No need to switch, can be permanenty low } void changeMux(int c, int b, int a) { digitalWrite(MUX_A, a); digitalWrite(MUX_B, b); digitalWrite(MUX_C, c); } void loop() { float value; changeMux(LOW, LOW, HIGH); value = analogRead(ANALOG_INPUT); //Value of the sensor connected Option 1 pin of Mux Serial.print("Variable_1:"); Serial.print(value); Serial.print(","); changeMux(LOW, HIGH, LOW); value = analogRead(ANALOG_INPUT); //Value of the sensor connected Option 2 pin of Mux Serial.print("Variable_2:"); Serial.print(value); Serial.print(","); changeMux(LOW, HIGH, HIGH); value = analogRead(ANALOG_INPUT); //Value of the sensor connected Option 3 pin of Mux Serial.print("Variable_3:"); Serial.print(value); Serial.print(","); changeMux(HIGH, LOW, LOW); value = analogRead(ANALOG_INPUT); //Value of the sensor connected Option 4 pin of Mux Serial.print("Variable_4:"); Serial.print(value); Serial.print(","); changeMux(HIGH, LOW, HIGH); value = analogRead(ANALOG_INPUT); //Value of the sensor connected Option 5 pin of Mux Serial.print("Variable_5:"); Serial.println(value); }