IoT-cursus/IoT-knopen/Achtergrond/DHZ IoT-knoop met ESP8266: verschil tussen versies
< IoT-cursus | IoT-knopen | Achtergrond
Naar navigatie springen
Naar zoeken springen
Regel 86: | Regel 86: | ||
* kopieer deze code naar je eigen systeem via de knop "Clone or download". | * kopieer deze code naar je eigen systeem via de knop "Clone or download". | ||
* kopieer <code>config.py.example</code> naar <code>config.py</code>, en pas deze aan voor je eigen configuratie (WiFi netwerk, MQTT-server). | * kopieer <code>config.py.example</code> naar <code>config.py</code>, en pas deze aan voor je eigen configuratie (WiFi netwerk, MQTT-server). | ||
De documentatie voor MicroPython op de ESP8266 vind je op: https://docs.micropython.org/en/latest/esp8266/ | |||
=== Software-tools === | === Software-tools === |
Versie van 25 sep 2017 14:06
Bouw zelf je eigen IoT-knoop met een ESP8266
We bouwen een IoT-knoop met de volgende onderdelen:
Onderdeel | functie | datasheet e.d. | shop |
---|---|---|---|
Wemos D1 Pro | Microcontroller, WiFi | Wemos page | [1] |
BMP280 | Temperatuur- en luchtdrukmeter (barometer) | Bosch BMP280 | [2] |
DHT22 | Temperatuur- en luchtvochtigheidsmeter | DHT22 | [3] |
LDR | lichtmeting | GL5537 | [4] |
pushbuttons | [5] | ||
weerstanden, 10 kOhm, 0.25W | pull-down/pull-up weerstand | ||
breadboard | [7] | ||
breadboard-draden (of montagedraden) | [8] of |
Je moet wel enkele onderdelen solderen, bijvoorbeeld de headers (pootjes) van de Wemos D1 en van de BMP280. Er zijn allerlei variaties mogelijk: je kunt een ander microcontroller-bordje gebruiken, of andere sensoren.
Schema
- DHT22-data heeft een pull-up weerstand van 10kOhm nodig (naar Vcc)
- BMP280 CSB verbinden we met Vcc (3V3), om het I2C interface te selecteren (i.p.v. SPI)
- je kunt deze ook open laten: CSB heeft een interne pull-up weerstand, waardoor deze default met Vcc verbonden is.
- BMP280 SDO verbinden we met GND (0V), om het laagste I2C-adresbit te zetten (i2c adres: binair 1110110 = 0x76 = 118)
- de schakelaar(s) heeft een pull-down weerstand nodig (10kOhm)
- de LDR vormt samen met een weerstand van 10kOhm een spanningsdeler; hiermee zetten we de variabele weerstand van de LDR om in een variabele spanning, die we dan met de analoge input meten (A/D omzetting).
Verbindingen
software (GPIO) | Wemos D1-pin | onderdeel-pin | betekenis |
---|---|---|---|
GPIO4 - Pin(4) | D2 | BMP280-SDA | I2C data |
GPIO5 - Pin(5) | D1 | BMP280-SCL | I2C clock |
A0 - ADC(0) | A0 | LDR out | LDR out |
GPIO14 - Pin(14) | D5 | DHT22 data | DHT22 data |
GPIO0 - Pin(0) | D3 | button 1 | button 1 |
GPIO2 - Pin(2) | D4 | button 2 | button 2 (en ingebouwde LED) |
GPIO7 - Pin(13) | D6 | LED 1 | LED 1 |
GPIO8 - Pin(15) | D7 | LED 2 | LED 2 |
hardware only: | |||
Vcc (3V) | 3V3 | BMP280-CSB | select I2C interface |
GND (0V) | GND | BMP280-SD0 | I2C lowest address bit (0) |
Software (MicroPython)
De MicroPython-software vind je op GitHub: https://github.com/infvo/iot-node-esp8266
- kopieer deze code naar je eigen systeem via de knop "Clone or download".
- kopieer
config.py.example
naarconfig.py
, en pas deze aan voor je eigen configuratie (WiFi netwerk, MQTT-server).
De documentatie voor MicroPython op de ESP8266 vind je op: https://docs.micropython.org/en/latest/esp8266/
Software-tools
De volgende combinatie van tools werkt handig:
- GitHub (en git): voor de code (versiebeheer). Als je wilt experimenteren met de code, is GitHub fork handig: https://help.github.com/articles/fork-a-repo/
- Atom: een platte-tekst editor met o.a. git en GitHub integratie
- Pymakr-plugin voor Atom: hiermee kun je de REPL van ESP8266-Python bereiken, en direct Python programma's uitvoeren op de ESP8266.
ampy
- voor het kopiëren van bestanden tussen de host en de ESP8266.
Software (Arduino)
Je kunt de ESP8266 ook met de Arduino IDE programmeren. Daarvoor moet je eerst de ESP8266 als processor toevoegen, zie: