Difference: TheNopIoTNode (9 vs. 10)

Revision 102019-05-23 - UliRaich

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

The IoT Node and its Processor

Line: 9 to 9
 
    • a serial connection to a machine with internet access
    • a LoRaWan node connected to a base station (which is connected to the Internet)
    • a BlueTooth connection to an Internet enabled processor ...
Changed:
<
<
There are plenty of processors available on the market, many of which are ARM based devices with a big variety of external interfaces. There are however two extremely popular processor families which we want to have a look into:
  • The Raspberry Pi, which is a full blown computer system running a Debian based Linux operating system with all the tools needed to develop software natively. The Raspberry Pi 3 for example features a quad core 64 bit ARM processor with 1 GByte of RAM and a micro SD card with up to 32 GBytes of storage space. Due to its capabilities the Raspberry Pi is a rather expensive solution (~ 70 Euros) especially it only a very limited number of sensors or actuators are connected.
  • The Arduino. Originally the Arduino used 8 bit AVR processors and is much less powerful than the Raspberry Pi. The most interesting part of the Arduino family is an Integrated Development Environment running on Windows and on Linux machines and featuring a C++ like programming language. The IDE contains a compiler and a flash programmer for the processor used. The IDE has been extended to processors different from the AVR family and can now be used also for ESP8266 or ESP32 processors or for the STM32 family of processors. In all cases however the software is cross-developed and the resulting binaries are loaded into the processor flash.
    The standard AVR Arduino does not have an Internet connection but there are piggy back boards, so called shields that can be plugged on top of the processor board and Ethernet or WiFi shields are available. Processors like the ESP8266 or the ESP32 have Wifi already available on the processor board. The advantage of the Arduino is its price. It is possible to create an IoT node with one or two sensors or actuators less than 5 Euros.
  • There are boards with an Arduino form factor, same size, same connectors as the AVR Arduinos which however are based on a different processor. Typically they use Espressif's ESP8266 or ESP32 processors, 32 bit machines with integrated WiFi and much more flash memory available than the AVR machine. These machines are ideally suited as IoT nodes. In addition to the Arduino type machine there are also smaller boards to which sensors can easily be attached. These boards can either be programmed with the Arduino IDE or they can run a Lua or micro Python interpreter.
>
>
There are plenty of processors available on the market, many of which are ARM-based devices with a big variety of external interfaces. There are however two extremely popular processor families which we want to have a look into:
  • The Raspberry Pi, which is a full blown computer system running a Debian based Linux operating system with all the tools needed to develop software natively. The Raspberry Pi 3 for example features a quad-core 64 bit ARM processor with 1 GByte of RAM and a micro SD card with up to 32 GBytes of storage space. Due to its capabilities, the Raspberry Pi is a rather expensive solution (~ 70 Euros) especially it only a very limited number of sensors or actuators are connected.
  • The Arduino. Originally the Arduino used 8-bit AVR processors and is much less powerful than the Raspberry Pi. The most interesting part of the Arduino family is an Integrated Development Environment running on Windows and on Linux machines and featuring a C++ like programming language. The IDE contains a compiler and a flash programmer for the processor used. The IDE has been extended to processors different from the AVR family and can now be used also for ESP8266 or ESP32 processors or for the STM32 family of processors. In all cases however the software is cross-developed and the resulting binaries are loaded into the processor flash.
    The standard AVR Arduino does not have an Internet connection but there are piggy back boards, so-called shields, that can be plugged on top of the processor board and Ethernet or WiFi shields are available. Processors like the ESP8266 or the ESP32 have Wifi already available on the processor board. The advantage of the Arduino is its price. It is possible to create an IoT node with one or two sensors or actuators less than 5 Euros.
  • There are boards with an Arduino form factor, same size, same connectors as the AVR Arduinos which however are based on a different processor. Typically they use Espressif's ESP8266 or ESP32 processors, 32-bit machines with integrated WiFi and much more flash memory available than the AVR machine. These machines are ideally suited as IoT nodes. In addition to the Arduino type machine, there are also smaller boards to which sensors can easily be attached. These boards can either be programmed with the Arduino IDE or they can run a Lua or micro Python interpreter.
 

The ESP01

Changed:
<
<
Although the ESP01 is designed as a WiFi interface with which a host processor communicates through AT commands over a serial line, this device features a powerful ESP8266 processor with 8 MBytes of flash which can be programmed. Of course you will loose the AT firmware but you can easily re-install it if needed. One nice feature of the ESP01 is that several sensor boards have been designed onto which you can simply plug this processor card. .... and then there is the price: The whole node, processor, Internet connection and sensor will cost you less than 5 Euros. Here are two examples:
>
>
Although the ESP01 is designed as a WiFi interface with which a host processor communicates through AT commands over a serial line, this device features a powerful ESP8266 processor with 8 MBytes of flash which can be programmed. Of course you will loose the AT firmware but you can easily re-install it if needed. One nice feature of the ESP01 is that several sensor boards have been designed onto which you can simply plug this processor card.
... and then there is the price: The whole node, processor, Internet connection and sensor will cost you less than 5 Euros. Here are two examples:
 
esp01ds18b20.png esp01dht11.png
In order to re-program the ESP01 flash it is easiest to use a programmer which you can buy for a mere 85 cents.
Line: 27 to 27
  esp-01pinout.png
Changed:
<
<
In order to put the ESP01 into programming mode you must short circuit GPIO0 to ground when powering the machine. I did this by adding a removable jumper connection to the ESP01 programmer board as shown in this photo:
>
>
In order to put the ESP01 into programming mode, you must short-circuit GPIO0 to ground when powering the machine. I did this by adding a removable jumper connection to the ESP01 programmer board as shown in this photo:
  eps01progmodif.png
Line: 53 to 53
  I had to take the programmer out in order to reset the ESP01 after each command I sent with esptool. This was true for erasing but also when getting the chip id with
esptool chip_id or reading the MAC address with esptool read_mac.
Changed:
<
<
When flashing micro Python first insert the jumper at the back of programmer and insert the programmer into the PC'S USB slot with the ESP01 connected. Erase the flash as seen in the screen dump above. Take the programmer out of the USB socket, wait a few seconds and then pug it in again. Flash the micro Python code as shown above. Take the programmer out again and remove the jumper. Plug the programmer wit the ESP01 as piggy back in again.
>
>
When flashing micro Python first insert the jumper at the back of the programmer and insert the programmer into the PC'S USB slot with the ESP01 connected. Erase the flash as seen in the screen dump above. Take the programmer out of the USB socket, wait a few seconds and then pug it in again. Flash the micro Python code as shown above. Take the programmer out again and remove the jumper. Plug the programmer with the ESP01 as piggyback in again.
 
Changed:
<
<
Start minicom or another serial terminal emulator and press return. You should the the Python prompt and you can now happily use the newly installed Python interpreter:
>
>
Start minicom or another serial terminal emulator and press return. You should get the Python prompt and you can now happily use the newly installed Python interpreter:
  eps01python.png
 
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