Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Persönliche Wetterstation (Arduino+ ESP8266 + Thingspeak)

Komponenten und Verbrauchsmaterialien

Adafruit BMP180
× 1
DHT11 Temperatur- und Feuchtigkeitssensor (4 Pins)
× 1
LDR
Lichtabhängiger Widerstand
× 1
Espressif ESP8266 ESP-01
× 1
Arduino Nano R3
× 1
Widerstand 4,75 kOhm
× 1
Widerstand 51K
× 1
DC-DC-Abwärtswandler-Abwärtswandler LM2596 Abwärts-Leistungsmodul
× 1
DC-Buchse
× 1
Schalter
× 1
12V-2A-Wandadapter
× 1
PCB
× 1
Männliche Kopfzeile 40 Position 1 Zeile (0.1")
× 1
Female Header 8 Position 1 Row (0.1")
× 5
Kunststoffbox
× 1

Notwendige Werkzeuge und Maschinen

Abisolierzange
Heißklebepistole (generisch)
Lötkolben (generisch)
Schraubendreher
Datei
wird zum Basteln verwendet

Apps und Onlinedienste

Arduino-IDE
ThingSpeak API

Über dieses Projekt

Einführung:Erstellen Sie eine persönliche Wetterstation

Wenn Sie in Ihrem Zimmer sitzen, beginnen Sie zu schwitzen oder frösteln; Sie fragen sich, wie hoch die Temperatur in Ihrem Zimmer sein würde? oder wie wäre die feuchtigkeit? Das ist mir vor einiger Zeit passiert.

Dies führte zur Einführung der persönlichen Wetterstation, die Temperatur, Luftfeuchtigkeit, Druck und Lichtintensität Ihres Raums überwacht und auf einen privaten Kanal auf thingspeak.com hochlädt.

Lass uns anfangen.

Schritt 1:Kurzes Video

Hier ist ein kleines Video, das alles in 5 Minuten zusammenfasst.

Klicken Sie hier, um auf YouTube zu sehen.

Schritt 2:Für die persönliche Wetterstation benötigte Elektronikkomponenten

Beschreibung: Wir verwenden DHT11 zum Erfassen der Feuchtigkeit, BMP180 zum Erfassen von Temperatur und Druck und einen lichtabhängigen Widerstand (LDR), um eine grobe Vorstellung von der Lichtintensität zu erhalten. Arduino nano sammelt Daten von diesen Sensoren und sendet sie an ESP8266, um sie auf Ihren privaten Kanal auf thingspeak.com hochzuladen. Wir werden unseren Arduino nano über einen 12V-2A-Wandadapter mit Strom versorgen, Sensoren und ESP8266 erhalten eine herunterkonvertierte Spannung von einem LM2596-basierten Abwärtswandler.

Liste der Komponenten:

  • BMP180 Druck- und Temperatursensor,
  • DHT11-Feuchtigkeitssensor,
  • Lichtabhängiger Widerstand (LDR),
  • ESP8266-WLAN-Modul (Firmware-fähig),
  • Arduino-Nano,
  • 2 Widerstände - 51 KOhm und 4,7 KOhm,
  • LM2596 Abwärtswandler,
  • DC-Buchse,
  • Wechseln und
  • 12V-2A-Wandadapter.

Schritt 3:Werkzeuge und zusätzliche Gegenstände, die für die persönliche Wetterstation benötigt werden

Beschreibung: Wir verwenden eine Abisolierzange zum Abisolieren von Drähten, eine Feile zum Glätten von Schnitten / Löchern im Gehäuse, eine Klebepistole zum Platzieren von Komponenten im Gehäuse, einen Schraubendreher zum Schließen des Gehäusedeckels und einen Lötkolben mit Lötdraht, um die Schaltung auf einer Allzweckplatine (GCB) zu montieren. . 4x4x2 Zoll Plastikbox dient als Gehäuse. Wir benötigen auch männliche und weibliche Bergstreifen zusammen mit Buchsen für die ordnungsgemäße Montage auf dem GCB.

Liste der Tools:

  • Abisolierzange,
  • Datei,
  • Klebepistole,
  • Schraubendreher und
  • Lötkolben und Lötdraht.

Liste zusätzlicher Artikel:

  • 4 x 4 x 2 Zoll große Plastikbox (ich habe diese Abmessung verwendet, alle Abmessungen in der Nähe sollten in Ordnung sein),
  • Allzweck-Leiterplatte,
  • männlicher und weiblicher Bergstreifen und
  • Buchsen.

Schritt 4:Softwareanforderungen

Beschreibung:Um den Wert von Sensordaten zu sehen, benötigen wir einen privaten Kanal auf thingspeak.com. Wir benötigen Arduino IDE, um Arduino-Code für Arduino Nano zu schreiben. (Ich gehe davon aus, dass ihr einen PC/Laptop und eine WLAN-Route mit Internetzugang besitzt)

Liste der Softwareanforderungen:

  • Privater Kanal auf Thingspeak.com und
  • Arduino-IDE (vorzugsweise neueste Version).

Sie können die neueste Version der Arduino IDE von arduino.cc herunterladen. Lass uns jetzt einen privaten Kanal auf thingspeak.com erstellen.

Schritt 5:Erstellen eines privaten Kanals auf Thingspeak.com

Um einen privaten Kanal auf thingspeak.com zu erstellen, folge diesen Schritten:

  • Öffnen Sie Ihren Webbrowser und gehen Sie zu thingspeak.com und klicken Sie auf die Registerkarte 'Anmelden' in der rechten oberen Ecke (Bild Nr. 1)
  • Geben Sie die Details ein und klicken Sie auf 'Konto erstellen' (Bild Nr. 2)
  • Klicken Sie jetzt auf den Tab "Neuer Kanal" (Bild Nr. 3)
  • Geben Sie erneut die Details für den Kanal ein und aktivieren Sie 4 Felder (da wir 4 Sensorwerte senden), scrollen Sie nach unten und klicken Sie auf die Registerkarte "Kanal speichern" (Bild Nr. 4/5)
  • Klicken Sie auf dieser Seite auf die Registerkarte "API-Schlüssel" und notieren Sie sich Ihren "API-Schlüssel schreiben".

Das ist alles, Leute, jetzt haben Sie Ihren privaten ThingSpeak-Kanal.

Lassen Sie uns nun alle elektronischen Komponenten zusammenbauen.

Schritt 6:Schema für die persönliche Wetterstation

Hier hänge ich ein Bild des Schaltplans für die persönliche Wetterstation an. Ich hänge auch eine Fritzing-Datei für das gleiche an. Die Verbindungen sind ziemlich einfach.

  • BMP180 verbindet sich mit dem I2C-Port von Arduino Nano.
  • LDR ist als Spannungsteiler mit 51 KOhm Widerstand verbunden und die Verbindung ist mit dem A1-Pin von Arduino Nano verbunden.
  • Der Daten-Pin von DHT11 wird mit einem 4,7-KOhm-Widerstand hochgezogen und mit dem A0-Pin von Arduino Nano verbunden.
  • ESP8266s TX und RX verbinden sich mit D10 bzw. D11 von Arduino Nano. CH_PD des ESP8266 wird an eine 3,3-V-Schiene angeschlossen.
  • Stellen Sie den Ausgang des LM2596-Moduls auf 3,3 V ein, indem Sie das Potentiometer an diesem Modul drehen. Verbinden Sie den Ausgang dieses Moduls mit Vcc und Gnd von BMP180, DHT11, LDR und ESP8266s Vcc bzw. Gnd.
  • Der Eingang des LM2596-Moduls erfolgt über einen 12V-2A-Wandadapter, der auch mit Vin und Gnd von Arduino nano verbunden ist.

Wir müssen diese Schaltung auf einer Universalplatine zusammenbauen. Lass uns das tun.

Schritt 7:Zusammenbau der Schaltung auf einer Allzweck-Leiterplatte (GCB)

Hardware-Tools und zusätzliche Artikel aus Schritt 3 sind jetzt im Geschäft.

  • Verwenden Sie den weiblichen Bergstreifen für die Platzierung von Arduino nano und ESP8288 auf dem GCB,
  • Verwenden Sie Lötkolben und Lötdraht, um sie elektrisch mit der Platine zu verbinden,
  • Verwenden Sie Buchsen, um die Reichweite aller Sensoren und des LM2596-Moduls zu erweitern, da sie an Deckel und Wand des Gehäuses geklebt werden,
  • Verwenden Sie männliche Bergstreifen, um Verbindungspunkte für die oben hergestellten weiblichen Verlängerungen zu erstellen
  • Schaltplan auf GCB mit Drähten realisieren (mit Abisolierzange abisolieren) oder Schiene aus geschmolzenem Lötdraht und schließlich
  • Überprüfen Sie die Sortierung, bevor Sie den Stromkreis mit einem Multimeter mit Strom versorgen.

Da nun die gesamte Hardware auf GCB platziert ist, schauen wir uns den Code an.

Schritt 8:Code

Der Code für die persönliche Wetterstation ist ziemlich einfach. Ich habe den Code richtig kommentiert, um die Portabilität zu erleichtern. Bevor Sie den Code brennen, kümmern Sie sich um folgende Dinge.

  • Stellen Sie sicher, dass alle Bibliotheken installiert sind,
  • Ersetzen Sie die Bindestriche durch die SSID Ihres Zugangspunkts (WLAN-Router) in Zeile 14 des Codes,
  • Ersetzen Sie Bindestriche durch das PASSWORT Ihres WLAN-Netzwerks in Zeile 15 des Codes,
  • Ersetzen Sie Bindestriche durch den privaten Kanal Ihres ThingSpeaks, schreiben Sie den API-Schlüssel in Zeile 17 und
  • Stellen Sie während der Programmierung von Arduino nano sicher, dass Ihre 12-V-DC-Versorgung ausgeschaltet ist.

Hier ist der Link zu github (Personal Weather Station) zum Herunterladen von Code und Bibliotheken, die ich verwendet habe.

Jetzt, da wir unsere Hard- und Software installiert haben, fehlt nur noch die Verpackung.

Schritt 9:Vorbereitung des Gehäuses

Jetzt müssen wir Löcher unterschiedlicher Form und Größe auf der 4x4x2 Zoll großen Box machen. Wir müssen Löcher für die DC-Buchse bohren und jede bevorzugte Gehäusewand einschalten. Wir müssen auch Löcher für Sensoren am Deckel des Gehäuses bohren.

Ich habe ein Bild angehängt, das die Abmessungen der Löcher zeigt, die wir am Gehäuse machen müssen.

Verwenden Sie eine heiße Klinge, um durch den Kunststoff zu schneiden.

Verwenden Sie eine Feile, um die Löcher zu glätten.

Jetzt ist Ihr Gehäuse bereit, Ihre Schaltung zu hosten.

Schritt 10:Deckel schließen

Setzen Sie Ihren zusammengebauten GCB in das Gehäuse ein.

Platzieren Sie Schalter und DC-Buchse in den Löchern an der Wand; Sensoren an den Löchern des Deckels. Bestimmen Sie ihre Position und verwenden Sie eine Klebepistole, um sie zu fixieren. Zum Schluss den Deckel mit einem Schraubendreher schließen.

Da haben Sie sie, Ihre persönliche Wetterstation. Schalten Sie die Stromversorgung ein und sehen Sie die Temperatur, Luftfeuchtigkeit, den Druck und die Lichtintensität Ihres Raums von überall auf der Welt über Ihr Smartphone/PC/Laptop/Tablet auf Ihrem privaten ThingSpeak-Kanal.

Das ist alles für dieses Projekt. Kommentieren Sie im Zweifelsfall. Danke fürs Lesen.

Code

  • Code
CodeArduino
#include #include #include #include #define DEBUG 0 // ändere den Wert auf 1, um das Debugging mit dem seriellen Monitor zu aktivieren #define dht_pin A0 // Pin A0 für DHT-Sensor definieren #define lightSensor A1 // Pin A1 als Eingangspin für LDR-Spannungsteiler definieren DHT; Adafruit_BMP085 bmp;SoftwareSerial esp8266Module (10, 11); // RX, TXString-Netzwerk ="----"; // Ihr Zugangspunkt SSIDString password ="-------------"; // Ihr WLAN-Zugangspunkt-Passwort#define IP "184.106.153.149" // IP-Adresse von thingspeak.comString GET ="GET /update?key=----------------"; // Ersetzen Sie mit Ihrem Kanal keyvoid setup () { if (DEBUG) { Serial.begin (9600); // Einstellen der seriellen Hardware-Baudrate auf 9600 } esp8266Module.begin (9600); // Softserial-Baudrate auf 9600 einstellen if (!bmp.begin ()) { if (DEBUG) { Serial.println ( "Kein gültiger BMP085-Sensor gefunden, Verkabelung überprüfen!"); } while (1) {} } delay(2000);}void loop() { setupEsp8266(); DHT.read11(dht_pin); Doppelhumi =DHT.Feuchtigkeit; double bmp_temp =bmp.readTemperature(); double bmp_pressure =bmp.readPressure(); int lightIntensity =analogRead (lightSensor); updateTemp(String(bmp_temp) ,String(lightIntensity),String(bmp_pressure),String(humi)); Verzögerung (30000);} //------------------------------------------ -------------------------- // Folgen Sie der Einrichtung der Funktion esp8266, legen Sie sie in die hergestellte Station ein und // verbinden Sie sich mit dem WLAN-Zugangspunkt.//- -------------------------------------------------- ---------------void setupEsp8266 () { if (DEBUG) { Serial.println ( "esp8266 zurücksetzen"); } esp8266Module.flush(); esp8266Module.println(F("AT+RST")); Verzögerung (7000); if (esp8266Module.find("OK")) {if(DEBUG){Serial.println("OK gefunden"); Serial.println ( "Espmode ändern"); } esp8266Module.flush(); changeMode(); Verzögerung (5000); esp8266Module.flush(); connectToWiFi(); aufrechtzuerhalten. Sonst { if (DEBUG) { Serial.println ( "OK nicht gefunden"); } }} //--------------------------------------------------------- ----------------------// Folgende Funktion setzt esp8266 in den Stationsmodus//---------------- -------------------------------------------------- bool changeMode () { esp8266Module.println (F ( "AT + CWMODE =1")); if (esp8266Module.find("OK")) {if(DEBUG){Serial.println("Modus geändert"); } true zurückgeben; aufrechtzuerhalten. Sonst if (esp8266Module.find ( "KEINE ÄNDERUNG")) { if (DEBUG) { Serial.println ( "Bereits im Modus 1"); } true zurückgeben; aufrechtzuerhalten. Sonst { if (DEBUG) { Serial.println ( "Fehler beim Ändern des Modus"); } falsch zurückgeben; }}//---------------------------------------------------------- ----------------------// Folgende Funktion verbindet esp8266 mit dem WLAN-Zugangspunkt//---------------- -------------------------------------------------- bool connectToWiFi () { if (DEBUG) { Serial.println ( "in connectToWiFi"); } String cmd =F("AT+CWJAP=\""); cmd +=Netzwerk; cmd +=F("\",\""); cmd +=Passwort; cmd +=F("\""); esp8266Module.println(cmd); Verzögerung (15000); if (esp8266Module.find("OK")) {if(DEBUG){Serial.println("Mit Access Point verbunden"); } true zurückgeben; } Else { if (DEBUG) { Serial.println ( "Verbindung zum Access Point konnte nicht hergestellt werden"); } falsch zurückgeben; }}//---------------------------------------------------------- ----------------------// Folgende Funktion sendet Sensordaten an thingspeak.com//---------------- -------------------------------------------------- -void updateTemp(Stringspannung1,Stringspannung2,Stringspannung3,Stringspannung4){ String cmd ="AT+CIPSTART=\"TCP\",\""; cmd +=IP; cmd +="\",80"; esp8266Module.println(cmd); Verzögerung (5000); if(esp8266Module.find("Error")){if(DEBUG){Serial.println("FEHLER beim SENDEN"); } Rückkehr; } cmd =GET + "&field1=" + Spannung1 + "&field2=" + Spannung2 + "&field3=" + Spannung3 + "&field4=" + Spannung4 + "\r\n"; esp8266Module.print("AT+CIPSEND="); esp8266Module.println(cmd.length()); Verzögerung (15000); if (esp8266Module.find(">")) {esp8266Module.print (cmd); if (DEBUG) {Serial.println ( "Daten gesendet"); }} sonst { esp8266Module.println("AT+CIPCLOSE"); if (DEBUG) {Serial.println ( "Verbindung geschlossen"); } }}
Bibliothek und Code für die persönliche Wetterstation
Lesen Sie die Readme-Datei https://github.com/jayraj4021/Personal-Weather-Station-14

Schaltpläne

schematische.fzz

Herstellungsprozess

  1. Wetterstation basierend auf Raspberry Pi
  2. Raspberry Pi 2 Wetterstation
  3. Raspberry Pi Wetterstation
  4. Beteiligen Sie sich mit Ihrer Wetterstation am IOT – CWOP
  5. Wettermonitor
  6. Wetterstation V 2.0
  7. Smart Blinds
  8. MKR1000 an ThingSpeak.com
  9. $10 Portable Arduino Wetterstation (AWS)
  10. eDOT - Arduino-basierte Präzisionsuhr und Wetterstation