IoT-cursus/IoT-knopen/Achtergrond/DHZ IoT-knoop met ESP8266

Uit Inf2019
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

[6]

breadboard [7]
breadboard-draden (of montagedraden) [8] of

[9]

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

IoT knoop 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 naar config.py, en pas deze aan voor je eigen configuratie (WiFi netwerk, MQTT-server).

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: