Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak

Onderdelen en benodigdheden

Adafruit BMP180 × 1
DHT11 Temperatuur & Vochtigheidssensor (4 pinnen) × 1
LDR (lichtgevoelige weerstand) × 1
Espressif ESP8266 ESP-01 × 1
Arduino Nano R3 × 1
Weerstand 4.75k ohm × 1
Weerstand 51K × 1
LM2596 DC-DC Buck Converter Step-Down Voedingsmodule × 1
DC-jack × 1
Schakelaar × 1
12V-2A wandadapter × 1
PCB × 1
Mannelijke header 40 positie 1 rij (0.1") × 1
Vrouwelijke header 8 positie 1 rij (0.1") × 5
Kunststof doos × 1

Nodige tools en machines

Draadstripper
Lijmpistool (standaard)
Solderbout (standaard)
Schroevendraaier
Vijl (voor handwerk)

Apps en online diensten

Arduino IDE
ThingSpeak API

Over dit project

Intro: Maak een Persoonlijk Weerstation

Je zit in je kamer en begint te zweten of je voelt je verkouden; je vraagt je af wat de temperatuur in je kamer is? Of wat de vochtigheid zou zijn? Dit is me een tijd geleden overkomen.

Dit leidde tot de geboorte van het Persoonlijk Weerstation, dat de temperatuur, vochtigheid, luchtdruk en lichtintensiteit van je kamer meet en uploadt naar een privékanaal op thingspeak.com.

Laten we beginnen.

Stap 1: Snelle video

Hier is een korte video die alles in 5 minuten samengevat. Klik hier om te kijken op YouTube.

Stap 2: Elektronische componenten voor het Persoonlijke Weerstation

Beschrijving: We gebruiken de DHT11 voor vochtigheid, de BMP180 voor temperatuur en luchtdruk, en een lichtgevoelige weerstand (LDR) voor een ruime indicatie van lichtintensiteit. De Arduino Nano verzamelt data van deze sensoren en stuurt deze naar de ESP8266 voor upload naar je privékanaal op thingspeak.com. We voeden de Arduino Nano vanuit een 12V-2A wandadapter, sensoren en ESP8266 ontvangen hun spanning van de LM2596 buck converter.

Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak

Stap 3: Tools en extra items voor het Persoonlijke Weerstation

Beschrijving: We gebruiken een draadstripper voor het afstippen van draden, een vijl voor het gladmaken van snijden/gaten in de behuizing, een lijmpistool voor het fixeren van componenten in de behuizing, een schroevendraaier om het deksel te sluiten en een solderbout met soldeerdraad om de circuit op een universele printplaat (GCB) te monteren. Een 4x4x2 inch kunststof doos fungeert als behuizing. We hebben ook mannelijke en vrouwelijke bergstrips en vrouwelijke connectors nodig voor een correcte montage op de GCB.

Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak

Stap 4: Software-eisen

Beschrijving: Om de sensorwaarden te zien, hebben we een privékanaal op thingspeak.com nodig. We hebben de Arduino IDE nodig om de Arduino-code voor de Arduino Nano te schrijven. (Ik ga ervan uit dat je over een PC/laptop en een WiFi-router met internettoegang beschikt).

  • Privékanaal op Thingspeak.com
  • Arduino IDE (bij voorkeur laatste versie)

Je kunt de nieuwste versie van de Arduino IDE downloaden van arduino.cc. Nu laten we een privékanaal aanmaken op thingspeak.com.

Stap 5: Privékanaal aanmaken op Thingspeak.com

Volg deze stappen om een privékanaal aan te maken:

  1. Open je webbrowser, ga naar thingspeak.com en klik op 'Sign Up' rechtsboven (afbeelding 1)
  2. Vul de gegevens in en klik op 'Create account' (afbeelding 2)
  3. Klik nu op 'New Channel' (afbeelding 3)
  4. Vul weer de kanaaldetails in en activeer 4 velden (we sturen 4 sensorwaarden), scroll naar beneden en klik op 'Save Channel' (afbeelding 4/5)
  5. Op deze pagina klik je op 'API Keys' en noteer je 'Write API Key'
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak

Dat is alles, nu heb je je privékanaal op ThingSpeak.

Stap 6: Schema voor het Persoonlijke Weerstation

Hier is het schema. De verbindingen zijn vrij eenvoudig:

  • BMP180 verbindt met de I2C-poort van de Arduino Nano
  • LDR is aangesloten in spanningsdeler-configuratie met 51 KOhm-weerstand en het knooppunt verbindt met A1-pin van de Arduino Nano
  • DHT11's datapin wordt hoog getrokken met 4.7 KOhm-weerstand en verbindt met A0-pin van de Arduino Nano
  • ESP8266's TX en RX verbinden met D10 en D11 van de Arduino Nano respectievelijk. ESP8266's CH_PD verbindt met 3.3V-rail
  • Stel de LM2596-module uitgang in op 3.3V door de potentiometer op deze module te draaien. Verbind de uitgang van deze module met Vcc en GND van BMP180, DHT11, LDR en ESP8266's Vcc en GND respectievelijk
  • Invoer van LM2596-module komt van 12V-2A wandadapter die ook verbindt met Vin en GND van Arduino Nano
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak

We moeten deze circuit op een universele printplaat (GCB) monteren. Laten we dat doen.

Stap 7: Circuit monteren op Universele Printplaat (GCB)

De hardware-tools en extra items uit stap 3 komen nu aan bod.

  • Gebruik vrouwelijke bergstrip voor plaatsing van Arduino Nano en ESP8266 op GCB
  • Gebruik solderbout en soldeerdraad om ze elektrisch met de print te verbinden
  • Gebruik vrouwelijke connectors om de bereik van alle sensoren en LM2596-module uit te breiden (ze zullen op het deksel en de wand van de behuizing worden geplakt)
  • Gebruik mannelijke bergstrip om aansluitpunten te maken voor de vrouwelijke uitbreidingen
  • Realiseer het schemaschema op GCB met draden (stip ze met draadstripper), of rail van gesmolten soldeerdraad
  • Controleer op kortsluitingen voordat je de circuit onder spanning zet met een multimeter
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak

Stap 8: Code

De code voor het Persoonlijk Weerstation is vrij eenvoudig. Ik heb de code goed gecommentarieerd voor gemakkelijke porteerbaarheid. Voer je de code uit, let dan op het volgende:

  • Zorg dat alle bibliotheken geïnstalleerd zijn
  • Vervang de streepjes door de SSID van je toegangspunt (WiFi-router) in regel 14 van de code
  • Vervang de streepjes door het WACHTWOORD van je WiFi-netwerk in regel 15 van de code
  • Vervang de streepjes door je ThingSpeak privékanaal Write API key in regel 17
  • Tijdens het programmeren van de Arduino Nano, zorg dat je 12V DC-voeding UIT staat

Hier is de link naar GitHub (Persoonlijk Weerstation) voor het downloaden van de code en bibliotheken die ik gebruikte:
https://github.com/jayraj4021/Personal-Weather-Station-14

Stap 9: Behuizing voorbereiden

Nu moeten we gaten van verschillende vormen en maten maken in de 4x4x2 inch doos. We hebben gaten nodig voor de DC-jack en schakelaar op een willekeurige wand van de behuizing. We hebben ook gaten nodig voor de sensoren op het deksel van de behuizing.

Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak

Gebruik een hete mes om door het plastic te snijden. Gebruik een vijl om de gaten glad te maken.

Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak
Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak

Stap 10: Het deksel sluiten

Plaats je gemonteerde GCB in de behuizing. Plaats schakelaar en DC-jack in de gaten in de wand; sensoren in de gaten van het deksel. Finaliseer hun positie en gebruik de lijmpistool om ze te fixeren. Gebruik ten slotte de schroevendraaier om het deksel te sluiten.

Daar heb je het, je Persoonlijk Weerstation. Schakel de voeding in en bekijk de temperatuur, vochtigheid, luchtdruk en lichtintensiteit van je kamer van overal ter wereld via je smartphone/PC/laptop/tablet op je ThingSpeak privékanaal.

Dat was het voor dit project. Laat een reactie achter bij vragen. Bedankt voor het lezen.

Code

CodeArduino
#include <SoftwareSerial.h>
#include <Wire.h>
#include <dht.h>
#include <Adafruit_BMP085.h>

#define DEBUG 0 // verander naar 1 om debuggen via serial monitor in te schakelen
#define dht_pin A0 // definieer pin A0 voor DHT-sensor
#define lightSensor A1 // definieer pin A1 als invoerpin voor LDR-spanningsdeler

dht DHT;
Adafruit_BMP085 bmp;
SoftwareSerial esp8266Module(10, 11); // RX, TX

String network = "----"; // jouw toegangspunt SSID
String password = "-------------"; // jouw WiFi-toegangspunt wachtwoord
#define IP "184.106.153.149" // IP-adres van thingspeak.com
String GET = "GET /update?key=----------------"; // vervang met jouw kanaalsleutel

void setup() {
  if(DEBUG){
    Serial.begin(9600);
  }
  esp8266Module.begin(9600);
  if (!bmp.begin()) {
    if(DEBUG){
      Serial.println("Could not find a valid BMP085 sensor, check wiring!");
    }
    while (1) {}
  }
  delay(2000);
}

void loop() {
  setupEsp8266();
  DHT.read11(dht_pin);
  double humi = DHT.humidity;
  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));
  delay(30000);
}

void setupEsp8266() {
  if(DEBUG){ Serial.println("Reseting esp8266"); }
  esp8266Module.flush();
  esp8266Module.println(F("AT+RST"));
  delay(7000);
  if (esp8266Module.find("OK")) {
    if(DEBUG){ Serial.println("Found OK"); Serial.println("Changing espmode"); }
    esp8266Module.flush();
    changingMode();
    delay(5000);
    esp8266Module.flush();
    connectToWiFi();
  } else {
    if(DEBUG){ Serial.println("OK not found"); }
  }
}

bool changingMode() {
  esp8266Module.println(F("AT+CWMODE=1"));
  if (esp8266Module.find("OK")) {
    if(DEBUG){ Serial.println("Mode changed"); }
    return true;
  } else if(esp8266Module.find("NO CHANGE")){
    if(DEBUG){ Serial.println("Already in mode 1"); }
    return true;
  } else {
    if(DEBUG){ Serial.println("Error while changing mode"); }
    return false;
  }
}

bool connectToWiFi() {
  if(DEBUG){ Serial.println("inside connectToWiFi"); }
  String cmd = F("AT+CWJAP=\"");
  cmd += network;
  cmd += F("\",\"");
  cmd += password;
  cmd += F("\"");
  esp8266Module.println(cmd);
  delay(15000);
  if (esp8266Module.find("OK")) {
    if(DEBUG){ Serial.println("Connected to Access Point"); }
    return true;
  } else {
    if(DEBUG){ Serial.println("Could not connect to Access Point"); }
    return false;
  }
}

void updateTemp(String voltage1, String voltage2, String voltage3, String voltage4) {
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += IP;
  cmd += "\",80";
  esp8266Module.println(cmd);
  delay(5000);
  if(esp8266Module.find("Error")){
    if(DEBUG){ Serial.println("ERROR while SENDING"); }
    return;
  }
  cmd = GET + "&field1=" + voltage1 + "&field2=" + voltage2 + "&field3=" + voltage3 + "&field4=" + voltage4 + "\r\n";
  esp8266Module.print("AT+CIPSEND=");
  esp8266Module.println(cmd.length());
  delay(15000);
  if(esp8266Module.find(">")) {
    esp8266Module.print(cmd);
    if(DEBUG){ Serial.println("Data sent"); }
  } else {
    esp8266Module.println("AT+CIPCLOSE");
    if(DEBUG){ Serial.println("Connection closed"); }
  }
}
Bibliotheek en code voor Persoonlijk Weerstation

Bekijk de Readme: https://github.com/jayraj4021/Personal-Weather-Station-14

Schema's

Bouw een Betrouwbaar Persoonlijk Weerstation met Arduino, ESP8266 en ThingSpeak

schematic.fzz

Productieproces

  1. DIY Zonne-energie Weerstation Met Raspberry Pi
  2. Een buitenweerstation bouwen met Raspberry Pi 2 en ADS-WS1
  3. Een Raspberry Pi-weerstation bouwen dat dagelijkse weergegevens e-mailt
  4. Uw weerstation integreren met CWOP: Een praktische gids
  5. Weerstation – DIY Raspberry Pi Weerstation met Dropbox-upload
  6. Geavanceerd Weerstation v2.0: Real-time Temperatuur, Druk, Vochtigheid & Hoogte Monitoring
  7. Slimme Jaloezieën: Geautomatiseerd Lichtbeheer met Arduino & Zonne-energie
  8. DHT11-sensorgegevens uploaden naar ThingSpeak met Arduino MKR1000
  9. Bouw een $10 Draagbare Arduino Weerstation (AWS) – Eenvoudige DIY met Nano, DHT22, BMP180 & LCD
  10. eDOT: Precieze Arduino-klok & weerstation met ingebouwde IR-remote
  11. Realtime Weerstation met Arduino & ThingSpeak IoT