Inhoudsopgave:

ESP8266 en Visuino: DHT11 temperatuur- en vochtigheidswebserver: 12 stappen
ESP8266 en Visuino: DHT11 temperatuur- en vochtigheidswebserver: 12 stappen

Video: ESP8266 en Visuino: DHT11 temperatuur- en vochtigheidswebserver: 12 stappen

Video: ESP8266 en Visuino: DHT11 temperatuur- en vochtigheidswebserver: 12 stappen
Video: 🇳🇱 DHT11 / DHT22 TEMPERATUUR EN LUCHTVOCHTIGHEID SENSOR - Arduino les #13 2024, November
Anonim
Image
Image

ESP8266-modules zijn geweldige goedkope stand-alone controllers met ingebouwde Wi-Fi, en ik heb er al een aantal Instructables over gemaakt.

DTH11/DTH21/DTH22 en AM2301 zijn erg populaire gecombineerde Arduino-sensoren voor temperatuur en vochtigheid, en ik heb er ook een aantal Instructables mee gemaakt, waaronder een Instructable op externe thermometer en vochtigheidssensor met 2 ESP8266 die met elkaar zijn verbonden op hun eigen privé Wi-Fi-netwerk.

In deze Instructable laat ik je zien hoe je een temperatuur- en vochtigheidswebserver kunt maken met ESP8266 en DHT11 en er verbinding mee kunt maken op je bestaande wifi-netwerk vanaf meerdere apparaten met een webbrowser.

Stap 1: Componenten

Sluit de DHT11 aan op de NodeMCU ESP8266-module
Sluit de DHT11 aan op de NodeMCU ESP8266-module
  1. OneNodeMCU ESP8266-kaart (ik gebruikte de NodeMCU 0.9-versie, maar elke andere, of zelfs op zichzelf staande ESP-12 of ESP-01 zal werken)
  2. Eén DHT11-sensormodule die ik heb gekregen van deze goedkope set met 37 sensoren
  3. 3 vrouwelijke-vrouwelijke jumperdraden

Stap 2: Sluit de DHT11 aan op de NodeMCU ESP8266-module

Sluit de DHT11 aan op de NodeMCU ESP8266-module
Sluit de DHT11 aan op de NodeMCU ESP8266-module
Sluit de DHT11 aan op de NodeMCU ESP8266-module
Sluit de DHT11 aan op de NodeMCU ESP8266-module
Sluit de DHT11 aan op de NodeMCU ESP8266-module
Sluit de DHT11 aan op de NodeMCU ESP8266-module
  1. Sluit de voeding (rode draad), aarde (zwarte draad) en gegevens (grijze draad) aan op de DHT11-module (Afbeelding 1 toont 2 verschillende soorten DHT11-sensormodules. Zoals u kunt zien, kunnen de pinnen verschillen, dus sluit ze zorgvuldig aan!)
  2. Sluit het andere uiteinde van de aardingsdraad (zwarte draad) aan op de aardingspin van de ESP8266-module (afbeelding 2)
  3. Sluit het andere uiteinde van de voedingsdraad (rode draad) aan op de 3,3 V voedingspin van de ESP8266-module (afbeelding 2)
  4. Sluit het andere uiteinde van de datadraad (grijze draad) aan op de digitale pin 2 van de ESP8266-module (afbeelding 3)
  5. Afbeelding 4 laat zien waar de grond, 3,3 V stroom en digitale 2 pinnen van de NodeMCU 0,9. zijn

Stap 3: Start Visuino en selecteer het ESP8266-bordtype

Start Visuino en selecteer het ESP8266-bordtype
Start Visuino en selecteer het ESP8266-bordtype
Start Visuino en selecteer het ESP8266-bordtype
Start Visuino en selecteer het ESP8266-bordtype

Om te beginnen met het programmeren van de Arduino, moet je de Arduino IDE vanaf hier hebben geïnstalleerd:

Houd er rekening mee dat er enkele kritieke bugs zijn in Arduino IDE 1.6.6

Zorg ervoor dat u 1.6.7 of hoger installeert, anders werkt deze Instructable niet!

Als je dat nog niet hebt gedaan, volg dan de stappen in deze Instructable om de Arduino IDE in te stellen om ESP 8266 te programmeren

De Visuino: https://www.visuino.com moet ook worden geïnstalleerd.

  1. Start Visuinoas getoond in de eerste foto
  2. Klik op de knop "Tools" op de Arduino-component (Afbeelding 1) in Visuino
  3. Wanneer het dialoogvenster verschijnt, selecteert u "NodeMCU ESP-12" zoals weergegeven op afbeelding 2

Stap 4: In Visuino: een hostnaam en toegangspunt instellen

In Visuino: een hostnaam en toegangspunt instellen
In Visuino: een hostnaam en toegangspunt instellen
In Visuino: een hostnaam en toegangspunt instellen
In Visuino: een hostnaam en toegangspunt instellen
In Visuino: een hostnaam en toegangspunt instellen
In Visuino: een hostnaam en toegangspunt instellen
In Visuino: een hostnaam en toegangspunt instellen
In Visuino: een hostnaam en toegangspunt instellen

Eerst moeten we de module configureren om verbinding te maken met een bestaand toegangspunt en er HostName aan toewijzen, zodat we deze op het netwerk kunnen ontdekken.

  1. Vouw in de Object Inspector de eigenschap "Modules" uit en vervolgens de subeigenschap "WiFi"
  2. Stel in de Object Inspector de waarde van de eigenschap "HostName" in op "dht11server" (Afbeelding 1)
  3. Vouw in de Object Inspector de subeigenschap "AccessPoints" van de "WiFi" uit en klik op de knop "…" naast de waarde (Afbeelding 2)
  4. Selecteer in de "AccessPoins"-editor "WiFi Access Point" in de rechterweergave en klik vervolgens op de "+"-knop aan de linkerkant om het access point toe te voegen (Afbeelding 2)
  5. Stel in de Object Inspector de waarde van de eigenschap "SSID" in op de SSID van uw Wi-Fi Hotspot (Access Point) (Afbeelding 4)
  6. Als uw Wi-Fi Hotspot (Access Point) een wachtwoord vereist, stelt u in de Object Inspector het wachtwoord in de waarde van de eigenschap "Password" in (Afbeelding 4)
  7. Sluit het dialoogvenster "Toegangspunten"

Stap 5: In Visuino: voeg een TCP/IP-serversocket toe voor de communicatie

In Visuino: voeg een TCP/IP-serversocket toe voor de communicatie
In Visuino: voeg een TCP/IP-serversocket toe voor de communicatie
In Visuino: voeg een TCP/IP-serversocket toe voor de communicatie
In Visuino: voeg een TCP/IP-serversocket toe voor de communicatie
In Visuino: voeg een TCP/IP-serversocket toe voor de communicatie
In Visuino: voeg een TCP/IP-serversocket toe voor de communicatie

Vervolgens moeten we een TCP/IP Server-socket toevoegen voor de communicatie.

  1. Klik in de Object Inspector op de knop "…" naast de waarde van de subeigenschap "Sockets" van de WiFi (Afbeelding 1)
  2. Selecteer in de Sockets-editor "TCP/IP Server" en klik vervolgens op de knop "+" (Afbeelding 2) om er een toe te voegen (Afbeelding 3)
  3. Sluit het dialoogvenster "Sockets"

Stap 6: In Visuino: DTH11 en geformatteerde tekstcomponent toevoegen met 2 analoge kanalen

In Visuino: DTH11 en geformatteerde tekstcomponent toevoegen met 2 analoge kanalen
In Visuino: DTH11 en geformatteerde tekstcomponent toevoegen met 2 analoge kanalen
In Visuino: DTH11 en geformatteerde tekstcomponent toevoegen met 2 analoge kanalen
In Visuino: DTH11 en geformatteerde tekstcomponent toevoegen met 2 analoge kanalen
In Visuino: DTH11 en geformatteerde tekstcomponent toevoegen met 2 analoge kanalen
In Visuino: DTH11 en geformatteerde tekstcomponent toevoegen met 2 analoge kanalen

Om de temperatuur en vochtigheid van de DHT11 te regelen en af te lezen, moeten we er een component voor toevoegen in Visuino.

We moeten ook de webpagina uit de gegevens genereren. De pagina is slechts een HTML-tekstdocument, dus we kunnen de component Opgemaakte tekst gebruiken om deze te genereren.

  1. Typ "dht" in het vak Filter van de Component Toolbox en selecteer vervolgens de component "Vochtigheid en thermometer DHT11/21/22/AM2301" (Afbeelding 1) en zet deze neer in het ontwerpgebied
  2. Typ "form" in het filtervak van de Component Toolbox en selecteer vervolgens de component "Formatted Text" (Afbeelding 2) en zet deze neer in het ontwerpgebied
  3. Klik op de knop "Extra" van de component FormattedText1 (Afbeelding 3)
  4. Selecteer in de Elementen-editor het Analoge Element aan de rechterkant en klik 2 keer op de "+"-knop aan de linkerkant (Afbeelding 4), om er 2 toe te voegen (Afbeelding 5)
  5. Sluit de "Elementen"-editor

Stap 7: In Visuino: opgemaakte tekst instellen voor de serverrespons

In Visuino: opgemaakte tekst instellen voor de serverrespons
In Visuino: opgemaakte tekst instellen voor de serverrespons
In Visuino: opgemaakte tekst instellen voor de serverrespons
In Visuino: opgemaakte tekst instellen voor de serverrespons

We moeten de HTML-tekst specificeren die wordt gegenereerd wanneer een webclient verbinding maakt met de server.

We specificeren de verbinding die moet worden gesloten nadat de gegevens die ik heb verzonden, en zullen de browser ook instrueren om na 5 seconden opnieuw verbinding te maken (vernieuwen) door "Vernieuwen: 5" toe te voegen aan het document. Op deze manier zal de webpagina elke 5 seconden verversen.

  1. Selecteer in het ontwerpgebied de component FormattedText1 (Afbeelding 1)
  2. Selecteer in de Object Inspector de eigenschap "Tekst" en klik op de knop "…" naast de waarde ervan (Afbeelding 1)
  3. Typ in de "Tekst"-editor:"HTTP/1.1 200 OK""Inhoudstype: tekst/html""Verbinding: sluiten""Vernieuwen: 5""""""""""Temperatuur: %0""Vochtigheid: %1"""""(Afbeelding 2) De %0 wordt vervangen door de waarde van AnalogElement1 en %1 wordt vervangen door de waarde van AnalogElement2
  4. Klik op de knop OK om het dialoogvenster te sluiten

Stap 8: In Visuino: sluit de DHT11-component aan

In Visuino: sluit de DHT11-component aan
In Visuino: sluit de DHT11-component aan
In Visuino: sluit de DHT11-component aan
In Visuino: sluit de DHT11-component aan
In Visuino: sluit de DHT11-component aan
In Visuino: sluit de DHT11-component aan
  1. Sluit de "Temperature" output pin van de HumidityThermometer1 component aan op de "In" pin van de AnalogElement1 van de FormattedText1 component (Afbeelding 1)
  2. Verbind de "Vochtigheid" output pin van de HumidityThermometer1 component met de "In" pin van de AnalogElement2 van de FormattedText1 component (Afbeelding 2)
  3. Sluit de "Sensor"-pin van de HumidityThermometer1-component aan op de "digitale" ingangspin van het "digitale [2]"-kanaal van de Arduino-component (afbeelding 3)

Stap 9: In Visuino: randdetectiecomponent toevoegen en verbinden

In Visuino: randdetectiecomponent toevoegen en verbinden
In Visuino: randdetectiecomponent toevoegen en verbinden
In Visuino: randdetectiecomponent toevoegen en verbinden
In Visuino: randdetectiecomponent toevoegen en verbinden
In Visuino: randdetectiecomponent toevoegen en verbinden
In Visuino: randdetectiecomponent toevoegen en verbinden
In Visuino: randdetectiecomponent toevoegen en verbinden
In Visuino: randdetectiecomponent toevoegen en verbinden

Elke keer dat er een nieuwe verbinding is, moeten we de HTML-tekst verzenden. Voordat we verzenden, moeten we even wachten, omdat de webbrowsers een verzoek moeten verzenden voordat ze resultaat verwachten. Om dat te doen, zullen we een vertragingscomponent gebruiken die is aangesloten op de "Verbonden" pin van de TCP/IP Server Socket.

  1. Typ "vertraging" in het filtervak van de Component Toolbox en selecteer vervolgens de component "Delay" (Afbeelding 1) en zet deze neer in het ontwerpgebied
  2. Stel in de Eigenschappen de waarde van de eigenschap "Interval (uS)" in op 200000 (Afbeelding 2)
  3. Verbind de “Connected” pin van de “Modules. WiFi. Sockets. TCPServer1” van de “NodeMCU ESP-12” component, met de “In” pin van de Delay1 component (Afbeelding 3)
  4. Verbind de "Out" pin van de Delay1 component met de "Clock" input pin van de FormattedText1 component (Afbeelding 4)

Stap 10: In Visuino: sluit de geformatteerde tekstcomponent aan en voeg vertraging toe en sluit deze aan

In Visuino: sluit de opgemaakte tekstcomponent aan en voeg vertraging toe en verbind de component
In Visuino: sluit de opgemaakte tekstcomponent aan en voeg vertraging toe en verbind de component
In Visuino: sluit de opgemaakte tekstcomponent aan en voeg vertraging toe en verbind de component
In Visuino: sluit de opgemaakte tekstcomponent aan en voeg vertraging toe en verbind de component
In Visuino: sluit de opgemaakte tekstcomponent aan en voeg vertraging toe en verbind de component
In Visuino: sluit de opgemaakte tekstcomponent aan en voeg vertraging toe en verbind de component
In Visuino: sluit de opgemaakte tekstcomponent aan en voeg vertraging toe en verbind de component
In Visuino: sluit de opgemaakte tekstcomponent aan en voeg vertraging toe en verbind de component
  1. Verbind de "Out" -pin van de FormattedText1-component met de "In" -pin van de "Modules. WiFi. Sockets. TCPServer1" van de "NodeMCU ESP-12" -component (afbeelding 1)
  2. Typ "vertraging" in het filtervak van de Component Toolbox, selecteer vervolgens de component "Delay" (Afbeelding 2) en zet deze neer in het ontwerpgebied
  3. Verbind de "Out" -pin van de FormattedText1-component met de "In" -pin van de Delay2-component (Afbeelding 3)
  4. Verbind de “Out” pin van de Delay2 component met de “Disconnect” input pin van de “Modules. WiFi. Sockets. TCPServer1” van de “NodeMCU ESP-12” component (Afbeelding 4)

De Delay-component zal de socket kort nadat de tekst is verzonden, loskoppelen.

Stap 11: Genereer, compileer en upload de Arduino-code

Genereer, compileer en upload de Arduino-code
Genereer, compileer en upload de Arduino-code
Genereer, compileer en upload de Arduino-code
Genereer, compileer en upload de Arduino-code
  1. Druk in Visuino op F9 of klik op de knop in afbeelding 1 om de Arduino-code te genereren en de Arduino IDE te openen
  2. Sluit de NodeMCU-module met USB-kabel aan op de computer
  3. Selecteer het bordtype en de seriële poort zoals ik je in deze Instructable heb laten zien:
  4. Klik in de Arduino IDE op de knop Uploaden om de code te compileren en te uploaden (Afbeelding 2)

Stap 12: En speel…

Image
Image
En speel…
En speel…

Gefeliciteerd! Je hebt een Wi-Fi Temperature and Humidity Web Server gemaakt.

Op Afbeelding 1 en in de Video kunt u het aangesloten en ingeschakelde project zien. Ik gebruikte een kleine USB Power Bank om de module van stroom te voorzien.

Zorg ervoor dat je in het project bij stap 4 de juiste SSID en het juiste wachtwoord voor je wifi-hotspot hebt ingevoerd

Als u een webbrowser opent op uw computer of mobiele apparaat en typt:

dht11server./

En druk op Enter, u ziet de temperatuur en vochtigheid gemeten door de module. De meting wordt elke 5 seconden vernieuwd, zoals gespecificeerd in stap 7.

Zorg ervoor dat u de punt aan het einde van de naam toevoegt, anders kan Windows de domeinnaam niet herleiden

Op Afbeelding 2 ziet u het volledige Visuino-diagram.

Ook bijgevoegd is het Visuino-project, dat ik voor deze Instructable heb gemaakt. U kunt het downloaden en openen in Visuino:

Aanbevolen: