Lecture 2: LEDs and NeoPixel CSC 321: Embedded Sysytem First Semeter 2020/2021 The ESP32 WROVER B MCU CPU Pinout Please note: The pin numbers IOxx on...
Lecture 1: Basic Python Programming Lecture 2: LED and Neopixels Lecture 3: Switches with ESP32 Lecture 4: Temperature and Humidity with DHT11 Lecture...
Course on Internet of Things Exercises Session 1: Introductory remarks: The scripts we are going to develop during this exercise session do not depend on any system...
The weather app Introduction Several weather servers provide weather data and forecasts that can be used by a weather app . Here are the two I had a look into:...
The T Watch Graphical User Interface and how to add your own applications and settings Introduction The ` firmware` is developed by Dirk Brosswick. It is a rather...
LEDs and NeoPixel Introduction The ESP32 has 2 LEDs on board. The first one indicates power while the second one is user programmable. The user programmable built...
This is a complete re work of the Embedded systems course, given at the University of Cape Coast in 2017. While the original course was based on the C language we...
Solutions to exercise 10: TFT display Introduction The exercises on the TFT display can be implemented on the 1.4` display with its ST7735 controller or on the...
Exercise 10: A TFT Display and the ST7735 display controller Introduction The ST7735 is described in TFT Display on this TWiki. It comes with a big bunch of demo...
Graphical User Interface on the IoT node Introduction The 2.4 ` display has a pixel resolution of 320x240 pixels. It is controlled by an ili9431 display driver and...
The Hardware The CPU card There are two different ESP32 CPU cards available for the WeMos D1 mini bus. The first card is based on an ESP wroom 32 CPU while the second...
LVGL on the T Watch 2020 Introduction Since the t watch 2020 has a rather high resolution screen in combination with a touch panel, it is possible to run Graphical...
Dust Sensors Introduction In order to measure air pollution dust sensors play an important role. They are often based on an optical system where light, scattered...
The st7789 lvgl display driver The display driver for the t watch is extremely simple. It provides a frame buffer for lvgl to draw into and it has a flush method to...
The T Watch 2020 hardware devices The LilyGo t watch 2020 is a smart watch, based on the ESP32, which you must program yourself. If you want a fully functional smart...
The ttgo module The ttgo module is again a pure MicroPython module used to initialize the t watch hardware. It contains two classes: Watch Motor and...
Motors Introduction We have 3 different types of motors in our kit: DC motor: Used for continuous movement in either forward or backward direction and at different...
The AXP202 Power System Management driver The axp202 driver is a pure MicroPython driver written by Lewis He found on github: https://github.com/lewisxhe/AXP202 PythonLibrary...
The driver for BMA423 Triaxial Acceleration Sensor The MicroPython layer in bma423 from was not working because it uses deprecated calls to I2C in MicroPython. However...
Solutions to the Exercise 3: Switches Exercise 1: This is very similar to switching a LED on or off. Again a single GPIO line is used. This time however the pin in...
The T Watch 2020 sound system The t watch has an integrated loudspeaker which is driven by a PCM Input Class A Audio Power Amplifier. This system allows us to play...
The Driver for the PCF8563 Real time Clock and Calendar This is a pure MicroPython driver written by Lewis He, which can be found on https://github.com/lewisxhe...
The Buzzer and Vibration Motor This device is simply connected to GPIO 4 and starts buzzing and vibrating when the bit is set to logic one. The demo program buzzer...
I2S and sound Introduction In order to play audio files we need: the audio file itself, which we expect to be in uncompressed wav format a file system from...
Seven Segment Display and Keypad The Seven Segment Display and its TM1637 controller There is a nice and simple seven segment display controlled by a TM1637 controller...
Solutions to exercise 13: Seven Segment display and Keypad The Seven Segment Display and the TM1637 controller chip Exercise 1: The driver and its test program Writing...
TFT Displays Introduction A wide range of displays is available for use with the Arduino system. For the WeMos D1 mini system I found 3 display boards. Each of them...
Using a second Serial Port On the ESP32 UART0 is normally reserved for interactive use with REPL. Sometimes we need a UART to communicate with external devices. Typical...
The SHT30 I2C Temperature and Humidity Sensor Introduction The SHT30 is a temperature and humidity sensor that communicates over the I2C bus. Typical accuracy for...
Compiling Micropython Forcing the correct module versions When trying to compile the ESP32 port of MicroPython on an Ubuntu 20.04 system, I see the following error...
Internet access Once we have collected data from the sensors, we want to get access to them. This can be accomplished most easily by transferring the data over the...
Writing Scripts A file system layout It is not always easy to keep tidy a file system and many students don`t really understand why this is necessary. During your...
Accessing the Python interpreter MicroPython MicroPython implements the Python 3.4 syntax. It is Open Source and can be downloaded from its GitHub repository . There...
Introduction The Internet of Things The Internet of Things or IoT for short is one of the major subjects in computer science these days. Micro controllers with Internet...
MQTT and Cayenne Introduction Cayenne claims to be the world`s first drag and drop IoT builder. It provides a dash board on which the user can set up predefined widgets...
MQTT and Cayenne Exercise 1: Install mosquitto on your machine. On Ubuntu Linux this can very easily be accomplished with apt. Try the mosquitto communication:...
The Neo 6M GPS receiver Most GPS receivers use a UART to communicate with their hosts and the Neo 6M is no exception. The ESP32 has 3 hardware UARTs with the following...
Exercise 9: GPS receiver Introduction Most GPS receivers use a simple serial interface for communication and provide their data in form of NMEA sentences to the host...
Exercise 9: ADC and DAC Introduction The ESP32 comes with two 12 bit ADCs and two 8 bit DACs. In this exercise we will see how to use them and what their limitations...
Exercise 8: RTC and data logging Introduction The ESP32 has a real time clock implemented on chip. This will however only work as long as the ESP32 is powered. It...
Exercise 5: The I2C bus and the SHT30 Temperature and Humidity Sensor Introduction While the DHT11 uses a proprietary protocol the SHT30 make use of a standardized...
Exercise 4: The DHT11 Temperature and Humidity Sensor Introduction The DHT11 is a digital temperature and humidity sensor featuring its own proprietary communication...