Inhaltsverzeichnis:
- Schritt 1: Arduino IDE, ESP8266 Boards und Bibliotheken und Ihr ThingSpeak-Konto installieren
- Schritt 2: Erkundung der Skizze
- Schritt 3: Erläuterungen zu …
- Schritt 4: Kommunikation
- Schritt 5: Hauptvariablen
Video: So bauen Sie Ihr eigenes Anemometer mit Reed-Schaltern, Hall-Effekt-Sensor und einigen Schrott auf Nodemcu - Teil 2 - Software - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Einführung
Dies ist die Fortsetzung des ersten Beitrags "How to build your own Anemometer Using Reed Switches, Hall Effect Sensor and Some Scraps on Nodemcu - Part 1 - Hardware" - wo ich zeige, wie man die Windgeschwindigkeits- und Richtungsmessgeräte zusammenbaut. Hier werden wir die Messsteuerungssoftware nutzen, die für die Verwendung in einem Nodemcu mit der Arduino IDE entwickelt wurde.
Projektbeschreibung
Im vorherigen Beitrag sind die Geräte, die mit dem Nodemcu bewaffnet und verbunden sind, in der Lage, die Geschwindigkeit und Richtung des Windes zu messen. Die Steuerungssoftware wurde entwickelt, um die Drehung des Anemometers für einen bestimmten Zeitraum abzulesen, die Lineargeschwindigkeit zu berechnen, die Richtung abzulesen, in der sich die Schaufel befindet, die Ergebnisse in der OLED anzuzeigen, die Ergebnisse in ThingSpeak zu veröffentlichen und 15 Minuten zu schlafen, bis die nächste Messung.
Haftungsausschluss: Dieses Anemometer sollte nicht für professionelle Zwecke verwendet werden. Es ist nur für den akademischen oder privaten Gebrauch.
Hinweis: Englisch ist nicht meine natürliche Sprache. Wenn Sie grammatikalische Fehler finden, die Sie daran hindern, das Projekt zu verstehen, lassen Sie es mich bitte wissen, um sie zu korrigieren. Ich danke dir sehr.
Schritt 1: Arduino IDE, ESP8266 Boards und Bibliotheken und Ihr ThingSpeak-Konto installieren
Installieren von Arduino IDE und Nodemcu
Wenn Sie die IDE des Arduino noch nie installiert haben, lesen Sie bitte das Tutorial im Link - So installieren Sie die Arduino IDE - wo Sie die vollständige Anleitung finden.
Im nächsten Schritt, um das Nodemcu-Board zu installieren, verwenden Sie dieses Tutorial aus den Magesh Jayakumar Instructables, das sehr vollständig ist. So installieren Sie Nodemcu ohne Arduino IDE
Bibliotheken installieren
Im nächsten Schritt müssen Sie die Bibliotheken installieren, die die Skizze verwendet. Sie sind üblich und Sie können die unten aufgeführten Schritte ausführen.
ThingSpeak-Bibliothek -
ESP8266-Bibliothek -
Erstellen eines ThingSpeak-Kontos
Um das ThingSpeak (https://thingspeak.com/) zu nutzen, müssen Sie ein Konto erstellen (es ist für eine bestimmte Anzahl von Interaktionen noch kostenlos), in dem Sie die gemessenen Daten in Ihrem Windmesser speichern und die Windverhältnisse in Ihrem Zuhause überwachen können. sogar per Handy. Durch die Nutzung von ThingSpeak können Sie jedem Interessierten den öffentlichen Zugang zu Ihren gesammelten Daten gewähren. Das ist ein guter Vorteil des ThingSpeak. Rufen Sie die Startseite auf und folgen Sie den Schritten, um Ihr Konto zu erstellen.
Sobald das Konto erstellt wurde, rufen Sie dieses Tutorial – ThingSpeak Erste Schritte – auf, um Ihre Kanäle zu erstellen. Es ist ziemlich gut erklärt. Zusammenfassend müssen Sie einen Kanal erstellen, in dem die Daten gespeichert werden. Dieser Kanal hat eine ID und eine Schlüssel-API, die jedes Mal, wenn Sie Daten aufzeichnen möchten, in der Skizze referenziert werden sollten. ThingSpeak speichert alle Daten in einer Bank und zeigt sie bei jedem Zugriff auf Ihr Konto an, so wie Sie es konfiguriert haben.
Schritt 2: Erkundung der Skizze
Flussdiagramm
Im Diagramm können Sie das Fluxogramm der Skizze verstehen. Wenn Sie den Nodemcu aufwecken (verknüpfen), verbindet er sich mit Ihrem Wi-Fi-Netzwerk, dessen Parameter Sie konfiguriert haben, und beginnt 1 Minute Zeit zu zählen, um die Messungen durchzuführen. Zuerst werden die Anemometer-Umdrehungen 25 Sekunden lang gezählt und berechnet die Lineargeschwindigkeit und lesen Sie die Windrichtung ab. Die Ergebnisse werden auf dem OLED angezeigt. Führen Sie die gleichen Schritte erneut aus und für diese zweite Lesung wird es an das ThingSpeak übertragen.
Dann schläft Nodemcu 15 Minuten lang, um den Akku zu schonen. Da ich ein kleines Solarpanel verwende, ist dies zwingend erforderlich. Wenn Sie eine 5V-Quelle verwenden, können Sie das Programm so ändern, dass es nicht schläft und die Daten weiter misst.
Aufbau der Programme
Im Diagramm sehen Sie den Aufbau der Skizze.
Anemometer_Instructables
Es ist das Hauptprogramm, das die Bibliotheken lädt, die Variablen startet, den Attach-Interrupt steuert, alle Funktionen aufruft, die Windgeschwindigkeit berechnet, seine Richtung bestimmt und in den Ruhezustand versetzt.
Kommunikation
Verbinden Sie das WLAN und senden Sie die Daten an ThingSpeak.
Anmeldeinformationen.h
Die Schlüssel Ihres WLAN-Netzwerks und die Kennungen Ihres Kontos in ThingSpeak. Hier ändern Sie Ihre Schlüssel-IDs und APIs.
definiert.h
Es enthält alle Variablen des Programms. Hier können Sie die Lesezeiten ändern oder wie lange der Nodemcu schlafen soll.
Funktionen
Es enthält die Funktionen zum Kombinieren der Parameter und Auslesen des Multiplexers sowie die Funktion zum Auslesen der Umdrehungen des Anemometers.
oledDisplay
Zeigen Sie die Ergebnisse der Windgeschwindigkeit und -richtung auf dem Bildschirm an.
Schritt 3: Erläuterungen zu …
Unterbrechung anhängen
Die Drehung des Anemometers wird durch die Funktion attachInterrupt () (und detachInterrupt ()) im GPIO 12 (Pin D6) des Nodemcu gemessen (es hat eine Interrupt-Funktion an seinen D0-D8-Pins).
Interrupts sind Ereignisse oder Bedingungen, die den Mikrocontroller veranlassen, die Ausführung der von ihm ausgeführten Aufgabe zu stoppen, vorübergehend in einer anderen Aufgabe zu arbeiten und zur ursprünglichen Aufgabe zurückzukehren.
Sie können die Details der Funktion im Link zum Tutorial von Arduino lesen. Siehe attachInterrupt().
Syntax: attachInterrupt(Pin, Callback-Funktion, Interrupt-Typ/Modus);
Stift = D6
Callback-Funktion = rpm_anemometer - zählt jeden Impuls auf einer Variablen.
Interrupt-Typ/Modus = RISING - Interrupt, wenn der Pin von Low nach High geht.
Bei jedem vom Magnetzünder im Hall-Sensor erzeugten Impuls geht der Stift von niedrig auf hoch und die Zählfunktion wird aktiviert und der Impuls in einer Variablen während der festgelegten 25 Sekunden summiert. Nach Ablauf der Zeit wird der Zähler abgeschaltet (detachInterrupt()) und die Routine berechnet die Geschwindigkeit im abgeschalteten Zustand.
Berechnung der Windgeschwindigkeit
Nachdem festgestellt wurde, wie viele Umdrehungen das Anemometer in 25 Sekunden abgegeben hat, berechnen wir die Geschwindigkeit.
- RADIO ist die Messung von der Mittelachse des Anemometers bis zur Spitze des Tischtennisballs. Sie müssen Ihre sehr gut gemessen haben - (siehe das Diagramm, das 10 cm sagt).
- RPS (Umdrehungen pro Sekunde) = Umdrehungen / 25 Sekunden
- RPM (Umdrehungen pro Minute) = RPS * 60
- OMEGA (Winkelgeschwindigkeit - Radiant pro Sekunde) = 2 * PI * RPS
- Linear_Velocity (Meter pro Sekunde) = OMEGA * RADIO
- Linear_Velocity_kmh (Km pro Stunde) = 3,6 * Linear_Velocity und das wird an ThingSpeak gesendet.
Windfahnenrichtung lesen
Um die Position der Windfahne zu lesen und die Windrichtung zu bestimmen, sendet das Programm Low- und High-Signale mit allen Kombinationen der Parameter A, B, C (muxABC-Matrix) an den Multiplexer und wartet auf den Empfang des Ergebnisses an Pin A0 das kann jede Spannung zwischen 0 und 3,3 V sein. Die Kombinationen sind im Diagramm dargestellt.
Wenn beispielsweise C = 0 (low), B = 0 (low), A = 0 (low) ist, gibt der Multiplexer ihm die Daten von Pin 0 und sendet das Signal an A0, das von Nodemcu gelesen wird; wenn C = 0 (low), B = 0 (low), A = 1 (high), sendet Ihnen der Multiplexer die Daten von Pin 1 usw., bis das Lesen der 8 Kanäle abgeschlossen ist.
Da das Signal analog ist, wird das Programm in ein digitales (0 oder 1) umgewandelt, wenn die Spannung kleiner oder gleich 1,3 V ist, ist das Signal 0; wenn es größer als 1,3 V ist, ist das Signal 1. Der Wert 1,3 V ist willkürlich und für mich hat es sehr gut funktioniert. Es gibt immer kleine Leckströme und dies schützt vor Fehlalarmen.
Diese Daten werden in einem Vektor val[8] gespeichert, der mit dem Adressfeld als Kompass verglichen wird. Siehe die Matrix im Diagramm. Wenn der empfangene Vektor beispielsweise [0, 0, 1, 0, 0, 0, 0, 0, 0] ist, zeigt er in der Matrix die Richtung E an und entspricht einem Winkel von 90 Grad; wenn [0, 0, 0, 0, 0, 0, 1, 1] in der Matrix die WNW-Adresse angibt und einem Winkel von 292,5 Grad entspricht. Das N entspricht [1, 0, 0, 0, 0, 0, 0, 0, 0] und einem Winkel von 0 Grad.
Was an das ThingSpeak gesendet wird, liegt am Winkel, da es nur Nummern akzeptiert.
Schritt 4: Kommunikation
So senden Sie Daten an ThingSpeak
Für das Versenden der Daten ist die Funktion thingspeaksenddata() zuständig.
ThingSpeak.setField (1, float (linear_velocity_kmh)) - Sende die Geschwindigkeitsdaten an Feld1 meines Kanals
ThingSpeak.setField (2, float (wind_Direction_Angle)) - Sende die Adressdaten an Feld2 meines Kanals
ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Senden Sie myChannelNumber an meinen Kanal mit der geschriebenen myWriteAPIKey-API, die von TS angegeben wird. Diese Daten wurden von TS beim Erstellen Ihres Kontos und Kanals generiert.
In den obigen Bildern sehen Sie, wie das ThingSpeak die empfangenen Daten anzeigt.
Unter diesem Link können Sie auf die Daten meines Projekts im öffentlichen Kanal von ThingSpeak zugreifen.
Schritt 5: Hauptvariablen
Windfahnenparameter
- MUX_A D5 - mux pi A an Nodemcu-Pin D5
- MUX_B D4 - Mux-Pin B zu Nodemcu-Pin D4
- MUX_C D3 - Mux-Pin C zu Nodemcu-Pin D3
- READPIN 0 - Analogeingang an NodeMcu = A0
- NO_PINS 8 - Anzahl der Mux-Pins
- val[NO_PINS] - Ports 0 bis 7 von Mux
- wind_Direction_Angle - Winkel der Windrichtung
- String windRose[16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - Kardinäle, Sicherheiten und Untersicherheiten
- windAng[16] = {0, 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180, 202.5, 225, 247.5, 270, 292.5, 315, 337.5} - Winkel jeder Richtung
- Ziffer [16] [NO_PINS] - Richtungsmatrix
- muxABC[8] [3] - ABC-Mux-Kombinationen
Windmesserparameter
- rpmcount - zählen Sie, wie viele volle Umdrehungen das Anemometer in der vorgegebenen Zeit gemacht hat
- timemeasure = 25.00 - Messdauer in Sekunden
- timetoSleep = 1 - Nodemcu Wachzeit in Minuten
- sleepTime = 15 - Zeit zum Durchschlafen in Minuten
- rpm, rps - Rotationsfrequenzen (Umdrehungen pro Minute, Umdrehungen pro Sekunde)
- Radius - Meter - das Maß für die Länge des Anemometerflügels
- linear_velocity - lineare Geschwindigkeit in m/seg
- linear_velocity_kmh - Lineargeschwindigkeit in km/h
- omega - Radialgeschwindigkeit in rad/seg
Unten finden Sie die komplette Skizze. Erstellen Sie einen neuen Ordner im Arduino-Ordner Ihres Computers mit dem gleichen Namen wie das Hauptprogramm (Anemometer_Instructables) und fügen Sie alle zusammen.
Geben Sie die Daten Ihres WLAN-Netzwerks und die ThingSpeak ID und den API Writer Key im Teil Credentials.h ein und speichern Sie. Auf Nodemcu hochladen und das ist alles.
Um die Funktion des Systems zu testen, empfehle ich einen guten rotierenden Lüfter.
Um per Handy auf die Daten zuzugreifen, laden Sie die App für IOS oder Android namens ThingView herunter, die glücklicherweise noch kostenlos ist.
Konfigurieren Sie Ihre Kontoeinstellungen und Sie sind bereit, die Windbedingungen zu Hause zu sehen, wo immer Sie sind.
Wenn Sie Interesse haben, greifen Sie auf meinen ThingSpeak Channel ID-Kanal: 438851 zu, der öffentlich ist und dort finden Sie die Wind- und Richtungsmessungen in meinem Haus.
Ich hoffe wirklich, Sie haben Spaß.
Wenn Sie Zweifel haben, zögern Sie nicht, mich zu kontaktieren.
Grüße
Empfohlen:
So erstellen Sie Ihr eigenes Betriebssystem! (Batch und Beispiel innen): 5 Schritte
So erstellen Sie Ihr eigenes Betriebssystem! (Batch und Beispiel Inside): Machen Sie es jetzt
So bauen Sie Ihr eigenes NRF24L01+pa+lna-Modul – wikiHow
So bauen Sie Ihr eigenes NRF24L01+pa+lna-Modul: Das auf Nrf24L01 basierende Modul ist sehr beliebt, da es einfach in drahtlose Kommunikationsprojekte zu implementieren ist. Das Modul könnte unter 1 $ mit einer gedruckten PCB-Version oder einer Monopol-Antenne gefunden werden. Das Problem bei diesen billigen Modulen ist, dass sie
So bauen Sie Ihr eigenes Jet-Triebwerk: 10 Schritte (mit Bildern)
So bauen Sie Ihr eigenes Jet-Triebwerk: Sie müssen nicht Jay Leno sein, um ein Jet-Motorrad zu besitzen, und wir zeigen Ihnen, wie Sie hier Ihren eigenen Jet-Motor bauen, um Ihre verrückten Fahrzeuge anzutreiben. Dies ist ein fortlaufendes Projekt, und viele zusätzliche Informationen werden auf unserer Website verfügbar sein
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Hinzugefügte Informationen: 4 Schritte
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen … Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Zusätzliche Informationen: Wenn Sie jemals auf eine Website gehen und ein Lied abspielen, das Sie mögen und es wollen, dann ist hier das anweisbare für Sie, nicht meine Schuld, wenn Sie etwas durcheinander bringen (nur so wird es passieren, wenn Sie ohne Grund anfangen, Dinge zu löschen) ) Ich konnte Musik für
So starten Sie Ihr eigenes Graffiti-Forschungslabor: 6 Schritte (mit Bildern)
So starten Sie Ihr eigenes Graffiti-Forschungslabor: Es ist einfach, Ihr eigenes gefälschtes Labor zu gründen, aber wir werden versuchen, es in diesen sechs pompösen Schritten schwierig erscheinen zu lassen