Light sensing with a Raspberry Pi

In a project I wanted to measure the amount of light in the room for controlling the backlight of a Tft display. The project uses a Raspberry Pi, which sadly don't have any analog inputs. In this case one can use a Ldr or a photo transistor with a capacitor. The principle is that you set a pin as output and make it high. This charges the capacitor. You then set the pin as input and measure the time until the Pi consideres the input to be low. The time this takes depends on how much light the detector is exposed to and will be a value depending on how much light there is in the room.

Light controlled tea light

Electric tea lights are nice but they have a great disadvantage. There are small batteries in the base which dont last long and you have to replace them often. A modification is to remove the small batteries and add an external battery pack. The tea lights work on 3 volt, so two AA:s, rechargeable or not, will do.
I also tried to add a circuit that detects the light in the room and turns the light of at daytime, no need the have the candles lit then. The circuit is designed to draw as little power as possible, otherwise the gain of the power saving would be gone.

Measure light with an ESP01

The goal of this project is to measure the light level in a room and send the value to a web server. One difficulty here is the lack of an ADC-pin on the ESP01 that is used. This is solved by letting a capacitor discharge through an IR-transistor, an idea taken from Pololu.
You have to remove the connection to Gpio2 when uploading firmware.
For running in stand-alone mode, remove the connection to Gpio0.

Wireless relay board

The goal of this project is to build a unit with four relays that can be controlled via Wifi. The components are mainly a ESP-03 wireless module, a ready-built relayboard and a 3V3 regulator.


I start by flashing firmware found here.

Then I can use the Arduino IDE to program the ESP. Ch_pd is connected to Vcc and Gpio15 to ground. To program, Gpio0 is connected to ground while the power is cycled.

Arduino based AC remote

In the bedroom we have a portable AC to cool of the room. It creates some noice, and therefor we prefer
to run it at daytime and shut it off at bedtime. But how to remember to start the AC in the morning?
The AC has a remote controller, so the plan is to build a Arduino-based remote capable of imitating the stock remote.
The Arduino has a IR-transmitter and a RTC (Real Time Clock). In that way the Arduino can power on the AC
at a preset time and power off at bedtime.

ESP8266 and NodeMCU

First flash the ESP8266 with the Nodemcu firmware using this guide:
Vcc on the Esp is powered by an LM1117 as in xxx. Gnd to gnd, rx to tx and tx to rx on the serial adapter. CH_PD to Vcc, Gpio0 to Vcc via a resistor (1k) and to ground via a push button. Push the button, toggle Vcc to the Esp, release button, run the command to flash the firmware.

Then install Esplorer, a Java tool to work with the Esp:


Diy Iot with the ESP8266

Building a toolchain and compile native code - Look here

A really good guide to use the ESP8266 with Arduino IDE and native code (no Arduino-hardware added). Click.
This from Adafruit is also recommended.


More info coming soon.

Syndicate content