Difference: WeMosD1Mini (8 vs. 9)

Revision 92019-05-28 - UliRaich

Line: 1 to 1
 
META TOPICPARENT name="AFNOGWorkshop2019"

The WeMos D1 mini and its sensor and actuator shields

Introduction

Changed:
<
<
We have seen that the ESP01 can be programmed with micro Python and that there are add-on sensor boards available. However, when we connect the sensor board we loose the serial connection to the PC. This can be corrected by soldering extra connectors to the top of the ESP01 board but this is fiddly and needs good soldering equipment and good soldering skills. The other option is to get access to the ESP01 through WiFi using WebRepl
>
>
We have seen that the ESP01 can be programmed with micro Python and that there are add-on sensor boards available. However, when we connect the sensor board we lose the serial connection to the PC. This can be corrected by soldering extra connectors to the top of the ESP01 board but this is fiddly and needs good soldering equipment and good soldering skills. The other option is to get access to the ESP01 through WiFi using WebRepl
 
Changed:
<
<
A better and only slightly more expensive solution (we are talking about ~ 3.5 US$ instead of 2.5 US$) is the Wemos D1 mini board. This boards gives up more I/O connections and many more sensor and actuator shields are readily available on the market.
>
>
A better and only slightly more expensive solution (we are talking about ~ 3.5 US$ instead of 2.5 US$) is the Wemos D1 mini board. This board gives us more I/O connections and many more sensor and actuator shields are readily available on the market.
 

The processor board

ESP8266

Changed:
<
<
The processor board uses an Espressif ESP8266 processor chip and 4 MBytes of flash are installed on the board.
>
>
The processor board uses an Espressif ESP8266 processor chip and provides 4 MBytes of flash memory.
  wemosd1mini.png
Line: 19 to 19
  d1MiniPinout.png
Changed:
<
<
In contrast to a PC the WeMos D1 mini has only very limited memory resources. While 4 MBytes of flash memory is rather comfortable, the amount of RAM (80 K) is a very limiting factor. When running micro Python a mere 30 kBytes is left for your Python programs. There are essentially 2 ways to make most out of the small amount of RAM:
>
>
In contrast to a PC the WeMos D1 mini has only very limited memory resources. While 4 MBytes of flash memory is rather comfortable, the amount of RAM (80 K) is a very limiting factor. When running micropython a mere 30 kBytes is left for your Python programs. There are essentially 2 ways to make most out of the small amount of RAM:
 
  • You can pre-compile your programs to byte code, which takes less space in RAM
Changed:
<
<
  • You can code freeze driver libraries, which means you integrate their byte code into The micro Python image. This however means that you must compile your own version of micro Python and flash it into the WeMos D1 CPU.
>
>
  • You can code freeze driver libraries, which means you integrate their byte code into The micropython image. This however means, that you must compile your own version of micropython and flash it into the WeMos D1 CPU.
 

ESP32

As an alternative you have a CPU board based on the more powerful ESP32:

wemosEsp32.png

Changed:
<
<
As for the ESP8266 there is a Micropython port for the ESP32. The drivers are essentially the same, the pinout of the board however (GPIO numbers for the pins) is different. This means that for every driver we must only change the GPIO number. Since it is possible to find out from Micropython on which platform we run (sys.platform tells you if your CPU is a "esp8266" or a "esp32") we can check for the CPU type and adapt the pin numbering as a consequence.
>
>
As for the ESP8266 there is a micropython port for the ESP32. The drivers are essentially the same, the pinout of the board however (GPIO numbers for the pins) is different. This means that for every driver we must only change the GPIO number. Since it is possible to find out from micropython on which platform we run (sys.platform tells you if your CPU is an "esp8266" or an "esp32") we can check for the CPU type and adapt the pin numbering as a consequence.
  Here is a comparison of the pin assignments for the 2 CPUs:
Line: 80 to 80
 
DD18B20 shield D2 GPIO 4 1-wire digital temperature sensor
SHT30 shield D1 GPIO 5 I2C SCL
D2 GPIO 4 I2C SDA
I2C temperature and humidity sensor
LED Matrix shield D5 GPIO 14 CLK
D7 GPIO 13 Din
8x8 LED Matrix
Deleted:
<
<
 For each of the devices I create 2 directories:
  • a driver directory containing programs testing the module without Cayenne communication
  • a cayenne directory for the final program

You can find the code written for the workshop on github: https://github.com/uraich/MicroPython_IoTDemos.

Changed:
<
<
There is a second repository also with directories drivers and cayenne containing the same type of programs but written in C++ for the Arduino IDE. The IDE must be set up to work with the ESP8266 and ESP32 which means that the cross-compilers for these machines must be installed.
>
>
There is a second repository also with directories "drivers" and "cayenne" containing the same type of programs but written in C++ for the Arduino IDE. The IDE must be set up to work with the ESP8266 and ESP32, which means that the cross-compilers for these machines must be installed.
  https://github.com/uraich/C-IoTDemos

Comments

 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback