Inhaltsverzeichnis:

„Also, lassen Sie uns sofort zustimmen: Sie werden keinen Film für Hollywood machen. Selbst im Wunderland werden nicht mehr als fünf Prozent aller Szenarien genehmigt, und nur ein Prozent geht dann in Produktion ... Stattdessen erstellen Sie stattdessen Ihr eigenes Hollywood. “
Ed Gaskell "Making Digital Cinema oder Hollywood zu Hause"
Vorwort
Was, eine andere Wetterstation auf dem Arduino ?! Ja, noch eine Sache, und etwas sagt mir, nicht die letzte im Internet der Dinge.
So wie jeder Programmierer das Programm „Hello World!“ Schreiben muss, muss jeder Arduino die Erfahrung haben, eine einfache oder nicht sehr Wetterstation zu bauen.
Eine beträchtliche Anzahl bereits erstellter Projekte von Wetterstationen im Internet wird beschrieben, der Leser kann eines davon für die Implementierung auswählen. Ich werde mich nicht verstecken, ich habe ungefähr ein Dutzend solcher Projekte und eine Reihe verwandter Projekte sorgfältig studiert. Daher kann man nicht sagen, dass ich alles von Grund auf neu geschaffen habe, natürlich stand ich "auf den Schultern von Riesen".
Ich muss sofort sagen, dass meine Pläne nicht die Nutzung von Diensten Dritter zum Speichern und Anzeigen von Daten beinhalteten. Ich wollte persönlich fühlen und verstehen, wie das alles von Anfang bis Ende von A bis Z von innen funktioniert.
Für diejenigen, die schnell etwas aus dem Nichts herausnieten möchten, ist diese Artikelserie höchstwahrscheinlich nicht geeignet. Es ist einfacher, einen fertigen Designer mit Montageanleitung zu kaufen. Mikroelektroniker haben hier überhaupt nichts zu tun, vielleicht wiehern und erinnern sie sich zu Beginn der Reise.
Aber für diejenigen, die es wirklich herausfinden wollen, denke ich, dass sie es mögen werden. Vielleicht ist das Material als Trainingsinstrument nützlich.
Der Autor wird Sie durch die komplizierten Labyrinthe der modernen Technologie des Internets der Dinge führen. Außerdem die Augen eines Anfängers, da er selbst ist.
Dieses Projekt wurde bereits 2016 umgesetzt, aber ich hoffe, es ist immer noch relevant.
Technologie-Set
Wir werden lernen und mit einfachen und komplexen Dingen arbeiten:
- Temperatur- und Feuchtigkeitssensoren Typ DHT22, DHT11
- Luftdrucksensor Typ BMP180
- WiFi-Modul ESP8266
- 2,4 GHz nRF24 Funkmodul
- Arduino Pro Mini Familie, Arduino Mega
- Solarbatterie und Batterien
- Programmiersprache C / C ++
- PHP-Programmiersprache
- MySQL-Datenbankverwaltungssystem
- Java-Programmiersprache und das Android-Framework (Erstellen einer Anwendung für Adnroid zum Anzeigen von Wetterdaten auf einem Smartphone).
Einige der aufgelisteten Themen und Eier sind es nicht wert, andere können jahrelang studiert werden. Daher werden wir komplexe Dinge nur in dem Teil ansprechen, der in direktem Zusammenhang mit diesem Projekt steht, damit Sie verstehen, wie alles funktioniert.
Aber wir werden gleich von vorne anfangen . Aus der Beschreibung und Gestaltung des zukünftigen Gerätes "auf Papier" , so dass am Ende jeder Ziegel an seiner Stelle lag.
Prototyping
Wie Wikipedia richtig sagt, ist Prototyping eine schnelle grobe Implementierung eines funktionierenden Systems. Was zwar nicht völlig ineffizient und mit einigen Fehlern funktioniert, aber eine Vorstellung davon gibt, ob das Handwerk zu einem Industriedesign entwickelt werden sollte. Der Prototypenprozess muss nicht langwierig sein. Auf die Prototyping-Phase folgt eine Analyse des Systems und seiner Verfeinerung.
Dies ist jedoch in einer Branche der Fall, in der Arbeitnehmer Vollzeit beschäftigt sind.
Jeder, der abends sein Haustierprojekt für das „Internet der Dinge“ nietet, sollte sich bewusst sein, dass er einen Prototyp erstellt, ein Halbzeug. Er ist sehr weit vom Niveau eines normalen Industrieprodukts entfernt. Deshalb sollten wir unseren Amateuren keine verantwortungsvollen lebenserhaltenden Pläne anvertrauen und hoffen, dass sie uns nicht im Stich lassen.
Ein Industrieprodukt basiert auf einer industriellen Elementbasis und durchläuft dann viele weitere Phasen, einschließlich Debugging, Testen und Wartung, bevor es zum Bestseller wird.
Anstelle all dieser Schwerkraft werden wir also unser eigenes Spielzeug erschaffen, aber kein einfaches. Mit Elementen der technischen Kreativität, den Anfängen der Programmierung und dem Wissen (im Entstehungsprozess) vieler anderer verwandter Dinge.
Natürlich werden es Elektronikingenieure in der Programmierphase schwer haben, und Programmierer müssen über die Schaltkreise schwitzen, aber der Autor wird versuchen, alles so zugänglich wie möglich zu erklären und klar zu beschreiben, warum bestimmte Lösungen verwendet wurden.
Anforderungen
Normalerweise wird dieser Schritt übersprungen. Wenn Sie sich jetzt für so etwas entscheiden, werden kleine Details herausgefunden, die das gesamte Projekt in eine Sackgasse führen oder es sogar unerträglich machen. Alle unsere Wunschliste muss aufgezeichnet werden. Ich verwende dafür eine Google-Disk. Sie ist von einem PC und von einem mobilen Gerät aus verfügbar.
Unsere Wetterstation sollte also:
- Temperatur und Luftfeuchtigkeit draußen messen
- Messen Sie die Temperatur und Luftfeuchtigkeit im Haus
- Atmosphärendruck messen
- Zeigen Sie die angezeigten Werte auf dem Display an
- Übertragen Sie Daten an einen Server im Internet, wo Daten in einer Datenbank gespeichert und auf einer Webseite angezeigt oder in einer mobilen Anwendung verwendet werden.
Die verwendeten Sensoren sind die einfachsten und billigsten. Mit Blick auf die Zukunft möchte ich beispielsweise sagen, dass DHT22 die Temperatur ziemlich genau misst, aber bei Luftfeuchtigkeit ist sie etwas ungenau. Aber ich wiederhole noch einmal, es spielt keine Rolle, denn wir haben einen Prototyp und eine Ausbreitung von 5% Luftfeuchtigkeit wird nichts Wichtiges in unserem Leben beeinflussen.
Systemarchitektur, Hardware und Software sollten eine weitere Systemerweiterbarkeit bieten, um neue Sensoren und neue Funktionen hinzuzufügen.
Eisen Komponentenauswahl
Dies ist der wichtigste Teil und überhaupt kein Löten oder Programmieren. Nach der Festlegung der Anforderungen an das System muss mit Hilfe dessen, was genau implementiert wird, entschieden werden.
Hier gibt es eine Nuance. Um die Komponenten auszuwählen, die Sie benötigen, um ihre Fähigkeiten gut zu kennen, müssen Sie die Technologie selbst kennen. Das heißt, es erfordert, weit entfernt von einem Anfänger Elektronikingenieur und Programmierer zu sein. Was sollten Sie nun ein paar Jahre damit verbringen, das gesamte Spektrum möglicher Geräte zu studieren?
Teufelskreis? Aber es gibt Teufelskreise, um sie zu brechen.
Es gibt einen Ausweg. Sie können einfach das Projekt eines anderen nehmen und wiederholen. Ich habe die bestehenden Projekte von Wetterstationen studiert und hoffentlich einen Schritt nach vorne gemacht.
Also. Die Architektur der Wetterstation basiert auf Arduino. Weil Arduino eine kleine Eintrittsschwelle hat und ich mich bereits damit befasst habe. Es ist einfacher, weiter zu wählen.
Es wurde sofort klar, dass die Wetterstation einen entfernten Funksensor und ein zentrales Modul enthalten würde.
Die zentrale Haupteinheit befindet sich im Innenbereich. Es ist wichtig, dies in der Anfangsphase zu bestimmen, aus solchen wichtigen Merkmalen wie dem Betriebstemperaturregime und dem Krafttanz.
Der Fernsensor (oder die Sensoren) sind ohne "Gehirn". Seine Aufgabe besteht darin, regelmäßig Daten zu messen und an die zentrale Heimeinheit zu übertragen. Die Zentraleinheit empfängt Daten von allen Sensoren, zeigt sie auf dem Bildschirm an und sendet sie an die Datenbank im Internet. Nun, dort ist es schon viel einfacher. Sobald sich die Daten in der Datenbank befinden, können Sie damit machen, was Sie wollen, und sogar Grafiken zeichnen.
Für die Beziehungen zur Außenwelt wurde das Internet definitiv vom WiFi-Modul ESP8266 ohne Alternative ausgewählt (ca. Vielleicht sind jetzt solche Alternativen erschienen). Arduino Ethernet-Erweiterungskarten sind verfügbar, aber ich wollte überhaupt nicht an das Kabel angeschlossen werden.

Eine interessante Frage war, wie eine Verbindung zwischen einem am Fenster montierten Sensor (oder Sensoren, erinnern Sie sich an die Anforderung an die Systemerweiterbarkeit?) Und dem Zentrum hergestellt werden kann. 433 MHz Beacons sind definitiv nicht geeignet (sie sind überhaupt für nichts geeignet).
Nutzen Sie den ESP8266 wieder?
Nachteile dieser Entscheidung:
Außerhalb des Hauses ist nachhaltiges WLAN erforderlich
Kommunikationsreichweite wird nicht lang sein
Die Zuverlässigkeit wird leiden, wenn das Internet ausfällt, werden wir unsere Fernsensoren nicht sehen
höherer Stromverbrauch.
Stromverbrauch ESP8266:
bei der Übertragung von 120-170 mA
bei Einnahme von 50-56 mA
im Tiefschlaf 10 μA (μA)
aus 5 µA (µA).
Am Ende wurde der nRF24L01 + -Chip mit einem 2,4-GHz-Sender und -Empfänger in einer Flasche mit einer zusätzlichen externen Antenne ausgewählt, um Fernsensoren mit der Haupt-Home-Einheit zu verbinden, damit er die Wände mit Sicherheit „durchbricht“.

Stromverbrauch nRF24L01 + 2,4 GHz:
- beim Empfang von 11 mA
- bei Übertragung mit 2 Mbit / s - 13 mA
- im Standby-I-Modus - 26 μA (μA)
- Aus-Zustand 900 nA (nA).
Für den ESP8266 ist der Betriebstemperaturbereich für den nRF24L01 + geeignet: von -40 ° C bis + 80 ° C.
Sie können nRF24L01 + für etwa 1 USD oder sofort mit einer externen Antenne für 3 USD kaufen. Sie können den ESP8266-01 für etwa 4 US-Dollar kaufen. Lesen Sie die Produktbeschreibung sorgfältig durch! Ansonsten kaufen Sie eine Antenne.
Der Kern des Systems zeichnete sich ab. Wir wenden uns den Sensoren selbst zu.
Wie Sie wissen, kann die Temperatur auf der Straße negative Werte erreichen, sodass der DHT11-Sensor nicht geeignet ist, aber DHT22 genau richtig.

Merkmale von DHT22 / AM2302:
- Spannungsversorgung von 3,3 V bis 5 V, 5 V empfohlen
- Maximaler Verbrauch 2,5 mA zum Zeitpunkt der Messung und Datenübertragung
- Feuchtigkeitsmessbereich 0-100% mit einer Genauigkeit von 2-5%
- Temperaturmessbereich von -40 bis + 125 ° C mit einer Genauigkeit von ± 0,5 ° C.
- eine Messanforderung nicht mehr als 0,5 Hz - einmal alle 2 Sekunden.
Ich hoffe, dass es im Haus keine negativen Temperaturen gibt, sodass Sie DHT11 verwenden können, zumal ich es bereits hatte.
Eigenschaften DHT11:
- Spannungsversorgung von 3,3 V bis 5 V.
- Maximaler Verbrauch 2,5 mA zum Zeitpunkt der Messung und Datenübertragung
- Luftfeuchtigkeitsmessbereich 20-80% mit einer Genauigkeit von 5%
- Temperaturmessbereich von 0 bis + 50 ° C mit einer Genauigkeit von ± 2 ° C.
- Messanforderung nicht mehr als 1 Hz - einmal pro Sekunde.
Sie können DHT22 für etwa 3 US-Dollar kaufen. DHT11 ist billiger - 1 US-Dollar, aber weniger genau.
Nun zurück zu Arduino. Welches Board soll ich wählen?
Ich habe einzelne Teile des Systems auf einem Arduino UNO getestet. Das heißt, Ich habe das ESP-Modul mit Uno verbunden und es untersucht, getrennt, dann nRF24 usw. angeschlossen. Für die endgültige Implementierung des Übersee-Sensors wählte er den Arduino Pro Mini als den Uno am nächsten liegenden Miniatur-Mini.

Auch beim Stromverbrauch sieht der Arduino Pro Mini gut aus:
- Es gibt keinen USB-TTL-Konverter, der an sich viel „frisst“.
- Die LED ist über einen 10k-Widerstand angeschlossen.
Für eine fortschrittliche Energieeinsparung war geplant:
- Entfernen Sie die LED - die Betriebsanzeige am Arduino Pro Mini (ich bedauerte, hat das Board nicht verdorben)
- Verwenden Sie entweder die blanke Baugruppe des Atmel ATmega328-Mikroprozessors (nicht verwendet).
- Verwenden Sie die Low Power Library oder JeeLib .
Ich habe Low Power Library aus den Bibliotheken ausgewählt, es ist einfach und enthält nur das, was Sie brauchen.
Für die Zentraleinheit wurde das Arduino Mega Board gewählt, da geplant war, zahlreiche Peripheriegeräte daran anzuschließen. Darüber hinaus ist es vollständig mit UNO kompatibel und verfügt über mehr Speicher. Mit Blick auf die Zukunft werde ich sagen, dass diese Wahl völlig gerechtfertigt war.
Sie können einen Arduino Mega für etwa 8 US-Dollar kaufen.
Strom und Stromverbrauch
Nun zu Strom und Stromverbrauch.
Arduino Pro Mini gibt es in zwei Formen:
- 5V Stromversorgung und 16MHz Frequenz
- 3,3 V Versorgungsspannung und 8 MHz Frequenz.
Da das Funkmodul nRF24L01 + 3,3 V für die Stromversorgung benötigt und die Leistung hier nicht wichtig ist, kaufen Sie den Arduino Pro Mini mit 8 MHz und 3,3 V.
Gleichzeitig beträgt der Spannungsbereich des Arduino Pro Mini:
- 3,35-12 V für 3,3 V-Modell
- 5-12 V für 5 V.
Ich hatte bereits einen Arduino Pro Mini auf 5V, deshalb habe ich ihn benutzt. Sie können einen Arduino Pro Mini für etwa 4 US-Dollar kaufen.
Die Zentraleinheit wird über ein kleines Netzteil mit 12 V, 450 mA und 5 W aus dem 220-V-Netz mit Strom versorgt. So für 5 Dollar. Es gibt noch einen separaten Ausgang bei 5V.

Und wenn dies nicht ausreicht, kann es mächtiger sein. Mit anderen Worten, das Einsparen von Strom für die Zentraleinheit ist wenig sinnvoll. Für einen drahtlosen Fernsensor ist jedoch die Energieeinsparung der wichtigste Teil. Aber ich möchte auch nicht die Funktionalität verlieren.
Daher werden das Arduino Pro Mini und das nRF24-Funkmodul mit 4 Ni-Mh-Batterien betrieben.
Und denken Sie daran, dass die maximale Kapazität eines modernen Akkus zwischen 2500 und 2700 mAh liegt. Alles, was Sie tun können, sind Marketingtricks (Ansmann 2850) oder Betrug (UltraFire 3500).
Ich verwende aus mehreren Gründen keine Li-Ion-Batterien:
- sehr teuer
- Wenn die Umgebungstemperatur unter 0 ° C fällt, sinkt die Leistung des Lithium-Ionen-Akkus auf 40-50%
- Diejenigen, die billig sind, werden ohne Schutz hergestellt und sind unsicher (während eines Kurzschlusses oder einer Entladung können sie explodieren und brennen, siehe eine Reihe von Videos auf YouTube).
- alt werden, auch wenn sie nicht verwendet werden (obwohl dies für alle chemischen Elemente gilt), verliert der Li-Ion-Akku nach 2 Jahren etwa 20% seiner Kapazität.
Für den Prototyp ist es durchaus möglich, mit hochwertigen Ni-MH AA- oder AAA-Batterien auszukommen. Außerdem brauchen wir keine großen Ströme. Das einzige Minus von Ni-MH-Akkus ist ihre lange Ladung.
Das allgemeine Schema der Wetterstation
Zusammenfassend. Hier ist ein allgemeiner Überblick darüber, wie alles funktioniert.

Fortsetzung folgt.