Een uitgebreide introductie van "IoT" staat op de
Wikipedia: Internet der dingen:
Het internet der dingen (Engels: Internet of Things (IoT)) refereert aan de situatie dat door mensen bediende computers
(desktops, laptops, tablets, smartphones) in de minderheid zullen zijn op het internet.
De meerderheid van de internetgebruikers zal in deze visie bestaan uit semi-intelligente apparaten, zogenaamde embedded systems.
Alledaagse voorwerpen worden hierdoor een entiteit op het internet, die kunnen communiceren met personen en met andere objecten,
en die op grond hiervan autonome beslissingen kunnen nemen.
Aanvankelijk was ik vol goede moed begonnen om met Arduino en de Wemos ervaring op te doen.
Met Arduino wordt het programma steeds gecompileerd en naar de Wemos chip ge-upload.
Bij nader inzien lijkt het me handiger om "ESP-Easy" te gebruiken! geen code ... maar configuratie!
Zie resultaat, een begin van een nieuw hoofdstuk voor de IoT: ESP Easy
Een belangrijke ontwikkeling voor de IoT was in 2005 de ontwikkeling van de zogenaamde Arduino boards en software.
Een uitgebreide introductie van "Arduino" staat op de
Wikipedia: Arduino_(computerplatform):
Arduino is een opensource-computerplatform bedoeld om microcontrollers eenvoudig te maken.
Dit platform is bedoeld voor hobbyisten, artiesten, kunstenaars en iedereen die geïnteresseerd is in het maken en ontwerpen van slimme en creatieve objecten.
Zie ook: Wikipedia: Microcontroller A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. (Engels!)
Wikipedia: Geschiedenis:
Rond 2004 ontwikkelde een team in Italië onder leiding van Massimo Banzi een compact, goedkoop en eenvoudig te gebruiken bord, voortbordurend op het Wiringplatform van Hernando Barragán. Het schema en de broncode is open source, waardoor iedereen de hardware en software kan aanpassen met standaardversies die online beschikbaar zijn.
De eerste Arduino kwam uit in 2005 en dit was het begin van het Arduino-platform. De Arduino werd in korte tijd populair en was een opstap voor andere projecten die later volgden.
Waar de Arduino oorspsronkelijk bedoeld was voor lokale kleine projecten, zijn de oorspronkelijke prints naderhand uitgebreid met netwerk faciliteiten.
Een enorme stap vooruit wat betreft de connectivity is de ontwikkeling van boards met ingebouwde wifi en bluetooth netwerk mogelijkheden.
De keywords voor de combinatie van Arduino met wifi zijn de ESP8266
en de (nieuwere) ESP32 chips met ook bluetooth.
De gebruikte "processors" zijn zogenaamde "system on a chip", waarbij ROM en RAM is toegevoegd aan de processor.
Een interessante vergelijking tussen de twee typen chips staat op de pagina:
makeradvisor.com: ESP32 vs ESP8266 – Pros and Cons [June 1, 2021]
Both chips have a 32-bit processor. The ESP32 is a dual-core 160MHz to 240MHz CPU, whereas the ESP8266 is a single-core processor that runs at 80MHz.
These modules come with GPIOs that support various protocols like SPI, I2C, UART, ADC, DAC, and PWM.
The best part is that these boards come with wireless networking included, which makes them apart from other microcontrollers like the Arduino.
This means that you can easily control and monitor devices remotely via Wi-Fi or Bluetooth (in the case of ESP32) for a very low price.
... Ook interessant: MicroPython Firmware – ESP32 vs ESP8266:
Another popular way of programming the ESP32 and ESP8266 boards is using MicroPython firmware.
Ook is de software voor de USB in ChromeOS aangepast, waardoor nu de Arduino IDE verbinding kan maken met bij voorbeeld een
Wemos D1 mini board.
Tot voor kort gebruikte ik hier voor de Raspberry Pi
Melding:
Een eerste test met de Arduino IDE is het "blink" programma, waarbij de standaard ingebouwde led gaat knipperen.De Chromebook komt met de melding:
Opmerking: Op de Wemos mini is nog een BME280 sensor aangesloten, zie ook: IoT: Hardware Pi
Een artikel over de verschillen tussen Arduino en PlatformIO software staat op de site:
MakeUseOf.com: better-arduino-coding-vs-code-platformio Want an easy way to start coding Arduino? With PlatformIO and VS Code, you can simplify Arduino projects and learn faster.
Een artikel over de verschillen tussen bovenstaande "controller" software staat op de site:
SmartHomeBlog.net: openhab-home-assistant-domoticz Today I want to compare three of the main platforms out there
Kenmerkend voor ESP-Easy en ESP-home is de configuratie via een simpele webserver, er is géén programmeer ervaring nodig!
Ik had aanvankelijk gekozen voor de Arduino software voor de ontwikkeling van de huis-automatisering.
Hier mee kan met de talrijke voorbeelden op het internet de temperatuur gemeten worden of een relais bekrachtigd.
Voor de presentatie gebruik ik Domoticz software.
Domoticz heeft een web-interface, en kan bekeken worden op een laptop of een mobile telefoon.
Voor het maken van programma's is er de "Arduino IDE" het
(Wikipedia:) Integrated Development Environment
Een "integrated development environment" of IDE is computersoftware die een softwareontwikkelaar ondersteunt bij het ontwikkelen van computersoftware.
Het bestaat uit een aantal onderdelen die samen een software suite vormen.
Om te starten met IoT kan men bij voorbeeld de Arduino software gebruiken.
Een belangrijk onderdeel van de ontwikkelomgeving is dat er veel "libraries" beschikbaar zijn die het programmeren vereenvoudigen.
The Arduino environment can be extended through the use of libraries, just like most programming platforms. Libraries provide extra functionality for use in sketches, e.g. working with hardware or manipulating data. To use a library in a sketch, select it from Sketch > Import Library.
A number of libraries come installed with the IDE, but you can also download or create your own. See these instructions for details on installing libraries. There's also a tutorial on writing your own libraries. See the API Style Guide for information on making a good Arduino-style API for your library.
Het feitelijke programma in Arduino jargon heet "schets".
Veel informatie staat op de website van Arduino.cc, met onder andere de onderwerpen:Ook aanbevolen:
Learn Adafruit:
If you're here, it's because you want to learn how to build and make stuff with electronics! These guides will help you get started with the wonderful world of Arduino.
Vanzelfsprekend hebben alle nuttige apparaatjes een voeding nodig!
Ieder voordeel heeft ook een nadeel...
Nadeel:Handig is, dat de meeste ESP8266 en ESP32 boards via een USB kabel worden aangesloten.
Ook een voordeel is de ingebouwde seriële interface van de USB aansluiting naar de chip.
Hierdoor komt via deze interface de voeding en kan de chip geprogrammeerd worden.
De I/O aansluitingen van de meeste ESP8266 en ESP32 chips zijn geschikt voor 3,3 Volt.
Dit gaat goed, als bij voorbeeld temperatuur, vochtigheid of druk opnemers ook met 3,3 Volt werken.
Dit geeft wel een probleem bij LCD displays, die op 5 Volt werken... zie hoofdstuk I2C Praktijk !
Voor het dimensioneren van de net voeding van de Wemos chips is het handig om in de testfase via de USB de stroom te meten.
Hiervoor kocht ik een "KWS-MX17": USB Stroom- en Spanningsanalyzer met LCD display: 4-30V, 5A.
Een pluspunt Lolin / Wemos van de documentatie is, dat een PDF kan worden gedownload van het schema.
Website: Wemos.cc: LOLIN D1 mini Documentation: "sch_d1_mini_v3.0.0.pdf"
Hier uit blijkt, dat er een ME6211 spannings regelaar wordt gebruikt voor de aanpassing van de 5 Volt USB naar de 3,3 Volt voor de ESP8266 chip.
Een uitgebreid artikel over de Wemos Mini staat op de pagina: diyi0t.com: ESP8266 WeMos D1 Mini Tutorial
Het schema van het voedings ciruit is:
Om de ESP8266 (Wemos) chips te voeden, kunnen we oude netadapters gebruiken van mobile phones!
Voor zover ze niet ergens in een la rondslingeren, zijn deze adapters voor een habbekrats bij de kringloop te koop!
Features:
Uit de specificaties blijkt, dat ook (oudere) mobiele telefoon laders (zonder USB connector) met een spanning tussen 4,3 en 6,0 Volt gebruikt kunnen worden!
Uitzondering: als bijvoorbeeld ook een LCD display 5 Volt nodig heeft, is een standaard USB adapter aan te bevelen!
Zoals uit het bovenstaande blijkt, kunnen de telefoon laders uitstekend gebruikt worden.
Veel ESP8266 en ESP32 chips hebben een USB aansluiting voor de voeding en de communicatie.
Voorbeelden:
Ook met traditionele, of moderne onderdelen, kan een goede voeding gemaakt worden.
De keus wordt bepaald door de benodigde stroom, en de beschikbare ruimte.
Voorbeeld componenten:
Onderdelen van links naar rechts:
Relevante informatie: buck converter of linear voltage regulator...
Opmerkingen:
Dit volgende links geven wat informatie over de gebruikte verbindingen tussen de verschillende IoT apparaten.
De meeste mensen zijn wel bekend met WiFi netwerken, en in mindere mate met BlueTooth verbindingen.
De WiFi verbinding is er tussen een centrale computer en de verschillende rand apparatuur.
De details van dit protocol staan uitstekend beschreven op de volgende pagina:
Robot-Electronics: Using the I2C Bus
This short article therefore tries to de-mystify the I2C bus
Twee ouderde protocollen die voor de interfacing van randapparaten worden gebruikt zijn: SPI en UART.
Een uitgebreid artikel over I2C, en een vergelijking met SPI en UART staat op de website:
diyi0t.com: I2C Tutorial for Arduino, ESP8266 and ESP32
The I2C communication is one out of three possible communication protocols.
The two other communication protocols are SPI and UART.
De details van dit protocol staan ook uitstekend beschreven op de volgende pagina:
learn.sparkfun.com: tutorials I2C
In this tutorial, you will learn all about the I2C communication protocol, why you would want to use it, and how it's implemented.
Opmerking: vrij recent: "Qwiic Connect System" ... is an ecosystem of I2C sensors, actuators, shields, cables and more, that make prototyping faster and less prone to error.
De details van dit protocol, en oudere protocollen staan uitstekend beschreven in de volgende PDF:
NPX.com: AN10216-01
Abstract: The I2C Manual provides a broad overview of the various serial buses, why the I2C bus should be considered, technical detail of the I2C bus and how it works.
NB: NXP (in 2006) is is de voormalige halfgeleiderdivisie van Philips, die de I2C bus heeft ontwikkeld.
In tegenstelling tot veel "Arduino" boards werkt de Input/Output van ESP8266 en de Wemos met 3,3 Volt maximum I/O spanning.
Dit is van belang bij het aansluiten van LCD displays. Deze werken met 5 Volt voeding voor de display en de besturing.
Zie ook: espeasy.readthedocs: Level converter ...
Level-converters, aka level-shifters, aka voltage dividers, are used to adapt between a 3.3V device like the ESP8266 and devices using 5V or more internally.
Opmerking: In het bovenstaande artikel van hackaday staat: If the 3.3V part is an output and the 5V one an input, the lower voltage part can hardly damage the higher voltage one with overvoltage.
In het geval van de 3,3 Volt output van de Wemos, zal dit geen probleem geven voor de 5 Volt input van een LCD display.
Het is alleen de vraag of deze interface dan goed werkt!
Bi-directional Logic Level Converters: | |
Adafruit | Sparkfun |
---|---|
De praktijk instructie voor het aansluiten staat op: Sparkfun: Bi-Directional Logic Level Converter Hookup Guide
Level shifting is a dilemma so common we designed a simple PCB assembly to make interfacing devices a little easier: the Bi-Directional Logic Level Converter.
Met de juiste sleutel woorden zijn met Google talloze informatieve pagina's te vinden.
Een mooi overzicht van de Raspberry Pi en de mogelijke randapparatuur is te zien op:
Tutorials.Raspberry: 50 of the most important Raspberry Pi Sensors and Components
This article describes and summarizes over 50 of the most important sensors and components for Raspberry Pi’s as well as Arduinos and provides you with a full Raspberry Pi sensor list.
Een interessante Nederlandse site is (onder andere!):
Domoticx.com
Naast het "Knowledge Center" met een flink aantal onderwerpen...
Is er ook een:
Domoticx webshop
Ook nuttig: Domoticx programmeren nb: nog geen https!
Met veel voorbeelden: Arduino, Python, BASH, PHP, Java, Lua etc.
Programmeren is het schrijven van een computerprogramma, een concrete reeks instructies die een computer uitvoert.
Een leermomentje, wat kan er fout gaan!
De installatie van de Arduino ging prima in Debian op de Asus Chromebook, alleen de upload van de 'schets' naar de Wemos D1 mini lukte niet... helaas! ... in 2020!Door de serie interface naar de microcontroller chip wordt bespaard op het aantal input/output aansluitingen.
Een goede handleiding voor de installatie van de benodigde 'driver' staat op de website: learn.sparkfun How to Install CH340 DriversOpmerking: Er zijn twee typen Serial-USB converters, zie:
forum.arduino CP2102 V.S CH340 There are two different types which are the CP2102 and the CH340...
NB: vanzelfsprekend ... check welke chip er op het board zit!