Inhaltsverzeichnis:
- Schritt 1: Erste Schritte
- Schritt 2: Temperatur und Luftfeuchtigkeit: DHT22 / DHT11
- Schritt 3: Wasserdichte Temperatur: DS18B20
- Schritt 4: Licht: Fotowiderstand / Fotozelle (digital: Ein/Aus)
- Schritt 5: Licht: Fotowiderstand / Fotozelle (analog)
- Schritt 6: Optischer Detektor: QRD1114
- Schritt 7: Schlussworte
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Dieses anweisbare ist Teil meiner DIY Home Automation-Serie, lesen Sie den Hauptartikel "Planung eines DIY Home Automation Systems". Wenn Sie noch nicht wissen, was Homie ist, schauen Sie sich homie-esp8266 + homie von Marvin Roger an.
Es gibt viele viele Sensoren. Ich behandle die sehr grundlegenden, um dem Leser die Voraussetzungen zu geben, um mit dem Bau von "etwas" zu beginnen. Das ist vielleicht kein Hexenwerk, aber das sollte eigentlich funktionieren.
Wenn Sie die Teile nicht haben, achten Sie auf meine bevorstehende anweisbare "Sourcing Electronic Parts From Asia".
Lassen Sie mich ein paar Schlagworte hinzufügen: IoT, ESP8266, Homie, DHT22, DS18B20, Hausautomation.
Thema sollte jetzt ziemlich klar sein:-)
Auch dieses instructable ist jetzt auch von meiner persönlichen Seite verfügbar:
Schritt 1: Erste Schritte
Konventionen
Dieses anweisbare verwendet D1 Mini-Klone. Dies sind WiFi-fähige Arduino-kompatible Controller mit ESP8266-Chip. Sie werden in einem sehr kleinen Formfaktor (~34*25mm) geliefert und sind spottbillig (~3-4$ für Klone).
Ich werde jeden Build mit einem D1 Mini, einem Steckbrett und einigen Sensoren veranschaulichen. Ich füge für jede eine Stückliste (BOM) bei, überspringe jedoch offensichtliche Dinge wie Überbrückungsdrähte und Steckbrett (mini oder voll). Ich konzentriere mich auf "aktive Teile".
Für Drähte/Kabel in Diagrammen (Fritzing + AdaFruitFritzing-Bibliothek) habe ich verwendet:
- Rot/Orange für die Stromversorgung, normalerweise 3,3 V. Manchmal werden es 5V sein, seien Sie vorsichtig.
- Schwarz für Boden.
- Gelb für digitale Datensignale: Bits sind unterwegs und können so wie sie sind von Chips gelesen werden.
- Blau/Lila für analoge Datensignale: Keine Bits hier, nur einfache Spannung, die gemessen und berechnet werden muss, um zu verstehen, was vor sich geht.
Homie für ESP8266 versendet ein Dutzend Beispiele, dort habe ich angefangen, dieses anweisbare zu bauen.
Steckbrett
Der D1 ist recht Breadboard-freundlich, spart aber nur eine Reihe von Pins nach oben und unten. Jedes Beispiel hat den D1 auf der rechten Seite und die Komponenten auf der linken Seite. Die oberen und unteren Stromschienen werden verwendet, um entweder 3,3 V oder 5 V zu führen.
Notiz
Homie-Beispiele werden als ".ino"-Skizzen für die Arduino IDE erstellt. Mein eigener Code wird jedoch als ".ccp" für PlatformIO erstellt.
Dies macht nur sehr wenig Unterschied, da Skizzen einfach genug sind, um kopiert/eingefügt zu werden, was auch immer das Werkzeug Ihrer Wahl ist.
Schritt 2: Temperatur und Luftfeuchtigkeit: DHT22 / DHT11
Aufbau des Geräts
Das DHT22 verwendet:
- Ein digitaler Pin zur Kommunikation mit dem Controller, verbinden Sie ihn mit D3
- Zwei Drähte für die Stromversorgung (3,3 V oder 5 V + GND)
- Der digitale Pin muss hoch gehalten werden (mit Strom verbunden), dazu verwenden wir einen Widerstand zwischen Stromschiene und Datenpin
Code
Das PlatformIO-Projekt kann heruntergeladen werden von:
Das ursprüngliche Homie-Beispiel ist hier (verwendet jedoch keinen Sensor):
Verwenden Sie für DHT22 die DHT-Sensorbibliothek (ID=19)
Stückliste
- Steuerung: Wemos D1 Mini
- Widerstand: 10KΩ
-
Sensor: (einer davon)
- DHT22: Ich habe die 4-polige Art verwendet, die einen zusätzlichen Widerstand erfordert. Es gibt 3-Pin-Module, die als SMD geliefert werden, die den Widerstand enthalten.
- DHT11: Dies ist billiger, aber weniger genau, überprüfen Sie Ihre Anforderungen
Schritt 3: Wasserdichte Temperatur: DS18B20
Aufbau des GerätsDer DS18B20 verwendet:
- Ein digitaler Pin zur Kommunikation mit dem Controller, verbinden Sie ihn mit D3
- Zwei Drähte für die Stromversorgung (3,3 V oder 5 V + GND)
- Der digitale Pin muss hoch gehalten werden (mit Strom verbunden), dazu verwenden wir einen Widerstand zwischen Stromschiene und Datenpin
Der DS18B20 ist ein 1-Draht-Sensor. Es verwendet einen Bus und als solcher können mehrere Sensoren einen einzigen Daten-Pin verwenden.
Es ist auch möglich, den Sensor NICHT mit 3,3 V/5 V zu versorgen, dies wird als parasitärer Strommodus bezeichnet. Details siehe Datenblatt.
Code
Das PlatformIO-Projekt kann heruntergeladen werden von:
Wie bei DHT22 ist das ursprüngliche Homie-Beispiel hier (verwendet jedoch keinen Sensor):
Verwenden Sie für den 1-Wire-Bus das Paket OneWire (ID=1)
Verwenden Sie für DS18B20 DallasTemperature (ID = 54)
Stückliste
- Steuerung: Wemos D1 Mini
- Widerstand: 4,7KΩ
- Sensor: DS18B20, abgebildet ist ein wasserdichter Sensor
- 3-polige Schraubklemme zum einfachen Anschließen des Kabels an das Steckbrett
Schritt 4: Licht: Fotowiderstand / Fotozelle (digital: Ein/Aus)
Aufbau des Geräts
(Leider habe ich keine Fritzing-Komponente für die digitale Lichtschranke)
Das digitale Fotozellenmodul verwendet:
- Ein digitaler Pin zur Kommunikation mit dem Controller, verbinden Sie ihn mit D3
- Zwei Drähte für die Stromversorgung (3,3 V + GND)
Es ist möglich, eine analoge Fotozelle zu verwenden, aber dies ist hier nicht dokumentiert, siehe den ausgezeichneten Artikel von Adafruit "Using a Photocell".
Hinweis: In diesem Beispiel befindet sich ein Potentiometer auf der Sensorplatine. Hiermit wird die Grenze zwischen „hellem“und „dunklem“Umgebungslicht eingestellt. Wenn das Licht von Lesung 1 aus ist, bedeutet das Lesen von 0 Licht, wenn es an ist.
Code
Das PlatformIO-Projekt kann heruntergeladen werden von:
Stückliste
Steuerung: Wemos D1 Mini
Sensor: Lichtempfindliches / Lichterkennungsmodul
Schritt 5: Licht: Fotowiderstand / Fotozelle (analog)
Aufbau des Geräts
Der analoge Sensor der Fotozelle wirkt als Widerstand. Es wird zwischen einem analogen Eingang und 3,3 V angeschlossen.
Ein Widerstand wird zwischen GND und Datenpin gelegt, um einen Spannungsteiler zu erzeugen. Der Zweck besteht darin, einen bekannten Wertebereich zu erstellen:
- Wenn kein Licht vorhanden ist, blockiert die Fotozelle grundsätzlich VCC und verbindet so GND mit Ihrem Datenpin: Pin liest fast 0.
- Wenn viel helles Licht vorhanden ist, lässt die Fotozelle VCC zum Daten-Pin fließen: Der Pin liest fast die volle Spannung und als solche nahe der maximalen (1023).
Hinweis: Analoge Pinwerte werden mit analogRead in einem Bereich von 0-1023 gelesen. Dies ist nicht praktikabel, um mit 1-Byte-Werten umzugehen, dafür hilft die Arduino-Map-Funktion dabei, von 0-1023 auf (zum Beispiel) 0-255 zu reduzieren.
Verwenden Sie für die Kalibrierung von Min / Max-Werten für Ihren Sensor eine Skizze wie diese von Arduino.
Code
Das PlatformIO-Projekt kann heruntergeladen werden von:
Stückliste
- Steuerung: Wemos D1 Mini
- Sensor: Lichtabhängiger Widerstand (LDR) / Fotowiderstand
- Widerstand: 1K oder 10K, muss basierend auf Ihrer Zelle kalibriert werden
Verweise
- PiDome-Server-Quellcode für die Lichtverhältnisse eines Standorts
- Adafruits "Using a Photocell"
- "Photowiderstände" hier bei instructables
- Ein verdammt verrücktes "Fotozellen-Tutorial", wenn Sie etwas Mathematik und Grafiken haben wollen
Schritt 6: Optischer Detektor: QRD1114
Aufbau des Geräts
Code
Stückliste
Verweise
- Physical Computing: QRD1114 enthält Beispielcode zum Lesen des Sensors und Verwendung von Interrupt für Drehgeber + präzises PCB-Design
- QRD1114 Optischer Detektor Anschlussanleitung bei Sparkfun
Schritt 7: Schlussworte
Dieses anweisbare ist ein sehr kurzes, um die grundlegende Überwachung zu erklären.
Um weiter zu gehen, müssen wir Relais anschließen, IR-Sender… Dies wird hoffentlich später behandelt, wenn es mir die freie Zeit erlaubt. Der große Unterschied besteht darin, dass wir nicht nur "lesen" (gibt es Licht?), sondern auch "schreiben" (Licht einschalten!).