TN Subjects & Descriptions


Subject Cross-references Subject Cross-references
Time services TN008, TN008a, TN019, TN059, TN060 Sensor- BME180 TN050
I2C Bus TN063, TN075 Sensor- BME280 TN050
SPI Bus TN045, TN064 Sensor- BME680  
Secure connections (SSL) TN033, TN036 Sensor- DHT11 TN013
UDP reception TN001, TN006 Sensor- DHT22 TN004, TN011, TN012
JSON decoding, encoding and download, uploads TN039, TN040, TN043, TN054 Sensor- SHT30 TN020
Weather data decoding TN002, TN039, TN040, TN043 Sensor- SHT31 TN018
ILI9341 screen usage TN003, TN010, TN011, TN044 Sensor- SHT35  TN066
SSD1331 screen usage TN046 Sensor- HC1010  TN065
SSD1351 screen usage TN052 Sensor- MAX30100   TN072
Web servers TN005, TN007, TN021, TN026, TN027, TN035, TN079 Sensor- HMC5883 TN009
Web server and HTML5 images TN028 Sensor- DS18B20 TN047 
Data logger using Google graphs TN024, TN080 Sending Emails using ESP8266/ESP32 TN037 
EEPROM TN015  Add ‘data upload’ facility to Arduino IDE TN038 
SPIFFS TN030 MAX7219 Scrolling matrix display TN033, TN034
SD-Card Reading/Writing TN016 Deep Sleep Examples TN051 
Interrupts (ESP8266) TN017 e-paper displays TN055, TN100, TN101
OTA Updates TN025, TN082 Weather forecasting TN050, TN055
General programming concepts/tips TN031 ESP32/ESP8266 as a Wi-Fi RSSI TN053
Thingspeak uploads TN051, TN054 GPS Compass TN074
Using the ESP32 ADC TN069 FFT Music Spectrum Analyser TN076, TN077 
Using the ESP32 DAC TN071 Using FFT for Morse decoding TN078 
Using the ESP32 Serial port TN081    

An ESP8266/Arduino receives a UDP multicast packet broadcast by a Network Owl and displays the (XML) data on an ILI9341 TFT display, using a graph that auto scales, it also displays the time that the UDP packet was received.

An ESP8266 is used to send an HTML data request to the NOAA weather server and display the resultant weather information on a ILI9341 TFT display. The software decodes the METAR transmission and converts the codes to plain text.

An Adafruit TFT 2.2″ 320×240 display and some short Arduino code is used to simulate an analogue meter. I measure the voltage applied to the A0 pin, scale it then display on the meter. The meter needle has an arrow top drawn using a simple equation. Refresh rate in the video is 250mS per needle update, but it can be reduced to 0mS delay, giving near instant response time.

An ESP8266 (or Arduino) reads temperature and humidity from a DHT22 sensor and plots the data on two graphs. Both graphs auto-scale. The graphs can be set for bar chart or line mode. The maximum and minimum values together with current values are also displayed.

An ESP8266 – a WEMOS D1 Mini has been programmed to act as a Web Server. Three Wemos shields are used a MicroSD, DHT11 temperature and humidity sensor and a relay. The web server can control via an HTML Web Page the LED and relay and display files on the SD Card together with displaying temperature and humidity.

An ESP8266 is programmed to be a Web Server and a typical website is served to show performance, followed by a complete code walk-through.

An ESP8266 receives a UDP Multicast network transmission, decodes the data and then displays the result on a 0.96″ OLED display.

An ESP8266 is programmed as a Webserver and delivers temperature, humidity and pressure plus Heat Index and Dew Point values as a web page to any connecting client all derived from a BOSCH BME280 sensor. Whilst connected the client gets a reading update every 15-secs.

A demonstration of the single page webserver as it serves temperature, humidity and pressure plus the derived values of dew point and heat index.

Using an ESP8266 to display the current time from the NTP servers, thereby enabling accurate time to be maintained. The display is an OLED 64×48 pixel unit (shield) by WEMOS, making for a compact time source. The Ticker library is used to update the display every second and every minute the NTP time is refreshed to keep the unit in line with the NTP refresh rate allowed (once per minute maximum). The Wi-Fi Manager enables the ESP to connect to any network and it saves Wi-Fi credentials on the ESP8266 for use next time.

An ESP8266 (WEMOS D1 mini) is connected to an HMC5883 compass and the resultant heading is displayed on an OLED (64×48 pixel) display. A code walk-through is also provided.

Using the ESP8266 with a colour OLED (SSD1331) using a modified Adafruit library to drive the display.

Using an ESP8266 and ILI9341 TFT display to show readings from 6 of the most popular and accurate temperature and humidity sensing devices in a bid to determine which is best.

An explanation with code examples and wiring diagrams of how to read multiple DHT Sensors using an Arduino or ESP8266 complete with code walk-through for each stage.

A qualitative comparison of three DHT Sensors the DHT11, DHT21 (AM2301) and DHT22. No surprises that the DT21 and 22 being near identical compared well, although the DHT21 gave the best range of results overall.

The aim of this video is to show how you can get an accurate temperature and humidity reading from a sensor if you choose the correct type. The SHT31 and HDC1010 are compared and the results are near identical. The Sensiron sensor SHT31 is backed up by a calibration certificate providing confidence that the results are within known bounds validated partially by the tests in this video.

A code walk-through of the ESP8266 EEPROM reading and writing commands and how to commit variables to EEPROM and then retrieve them.

***NOTE: *** Many boards you can buy need a pull-down resistor (say 4k7) on the CS line, typically D8 on a Wemos D1 Mini SD adapter, THESE ARE ALL HARDWARE PROBLEMS when boards are purchased from unknown sources!
An explanation of the ESP8266 SD Card reading and writing commands together with file handling commands. A complete walk-through of each command then some example code, a wiring diagram and an illustration of the code running.

Using interrupts is a powerful programming technique and not that complicated to set-up. In my example here I flash the on-board LED every second and then drive a Neopixel ring whilst decoding weather METARS (see link below for code).

Using an ESP8266 to create a tempistat (thermostat) and humidistat and graphing the current values as they are updated. Two outputs are used to switch LED@s on/off but could be controllers for heat or cooling.

TN008 described an NTP OLED Clock, to which I have now added a Webpage set-up facility to allow AM-PM/24HR modes, Time-Zones and DST Modes to be adjusted and saved in EEPROM.

Using the ESP8266 and the new WEMOS SHT30 Temperature and Humidity shield and results displayed via a Webserver. Includes a code walk-through.

An ESP8266 is configured as a webserver using the Wi-Fi Manager to read and log temperature and humidity from an SHT30-D WemoS shield and then displays the results using Google Charts. The unit is totally self-contained and apart from google charts requires no other access to external sites like MQTT or Thingspeak. Data is recorded to an SD-Car if fitted. It recovers data from the SD-Card in the event of power failure and a restart and does this contiguously. The log file can be checked for size, erased and streamed out to a web browser for copy/paste into a spreadsheet. The scale of the axis can be varied as required.

An ESP8266 running as a webserver and Client connect and how to receive data from the Client. This video explains the process and sequence of events leading to a Client connection and how data or commands are moved as arguments on the browser address line to the ESP8266 server-side environment where they can be acted upon. Examples are given in the code walk-through.

At high frequencies such as Wi-Fi UHF, VHF where the wavelength is short, the effect of a property known as multi-path (amongst other effects such as Fresnel Zoning) can make a big difference to reception – often it works or not! This video tries to illustrate the effect.

Autonomous graphing data logger. NOTE: Uses Wi-Fi Manager so if you get no network connection, connect your browser to and follow the instructions, then connect back to your normal network. You can use the code without a sensor or SD Card fitted to see the principles of its operation. Clearly it won’t log or display any data though, just all zeros’! An ESP8266 configured as a webserver using the Wi-Fi Manager to read and log temperature and humidity from a variety of sensors using the WemoS shields and then displays the results using Google Charts. Any ESP8266 can be used. There are four versions so-far using: 1. BOSCH BME280 to display temperature, humidity, dewpoint and pressure 2. SHT30-D to display temperature, humidity, dewpoint 3. DHT22 to display temperature, humidity, dewpoint 4. DHT11 to display temperature, humidity, dewpoint. The design gives a totally self-contained and apart from google charts, it requires no other access to external sites like MQTT or Thingspeak. Data is recorded to an SD-Card if fitted. It recovers data from the SD-Card in the event of power failure or a restart and does this contiguously. The log file can be checked for size, erased and streamed out to a web browser for copy/paste into a spreadsheet. The scale of the y-axis can be varied as required. BEWARE: As Google notes in their documentation, implementation of Google Charts is highly complex, if you modify the code, don’t be surprised if it stops working, this code is the culmination of my extensive studies into the use of Google Charts through their documentation and then my careful implementation and it also requires the correct use of the ESP8266 server functions. Some functions may seem superfluous but they are not. Any adjustment of the HTML code or attributes other than simple colour or font size changes is likely to make the code non-operational.

How to perform Over-The-Air (OTA) updates of your sketches, a step-by-step review of the process and examples.

An ESP8266 (WeMos D1 Mini or WeMos D1 Pro or NodeMCU or any other ESP8266) configured as a webserver that displays Weather Underground weather data for your chosen location.

A blank webserver/website combination for your use. Each command can be configured on/off in the source code with easy to change values. It provides a template for you to use for your own applications.

An extension of TN0027 showing the result when pages have HTML or Images or HTML5 embedded images. You could construct an autonomous weather webserver using HTLM5 weather icons for example.

Measuring and then Calculating mA-Hr consumption of circuits, some basic processes followed by a method for circuits with a more complex power consumption profile how to work out circuit operating time when using a battery.

Using the SPI Flash File System on the ESP8266 in-place of the SD-Card hardware based system. In most instances the implementation of SPIFFS is straightforward and relatively easy to do.

Pointers are some of the more complicated subjects for beginners when learning C. It is possible to write the vast majority of sketches without encountering pointers, however when manipulating certain data structures, pointers can simplify the code and a knowledge of manipulating pointers is useful to acquire. This video explains how they operate.

Using an ESP8266 to make a Secure Socket Layer connection to a server. The video gives some basic examples of the connections and shows the minimal changes required to make an SSL Connection.

An ESP8266 is used to display my YouTube Channel Statistics using SSL, then it uses the standard Time library to display time on a 4x8x8 MAX7219 LED matrix.

Connect an ESP8266 to a MAX7219 4 segment 8×8 display and you have a message board or in this example a clock with time derived from the Network Time Protocol. The display can also be used to draw graphics like squares, triangles an circles.

An ESP8266 setup as a Wi-Fi Web Server, receives a message input from a User Input page, then displays the message on a scrolling LED matrix display.

TN0032 gave an introduction and practical implementation of SSL connections using the ClientSecure Library for Arduino and ESP8266, this nest part shows how to authenticate the link using pre-determined SSL Certificate values. Note SSL links do-not require you to authenticate certificates.

Initially sending an email manually via TELNET is demonstrated and then how the ESP8266 can be utilised to replicate the process.

Demonstrates how to add the Upload Plugin to the IDE, where to create the ‘data’ folder for files to be uploaded, then demonstrates an upload. When completed files are available to ESP8266 programmes using SPIFFS.

Using an ESP8266 to download then decode Weather Underground JSON Strings from their API, then display a current and 3-day forecast including Sun and Moon rise and set times, including illumination levels.

An ESP8266 provides a webserver and single page 3-day weather forecast after querying the Weather Underground server using their Forecast API, data is decoded using the JSON library, then HTML codes are generated to be displayed on a webpage. Connect to the server to its designated IP address (provided by your Router) and use port 5000, although the port can be changed. Example Enter your city and country details, then click on Homepage. Alternatively change the port to 80 and connect like this: http:/

The Lolin X1 boards have just been released, here’s a short demonstration of it running.

The ESP32 X1 board with its OLED display together with the DHT22 shield is used to provide both internal and external weather data.

I have ported my Weather Station code using a JSON decoder and implemented Daniel Eichhorn’s excellent driver for the SH1106 display chip, which enables scrolling frames to be used. I hope the video and code examples help you to implement his library using scrolling frames whilst providing (I think) a useful set of functions for time and weather display.

How to connect an ILI9341 to an ESP32.

Compilers for the ESP32/ESP8266 can be directed to use either Hardware or Software implementations of the SPI bus. Currently the Arduino IDE has implemented the Espressif VSPI bus and this video demonstrates the speed advantage of implementing the hardware solution. The video contains examples and a more detailed look at the implementation.

How to connect an SSD1331 Colour OLED display with an ESP32.

Using sensors in an external environment is difficult, but a supplier ( makes and supplies exceptional high quality units which I have obtained. Clearly built for all weathers the DS18B20 sensor is housed in a stainless steel encapsulation and the whole assembly can be ready to use in minutes, perfect. I have provided some code to try it out on an ESP32 here:… You can have multiple DS18B20 devices on the same bus and by reading their address determine temperature by location.

A new board that accepts Wemos D1 Mini Shields enabling their use on the current generation of Espressif ESP32 processors.

The Espressif ESP32 WROVER board being used to develop a weather forecaster project.

An ESP3 (or ESP8266) with a pressures sensor (BMP180/BME280) is being used to predict weather condition. It uses a comprehensive set of forecasting rules and displays an icon and text as the results.

An explanation of how to upload to together with Deep Sleep operations with a code walk-through and examples.

A description of how to setup the SSD13XX library to operate the SSD1351 1.5″ colour OLED (128×128 pixel) display.

Using an ESP32 or an ESP8266 as a Wi-Fi RSSI indicator that enables a site survey of relative signal strength to be conducted and then assist with solving poor Wi-Fi reception problems.

An example of using the ESP32 or ESP8266 to read data back from a Thingspeak channel by decoding the JSON formatted response.

The video demonstrates the use of e-Paper/e-Ink displays that use the SPI Bus. It begins by demonstrating on a 4.2″ display and Weather Forecast data from Weather Underground, then it goes through the connections for an ESP32/EPS8266, then discusses library setup and then finally power-consumption (zero if disconnected) and typical battery duration using an ESP in sleep mode.

In this video I explain how using a Weather Station type display I connect and use the Waveshare 4.3″ Serial/UART ePaper display.

Thinking of running an ESP32 as a battery powered data logger? then you might need to think again unless you like changing batteries all the time. The best I can achieve is ~200-days on a 3000mAh battery and that is not considered to be a good result! I conclude that conventional RF links are far superior until the RF power can be reduced on the ESP32, which might help somewhat to improve battery life. The BME280 is a non-regulator type, so no 5-3.3v voltage regulator, it has to run at 3.3v only. If you use a 5v variant, it will consume typically 5mA in non-measuring mode.

The ESP8266 is a more power efficient solution than the ESP32 for battery powered data logging, although the result is not as good as might be expected as it achieved 315-day battery life using a 3000-maHr battery verses the 213-days of the ESP32. This trial was a direct comparison with the ESP32 as shown in TN057.  I conclude that conventional RF links still offer superior performance until the ESP8266 RF power can be reduced and whilst the function is available, it has no discernible effect on power consumption.

A quick and easy way of getting time and then formatting it to your needs on your ESP32 using Network Time Services.

Following on from Tech Note 059, I now demonstrate how to use the ‘setenv’ Time Zone variable, this allows your programme to change time zones and resolve DST changes with no programme changes needed.

In my quest for the ultimate low-power development board, I got a little closer to the end when I purchased a WEMOS Lolin ESP32 Lite board, and in this video I set-out what’s different from most ESP32 boards.

Still on my quest for a the ultimate low-power development board, I purchased a WEMOS Lolin32 board and discovered it used a small amount of power when powered directly via the 3v3 pin.

Have you ever connected an I2C Device and it did not work, well here are my experiences and solutions for getting them working.

Have you ever tried to connect an SPI device and it did not work, well here are my experiences and solutions for getting them working.

This is a very high accuracy factory calibrated temperature sensor accurate to within +/-0.1°C and uses an I2C bus.

SHT35D – another high accuracy, factory calibrated temperature / humidity sensor accurate to within +/-0.1°C and +/- 1.5%rH but with an unusual feature of having a water vapour permeable filter cap, so it can be externally mounted and exposed to the elements without damage. It uses an I2C bus.

A demonstration of the BME680 being used to read air quality, temperature, pressure and humidity.

Confused about Arduino, ESP8266 and ESP32 pin maps on development boards, here’s how to find out what those pin labels mean and how they are mapped to GPIO pins. Also I show how to add your own pin definitions and change pins. Note: IDE no-longer supports this feature.

In this video I show how to use the ADC, discuss it’s linearity, illustrate the attenuation settings, show how to change pins used by the ADC channel and then show a function that improves accuracy to less than 1% by using a polynomial equation.

Not all of the Development boards (especially ESP32) are listed in the Arduino IDE Boards, so this is how I add a new board definition. Don’t forget to modify the file ‘pins_arduino.h’ to match your board for example change or add the LED pin is use, default serial port speed, etc.

How to use the ESP32 DAC with some examples of generator Since, Square and Triangle waveforms. Conversion time of the DAC is 7uS, so faster enough to produce a Sinewave of ~1.25Khz. Faster if sampling is done.

A system using ESP8266, MAX30100 and ILI9341 TFT Display as a pulse oximetry and heart-rate sensor.

Choose either the ESP32 or ESP8266 version, enter your Wi-Fi SSID and Password and watch the display scrolling away as it shows you how many days, hours and mins there are to the big days.
Code:… The Display driver is the SQUIX variant available on Github. Choose either the SH1106 for the 1.3″ OLED or SSD1306 for the 0.96″ variant. Unfortunately there is no suitable driver for the smaller Wemos OLED.

GPS modules transmit lots of data known as Sentences, some of which contains bearing/azimuth data, this project uses those GPS sentences to provide a Compass display giving true bearing and speed in mph, current location and altitude.

An improved explanation (I hope) of how to get I2C devices to function that can often be problematic, be it determining which pins on a development board are SDA and SCL; determining the I2C device address to resolving conflicting library functions that all prevent a device from working.

In this project I use the Fast Fourier Transform algorithm to convert audio (in the time domain) back to its component frequency parts and then display the results as bands of amplitude and frequency on an OLED either 0.96″ or 1.3″. Choose the display you have by commenting out the library not required (Sh1106 for the 1.3″ OLED and SSD1306 for the 0.96″). Most ESP8266 development boards have a voltage divider on the audio input and may require a larger audio drive, by contrast most ESP32 development boards have no ADC input protection. For either board a microphone pre-amplifier is useful although direct audio connection can be used if required, but careful attention is required on the maximum drive and it should be de-coupled with a capacitor of say 10uF or greater. The ESP32 does not generally have a voltage divider and so needs less audio input, say 100mV, some experimentation is required with your audio source.

An improved version of that shown in TN076, now with 4-times more resolution, improved speed of analysis and an extra octave, all made possible with only the ESP32. The result is a visibly more active display and the transition/discrimination between bands improved. Calibration was with a function generator; beware of using a microphone and/or speaker to calibrate the transitions as they introduce distortion which the FFT then detects and skews the results accordingly, usually higher.

An ESP32 together with an OLED display and a basic microphone are used to decode in real-time Morse code. Speed automatically adjusts to the incoming Morse characters and bandwidth can be varied at compile time to improve selectivity on noisy bands.

A general purpose webserver with as many examples as I can think of, use it to :
1. Display time and date
2. Display server uptime
3. Control relays
4. Control servo positions
5. Control LED’s
6. Get user inputs
7. Display user inputs
8. Display data using google charts
9. Read and display data from a Bosch BME280 temperature, pressure and humidity sensor
10. Read and display data from a Bosch BME680 temperature, pressure, humidity and Air Quality sensor
11. Read and display data from an SHT-31D
12. Read and display data from a DHT11 or DHT22 temperature and humidity sensor
13. Add general web pages, modify the supplied latin for your own text.

Please see TN088 for the latest much improved version
An ESP32 or ESP8266 and suitable sensor, in this example an SHT30 are paired together to provide a small data logger with a Webserver front end that enables settings to be adjusted and data to be graphed. Data logs can also be viewed and copied out for external analysis. Data is stored in flash memory.

In this video I go through the serial ports provided on the ESP32 and outline how to set them up and how to connect serial devices. A brief insight into Parity as an error detection mechanism is also covered. Wiring Diagrams for the trials are provided using an NMEA GPS module, all NMEA devices have a default baud-rate of 9600baud.

An overview of the ESP32 OTA architecture and method, then how to set-up your IDE to support OTA followed by a demonstration and summary.

An ESP32 or RESP8266 (the code will compile accordingly for your chosen platform) acts as a Web Server that displays the results of sensor (Clients) that upload data. The Client code for the example sensors will compile according to your board choice of ESP32 or ESP8266. You can test the server without any clients by typing the examples provided in the video or on Github.

A small collection of ESP32/ESP8266 code examples that I hope you find useful.

Using HTTP and HTML as an interface, I demonstrate how to download a file from an ESP SD Filing System, using the SPI FFS is easily implemented. It requires a Webserver to operate. This is the first in a series of videos, the next will be file Uploading, then Deleting and then a Directory function.

Using HTTP and HTML as an interface, I demonstrate how to upload a file to an ESP SD Filing System, but using the SPI FFS is easily implemented. It requires a Webserver to operate. This is the second in a series of videos, the next will be file Deletion, then Streaming a file and then a Directory function.

Using HTTP and HTML as an interface, I demonstrate how to Download, Upload, Delete, Stream and conduct a Directory of your SD-Card. You can use either the SD or SPI FFS filing systems, the current version is for the SD variant. It requires a Webserver to operate. This is the third in a series of videos explaining how to do all this.

Bringing together my TN080, TN083 and TN087 videos and code to form a new design that is a combined data logger, graphing and general file management unit. It receives client data first described in TN083 and then allows the results to be displayed with user selectable icons to improve the visual interface. It is all web-server based and apart from getting time it is a completely stand-alone system.

After development using a ‘Development Board’ it is useful to transfer your programme/sketch to a bare ESP32/ESP8266 so that it uses the minimum of power and gives the best possible battery life, this video explains the relatively simple process required for programming, an activity that can seem to be quite daunting.

The M5 STACK is an ESP32 based development system that provides the ability to use shields, either develop your own on a prototype Stack or use one of the many ready-made units. The documentation and library support is good and it makes for a very flexible system.

Using an ESP32 and an SPI connected e-Paper display enables a low-power weather display to be produced. It uses Weather Underground data and only requires a free API key to get the code running. All icons are drawn so no complicated bit-map icons are required and the software can easily be switched between Metric and Imperial units and time. Data on the top of the screen is all current, then a forecast section and Lunar data. The code makes only a single WU API call for all its data.

Using an ESP32 and an SPI connected e-Paper display enables a low-power weather display to be produced. It uses Weather Underground data and only requires a free API key to get the code running. All icons are drawn so no complicated bit-map icons are required and the software can easily be switched between Metric and Imperial units and time. Data on the top of the screen is all current, then a forecast section and Lunar data. The code makes only a single WU API call for all its data.

You can upload your sensor readings to Weather Underground and get them displayed on your Personal Weather Station.

This is an equivalent board to the branded red pcb type, but at 1/3 of the price.

Overview of 5 popular ESP32 Development Boards which are tested for their power consumption when powered by a battery. Results show power consumption with Wi-Fi on, then Wi-Fi off, then deep sleep.

This is the latest Wemos D1 Mini V3 board, it adds some useful features.

The obsolete Wemos Lolin 32 is now replaced by the LOLIN D32, a new board with some interesting new features that are not immediately apparent.

Finding a runtime error is much easier when you use a tool to find the exact location. Courtesy of ‘me-no-dev’. This tool can save you a lot of time and frustration.

New products are starting to integrate the ESP32 with useful peripherals in this case an audio amplifier, 2.9″ e-paper display, Lipo charger and good connectivity to provide a general purpose low-power board.

Using a 7.5″ e-Paper display to make a weather station. The extra space makes it much easier to display all of the available data from the Open-Weather-Map API.

In Tech Note 100 I demonstrated the use of a 7.5″ e-paper display, but noting the cost and wider availability of the 4.2″ display, the code has been revised to use a 4.2″ display. Also the latest Arduino JSON decoder (v6) is used to read the data from a stream.

Quick Response codes (QRcodes) are useful for storing and referencing information or web addresses in a 2-dimensional barcode. Here an e-paper display is used to draw them. Use your smart phone to read them.

he CCS811 Air Quality Monitor is an easy to I2C device than can be added to your weather station or used as an indoor air quality monitor there are no complicated algorithms. It measures CO2 and Volatile Organic Compound levels, measurements that indicate poor air quality if they climb.

It is easy to add gesture controls to your Arduino or ESP8266 or ESP32 projects using the PAJ7620. It supports up to 15 gestures and needs a simple I2C bus connection. You could add a function for servo controls left or right, or light on/off, in the example I show you how, the basic functions are already defined, so in my example when I swipe ‘right’ it called LED_right and so on, but you could use a function called Light-ON for example.

A new product from TTGO that combines an ESP32 with a LoRa (433, 868 or 915MHz) and GPS (uBlox Neo-6M) module. The development board provides an ideal development environment for long range RF (LoRa) and GPS.

The relatively new Lolin 1.4″ TFT has 128×128 pixels for a screen size of 1.4″ square and supports 18-bit colour (262,144). It’s easy to use and plugs directly into a Wemos D1 Mini or MH-T Live D1 (ESP32) Mini.

The Lolin (new brand name for Wemos) D32 Pro is an updated version, now with on-board I2C and TFT connectors and a lower power UART, here’s an overview and comparison with the V1 board.

An ESP32 calculates using LAT, LON and Date-Time the position of the sun in azimuth and elevation. These angles are then used to set two corresponding servos’ that enable a gimbal to track the sun’s position.