IoT-cursus/IoT-knopen/Achtergrond/DHZ IoT-knoop met ESP8266
< IoT-cursus | IoT-knopen | Achtergrond
Naar navigatie springen
Naar zoeken springen
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 |
GPIOx - Pin(x) | D3 | button 1 | button 1 |
GPIOy - pin(y) | D4 | button 2 | button 2 |
GPIOa - Pin(a) | D6 | LED 1 | LED 1 |
GPIOb - Pin(b) | 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
naar <config.py>, en pas dit
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: