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

Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit

Onderdelen en Benodigdheden

Arduino Due × 1
3.2" TFT HX8357C Display × 1
DS3231 Real Time Clock Module × 1
DHT22 Temperatuursensor × 1
SparkFun Transceiver Breakout - nRF24L01+ × 1
Breadboard (generiek) × 1
Male-Header 36 Positie 1 Rij - Lang (0.1") × 1
Jumper wires (generiek) × 1
Arduino Nano R3 × 1
Xiaomi Powerbank × 1

Over Dit Project

Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit

Het bouwen van een draadloos weerstation is een geweldige leerervaring. Wanneer je dit project af hebt, heb je een beter begrip van hoe draadloze communicatie werkt, hoe sensoren functioneren en hoe krachtig het Arduino-platform kan zijn. Met dit project als basis en de opgedane ervaring, zul je in de toestand zijn om gemakkelijk complexere projecten te bouwen.

Een weerstation is een apparaat dat data verzamelt over het weer en de omgeving met behulp van verschillende sensoren. We kunnen veel dingen meten zoals:

  • Temperatuur
  • Luchtvochtigheid
  • Wind
  • Luchtdruk
  • UV-index
  • Regenval

In het weerstation dat we gaan bouwen, meten we temperatuur en luchtvochtigheid op twee locaties en tonen we de actuele datum en tijd. Een weerstation bouwen is extreem makkelijk. Maar kan een maker een eenheid bouwen met een kleur TFT-display en functies die overeenkomen met een commercieel apparaat? Het antwoord is JA! Met de kracht van open source software en hardware kan iedereen dit indrukwekkende weerstation eenvoudig bouwen!

Het project bestaat uit twee delen: de zender en de ontvanger.

De zender meet temperatuur en luchtvochtigheid en stuurt de data draadloos naar de ontvanger. De ontvanger meet temperatuur en luchtvochtigheid, ontvangt de data van de remote sensor en toont alles op een groot kleuren TFT-display.

Laten we dit project bouwen!

Stap 1: Alle Onderdelen Verzamelen

Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit

De benodigde onderdelen voor dit project:

  • Arduino Due ▶ https://educ8s.tv/part/ArduinoDue
  • Arduino Mega ▶ https://educ8s.tv/part/ArduinoMega
  • Arduino Nano ▶ https://educ8s.tv/part/ArduinoNano
  • 3.2" TFT display ▶ https://educ8s.tv/part/32TFT
  • DHT22 ▶ https://educ8s.tv/part/DHT22
  • NRF24L01 ▶ https://educ8s.tv/part/NRF24L01
  • DS3231 RTC ▶ https://educ8s.tv/part/DS3231
  • Breadboard ▶ https://educ8s.tv/part/SmallBreadboard
  • Draadjes ▶ https://educ8s.tv/part/Wires
  • Header Pins ▶ https://educ8s.tv/part/HeaderPins
  • Xiaomi Powerbank ▶ https://educ8s.tv/part/Powerbank

De kosten van het project liggen rond de $40. Je kunt de kosten met $5 verlagen als je de Arduino Mega gebruikt in plaats van de Arduino Due. Ik koos voor de Due voor de ontvanger omdat hij heel snel is en veel geheugen heeft. Dat zal in de toekomst erg handig zijn wanneer we meer functies toevoegen.

Stap 2: Temperatuur- en Luchtvochtigheidssensor - DHT22

Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit

De DHT22 is een zeer populaire temperatuur- en luchtvochtigheidssensor. Hij is goedkoop, gemakkelijk te gebruiken, en de specificaties claimen goede precisie en accurate.

De DHT-sensoren bestaan uit twee delen: een capacitieve luchtvochtigheidssensor en een thermistor. Er zit ook een chip in die analoge-naar-digitale conversie doet en een digitaal signaal uitgeeft met temperatuur en luchtvochtigheid. Het digitale signaal is vrij eenvoudig uit te lezen met elke microcontroller.

Kenmerken van de DHT22

  • Lage kosten
  • 3 tot 5V voeding en I/O
  • 2.5mA max stroomverbruik tijdens conversie
  • 0-100% luchtvochtigheid met 2-5% nauwkeurigheid
  • -40 tot 125°C temperatuur met ±0.5°C nauwkeurigheid
  • Traag

De aansluiting op de Arduino is extreem eenvoudig. Verbind de sensorpin met het + teken met de 5V of 3.3V uitgang van de Arduino. Verbind de - pin met GROUND. Ten slotte verbind de OUT pin met een willekeurige digitale pin van de Arduino.

Om de DHT22 te gebruiken met Arduino, heb je de DHT-bibliotheek nodig: https://github.com/adafruit/DHT-sensor-library

Stap 3: De DS3231 Real Time Clock Module

Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit

De DS3231 Real-Time Clock module is, zoals de naam suggereert, een real-time klok. Met zijn batterij kan hij jarenlang de tijd bijhouden omdat het minimalistisch verbruik heeft. De module kost ongeveer $2 inclusief batterij! We gebruiken hem om de tijd in ons Weerstation Project bij te houden.

Stap 4: NRF24L01+ - Draadloze Modules

Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit

De NRF24L01 module is een goedkope bidirectionele transceiver-module. De kosten zijn minder dan $3! Het werkt op het 2.4GHz band en kan een datarate van 2Mbits halen! Indrukwekkend toch? Het gebruikt de SPI-interface om te communiceren met Arduino, dus het is heel gemakkelijk te gebruiken. We moeten 7 van de 8 pinnen van de module aansluiten om het met Arduino te laten werken.

Helaas past de module niet in het breadboard, dus we gebruiken male-to-female draadjes om de module met Arduino te verbinden. Pin 1 van de module is GND – verbind met Arduino Ground. Pin 2 is Vcc – verbind met de 3.3V uitgang van de Arduino Uno. Let op! Verbind niet met 5V of je vernietigt de module! Pin 3 is CE en kan met elke digitale pin verbonden worden. In dit voorbeeld gebruik ik digitale pin 7. Pin 4 is CS en kan ook met elke digitale pin; ik gebruik pin 8. Pin 5 is SCK naar digitale pin 13 van de Arduino Uno. Pin 6 is MOSI naar digitale pin 11, en pin 7 is MISO naar digitale pin 12. Dat is het!

Om de module gemakkelijk met Arduino te gebruiken, heb je deze bibliotheek nodig: https://github.com/TMRh20/RF24

Als je de NRF24L01+ modules nog nooit hebt gebruikt, bekijk dan de bijgevoegde video om te zien hoe je het gebruikt door een simpel project te bouwen. Dat helpt je begrijpen hoe het werkt.

Stap 5: De Zender Bouwen

Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit

Laten we eerst de zender bouwen. Het is heel simpel.

Voor de zender gebruiken we:

  • Een Arduino Nano
  • Een DHT22 sensor
  • Een NRF24L01+ draadloze module
  • Een breadboard
  • Wat draadjes

Verbind de uitgangspin van de sensor met digitale pin 4 van de Arduino Nano. Verbind Ground en Vcc en we zijn klaar. Nu hoeven we alleen nog de NRF24L01 draadloze module aan te sluiten.

Sluit hem aan met de pinnen zoals getoond in de derde afbeelding. Voor meer details, bekijk de gedetailleerde video in de vorige stap.

Dat is het, je zender is klaar. Laten we nu doorgaan met de ontvanger.

Stap 6: De Ontvanger Bouwen

Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit

Om de ontvanger te bouwen, hebben we de volgende onderdelen nodig:

  • Een Arduino Due of Mega
  • Een DS3231 Real Time Clock module
  • Een DHT22 Temperatuur- en Luchtvochtigheidssensor
  • Een NRF24L01+ Draadloze module
  • Een 3.2" Kleur TFT display
  • Een breadboard
  • 7 header pins
  • Wat draadjes

Allereerst buigen we 7 header pins en plaatsen ze op enkele Arduino Due pinnen. We hebben er een voor Ground en een voor 3.3V nodig. Twee voor de I2C-pinnen. De overige 3 voor digitale pinnen 6 tot 8. We moeten ook drie draden solderen aan de hardware SPI-pinnen van de Arduino Due: MOSI, MISO en SCK. Controleer het schema zorgvuldig. Verbind de draden met de header pins en we zijn klaar om het display aan te sluiten.

De DS3231 aansluiten

  • VCC pin op Arduino's 3.3V uitgang
  • GND pin naar Arduino's GND
  • SDA (Serial Data Line) pin naar Arduino's SDA pin
  • SCL (Serial Clock Line) pin naar Arduino's SCL pin

De DHT22 Sensor aansluiten

  • VCC pin op Arduino's 3.3V uitgang
  • GND pin naar Arduino's GND
  • Uitgangspin naar Arduino's digitale pin 8

De NRF24L01 module aansluiten

  • GND pin naar Arduino's GND
  • VCC pin naar Arduino 3.3V
  • 3e pin naar Arduino's digitale pin 6
  • 4e pin naar Arduino's digitale pin 7
  • 5e pin naar SCK pin die we gesoldeerd hebben
  • 6e pin naar MOSI pin die we gesoldeerd hebben
  • 7e pin naar MISO pin die we gesoldeerd hebben

Stap 7: De Zender Code

Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit

Allereerst moeten we de RF24-bibliotheek downloaden om ons leven makkelijker te maken bij het werken met de NRF24L01 draadloze modules. We hebben ook de DHT-bibliotheek nodig voor de DHT22 sensor.

  • DHT22 Bibliotheek: https://github.com/adafruit/DHT-sensor-library

Laten we eerst de zender-code bekijken. Hij stuurt een simpele datastructuur uit die twee floats bevat: de temperatuur en de luchtvochtigheid.

Om een communicatielink tot stand te brengen, moeten we een "pipe" creëren tussen de twee modules. Die pipe heeft een adres nodig. Beide modules moeten naar dezelfde pipe schrijven en lezen om te communiceren. Dat is het eerste wat we in onze code definiëren. We zetten het pipe-adres op "0". Vervolgens definiëren we het kanaal waarop we willen communiceren. De NRF24L01 chip ondersteunt 126 verschillende kanalen. Beide modules moeten hetzelfde kanaal gebruiken. In dit voorbeeld gebruik ik kanaal 115. Vervolgens definieer ik dat ik de maximale zendkracht wil gebruiken die de module biedt. Het verbruikt meer stroom maar vergroot het bereik. Vervolgens definieer ik de datasnelheid van de transmissie. Ik zet het op 250Kbps wat de laagst mogelijke datasnelheid is om een beter bereik te bereiken. De volgende stap is de pipe openen om later naar te schrijven.

In de loop-functie lezen we de temperatuur- en luchtvochtigheidswaarden van de sensor, slaan die data op in de datastructuur en sturen we de datastructuur door te schrijven naar de pipe. Dat is het. Je kunt de code vinden in de bijlagen van deze tutorial.

FU361QHIQFCEYSE.ino

Stap 8: De Ontvanger Code

Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit

Laten we nu de ontvanger-code bekijken. We hebben 4 bibliotheken nodig. Allereerst moeten we de bibliotheek voor het display downloaden via deze link:

DISPLAY Bibliotheek: https://github.com/Bodmer/TFT_HX8357_Due

Na het downloaden van de bibliotheek, moet je het User_Setup.h bestand openen. Comment regel 13 uit en uncomment regel 14, omdat het display dat we hebben de HX8357C driver gebruikt. Nu kunnen we doorgaan met de 3 andere bibliotheken. We hebben er een voor de real-time klok, een voor de DHT22 sensor en er een voor de draadloze module.

  • NRF24L01: https://github.com/TMRh20/RF24
  • DHT22: https://github.com/adafruit/DHT-sensor-library
  • DS3231: https://github.com/SodaqMoja/Sodaq_DS3231

Laten we eens kijken naar de code. Het eerste wat we moeten doen is de tijd instellen op de real-time klok module als die nog niet ingesteld is. Om dat te doen, voer de huidige datum en tijd in de setRTCTime functie, uncomment de setRTCTime functie-aanroep op regel 54 en upload het programma naar Arduino. Nu is de tijd ingesteld. Maar dan moeten we de setRTCTime aanroep weer uitcommentariëren en het programma nog een keer uploaden.

De code van de ontvanger werkt als volgt. In de setup-functie initialiseren we alle sensoren en modules en printen we de User Interface. Dan, in de loop-functie, controleren we continu op nieuwe draadloze data. Als er nieuwe data is, slaan we die op in variabelen en printen we ze op het display. We lezen de temperatuur en luchtvochtigheid één keer per minuut en we updaten het display alleen als er een verandering is in de waarden. Op die manier verminderen we het flikkeren van het display nog meer! Ik heb ook een versie van de code voorbereid met de temperatuur in graden Fahrenheit. Je kunt beide versies van de code vinden in de bijlagen van deze tutorial.

F053BTXIQFCEZ09.ino FNV3X4LIQFCEZ0C.ino

Stap 9: Het Project Testen

Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit
Arduino Draadloze Weerstation: DIY Draagbare Weer Monitoring Kit

De laatste stap is alles aan de stroom zetten en kijken of alles werkt zoals verwacht. Als dat zo is, wordt bovenaan het display de huidige datum en tijd getoond. Aan de onderkant van het display zie je de temperatuur en luchtvochtigheid van zowel de remote als de lokale sensor.

Als er geen data getoond wordt voor de remote sensor, verplaats de zender dichterbij – hij kan buiten bereik zijn. Als het probleem aanhoudt, controleer alle verbindingen nog een keer – er moet ergens iets mis zijn.

Zoals je kunt zien, is dit project een geweldige demonstratie van wat open source hardware en software kan. Binnen een paar uur kan iemand zo'n indrukwekkend project bouwen! Natuurlijk is dit slechts het begin. We kunnen nog veel meer functies toevoegen. Ik zal binnenkort een knop toevoegen, zodat we grafieken kunnen tonen en verschillende modi hebben. We kunnen ook meer sensoren toevoegen, datalogging, internetverbinding, enz. We gebruiken de Arduino Due, dus we hebben genoeg geheugen om veel meer dingen te implementeren. Ik zou graag je mening horen over dit project. Hoe wil je dat het evolueert? Plaats je reacties of ideeën in de commentaren hieronder!

Als je meer details wilt, bekijk de YouTube-video in de introductie of bezoek mijn website. Bedankt voor het bekijken!

Code

Github

Productieproces

  1. Een buitenweerstation bouwen met Raspberry Pi 2 en ADS-WS1
  2. Een Raspberry Pi-weerstation bouwen dat dagelijkse weergegevens e-mailt
  3. Geavanceerd Weerstation v2.0: Real-time Temperatuur, Druk, Vochtigheid & Hoogte Monitoring
  4. Arduino Digitale Dobbelsteen: Bouw Je Eigen LCD-willekeurige Getalgenerator
  5. Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding
  6. Find Me: Slimme Item Locator met Arduino en Bluetooth
  7. Bouw een Functionele, Arduino-aangedreven 3D-geprinte Robotarm – Stap-voor-Stap Handleiding
  8. DIY Arduino Luchtbevochtiger Controller met Relais – Veilige Hoogspanningsopstelling
  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. NeoPixel Matrix Pong op Arduino Nano: Bouw je eigen neon Pong-spel