Inhoudsopgave:

Weersvoorspellingsklok met behulp van oud alarm en Arduino 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Weersvoorspellingsklok met behulp van oud alarm en Arduino 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"

Video: Weersvoorspellingsklok met behulp van oud alarm en Arduino 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"

Video: Weersvoorspellingsklok met behulp van oud alarm en Arduino 13 stappen (met afbeeldingen) Antwoorden op al uw
Video: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, Juli-
Anonim
Weersvoorspellingsklok met oud alarm en Arduino
Weersvoorspellingsklok met oud alarm en Arduino
Weersvoorspellingsklok met oud alarm en Arduino
Weersvoorspellingsklok met oud alarm en Arduino

Ik had een kapotte wekker liggen en kwam op het idee om deze om te bouwen tot klok en weersvoorspellingsstation.

Voor dit project heb je nodig:

  • Oude ronde wekker
  • Arduino Nano
  • BME280 sensormodule (temperatuur, vochtigheid, druk)
  • LCD-displaymodule van Nokia 5110
  • DS1307 RTC-klok
  • TP4056 Lithium-acculader
  • Oude Li-ion batterij geborgen uit mobiele telefoon
  • Kleine 3.7v tot 5v boostermodule
  • Lichtafhankelijke weerstand (LDR - lichtmeter)
  • Zoemer (gebruikte geborgen van oude pc)
  • 3 drukknoppen
  • Een stel weerstanden (2x10k, 270 ohm) en een transistor (2N2222A of vergelijkbaar)
  • Een of andere brede krimpbuis
  • schroot-PCB te gebruiken als frontplaatdecoratie
  • Micro-USB-verlengkabel (zowel vrouwelijke als mannelijke kanten zijn Micro-USB)
  • Prototypebord van 2x8 cm en enkele draden

Stap 1: Alles demonteren

Alles demonteren
Alles demonteren

Eerst heb ik de oude klok gedemonteerd. Bellen, motor, kapot klokmechanisme…

Stap 2: Knoppen voor digitale instellingen

Knoppen voor digitale instellingen
Knoppen voor digitale instellingen
Knoppen voor digitale instellingen
Knoppen voor digitale instellingen
Knoppen voor digitale instellingen
Knoppen voor digitale instellingen
Knoppen voor digitale instellingen
Knoppen voor digitale instellingen

Omdat de nieuwe klok volledig digitaal zal zijn met een mini-computer erin, heb ik 3 eenvoudige, mooi uitziende knoppen aan de zijkant toegevoegd.

Met behulp van een stukje aluminium heb ik de overlay uitgesneden om een label te maken. De letters voor de labels zijn gemaakt met behulp van de letterponsen en een zwarte stift.

Stap 3: Condensator voor de motor

Condensator voor de motor
Condensator voor de motor

Ik bewaar de oude klokken om het alarm met de motor van stroom te voorzien. Het oude kapotte klokmechanisme had een keramische condensator met het label 104. Ik heb deze van de printplaat verwijderd en rechtstreeks op de motor gesoldeerd - dit zal stroompieken helpen voorkomen bij het inschakelen van de motor tijdens het alarm. Ook belangrijk om op te merken is dat de motor via een transistor wordt bestuurd, maar hierover later meer.

Stap 4: Nieuw gezicht voor de klok

Nieuw gezicht voor de klok
Nieuw gezicht voor de klok
Nieuw gezicht voor de klok
Nieuw gezicht voor de klok

Omdat ik besloot een nieuw gezicht voor de klok te maken, nam ik een printplaat van mijn afvalberg en gebruikte een bouwhittepistool om snel alle componenten te verwijderen. Het gat in het midden is gemaakt voor het digitale scherm van de nieuwe klok.

Stap 5: Digitaal display van oude mobiele telefoon

Digitaal display van oude mobiele telefoon
Digitaal display van oude mobiele telefoon
Digitaal display van oude mobiele telefoon
Digitaal display van oude mobiele telefoon

Voor dit project heb ik besloten om een LCD-scherm van de oude Nokia 5110 mobiele telefoon te gebruiken. Deze schermen zijn breed verkrijgbaar als module, ze verbruiken heel weinig stroom en er zijn goede bibliotheken voor de Arduino. Als je een nieuwe module met 5110-scherm koopt, red je de planeet omdat alle nieuwe modules zijn gemaakt van geborgen 5110-, 3110- en 3210-telefoons!

Stap 6: De circuits aansluiten

De circuits aansluiten
De circuits aansluiten
De circuits aansluiten
De circuits aansluiten
De circuits aansluiten
De circuits aansluiten

Je had misschien al geraden dat ik van plan was om het Arduino-bord te gebruiken om deze klok te besturen. Het project is gemakkelijk herhaalbaar, zelfs voor beginnende Arduino-fans, omdat ik mijn eigen printplaten niet heb gemaakt. Het is een Arduino Nano-bord met daarop aangesloten modules - BME280 temperatuur-, druk- en vochtigheidssensor, DS1307 RTC-klok, TP4056 Lithium-batterijlader, kleine 3.7v tot 5v boostermodule, Light Dependent Resistor (LDR - lichtmeter) en een zoemer (overgenomen van de oude pc).

Kijk ook eens naar de schetsen - ze tonen alle verbindingen. Ik denk dat alles heel gemakkelijk te lezen en te begrijpen is, maar als je vragen hebt, stel ze dan gewoon in de reacties hieronder.

Enkele opmerkingen over de opstelling:

  • Motor is rechtstreeks aangesloten vanaf de batterij via de transistor. Arduino bestuurt de transistor via weerstand en PWM-pin D5.
  • Pinnen D7-12 worden gebruikt voor LCD-connector. Massa en VCC zijn verbonden met de rail op het verbindingsbord.
  • LDR werd op de wijzerplaat geïnstalleerd en weerstand + 3 uitgaande draden werden direct op de achterkant van de wijzerplaat gesoldeerd.
  • Voor knopverbinding gebruikte ik de interne PULLUP-functie in Arduino. De Menu-knop is aan de interrupt gekoppeld en ik realiseerde me pas later dat je ook interne PULLUP voor de interrupt kunt gebruiken. De interrupt voor de Menu-knop is vereist, zodat de code niet de hele tijd de status van de knoppen scant.
  • De klok zal ook de status van de batterij controleren en weergeven, zodat de batterij rechtstreeks is aangesloten op pin A0. De batterijspanning is nooit hoger dan 4,2 V, dus het is veilig om de batterij rechtstreeks op de Arduino analoge pin aan te sluiten.
  • Zoemer is direct aangesloten op PWM-pin D6. Hoewel dit geen goede gewoonte is, kwam ik ermee weg omdat Arduino Nano hogere specificaties aankon dan vermeld en ook omdat de zoemer niet continu werkt. Dezelfde opstelling zou gemakkelijk de pinnen op ESP-kaarten verbranden, dus in die gevallen raad ik aan om de transistorbesturing te gebruiken.
  • De klok had al een schakelaar, dus ik besloot die te gebruiken. Aan de achterkant ziet het er natuurlijk uit.

Stap 7: Junction Board voor eenvoudige verbindingen

Junction Board voor eenvoudige verbindingen
Junction Board voor eenvoudige verbindingen
Junction Board voor eenvoudige verbindingen
Junction Board voor eenvoudige verbindingen

Alle modules hebben positieve en aardverbindingen nodig, dus ik besloot om een prototypebord van 2x8 cm te gebruiken en daarop 5V- en grondrails te solderen. Ik heb daar ook een kleine I2C-rail gemaakt, omdat ik verschillende modules had met een I2C-interface.

Aan de andere kant heb ik standaard pinnen gesoldeerd, zodat ik de modules indien nodig kon aansluiten en loskoppelen.

Sommige van de extra componenten zijn daar ook gesoldeerd, zoals een transistor en weerstand voor motorbesturing en een weerstand voor de menuknop die Interrupt gebruikt. Ik heb de schema's in het vorige gedeelte laten zien.

btw Kun je de LDR-sensor al op de wijzerplaat zien op de eerste foto?

Stap 8: De stroom instellen

De stroom instellen
De stroom instellen

Ik heb een oude lithium-ionbatterij van mijn mobiele telefoon gebruikt om deze klok van stroom te voorzien. Gewoonlijk hebben de batterijen van de mobiele telefoon die worden vervangen nog een goede capaciteit (ten minste de helft van wat het was toen het nieuw was). Hun voordeel is dat ze een ingebouwd ontladingsbeveiligingscircuit hebben en ze zijn ook erg dun, zodat ze kunnen worden gebruikt in scenario's met een kleine ruimte.

Om de batterij aan te sluiten soldeer je eenvoudig de draden aan de + en - pinnen op de batterij. Maak je geen zorgen, je zult de cel niet beschadigen omdat er een controller is en wat lege ruimte tussen de pinnen en de chemicaliën van de cel.

Op deze foto ziet u de batterij en ook de TP4056-laadcontroller en de 5V-booster die met elkaar en met de batterij zijn verbonden. Ik gebruikte wat krimpfolie om alles geïsoleerd en compact te maken.

Stap 9: Micro-USB voor opladen en bijwerken van firmware

Micro-USB voor opladen en bijwerken van firmware
Micro-USB voor opladen en bijwerken van firmware

Nadat ik alles had gesoldeerd, lijmde ik de zoemer en temperatuur / druk / vochtigheidssensor op het achterpaneel. Ze pasten allemaal mooi in de bestaande sleuven van oude wijzerplaten.

Het was nu tijd om de Micro USB-poort aan de achterkant te installeren. Waarom Micro USB als Nano Mini USB gebruikt? Simpelweg omdat in het huishouden de meeste USB-kabels van mobiele telefoons zijn en het zou handig zijn als de klok dat ook zou kunnen opnemen.

Omdat ik het zowel voor het opladen als voor het bijwerken van de klok- en weerstationfuncties wilde gebruiken, heb ik de USB-kabel gestript, de stroomdraden door de TP4056-oplader en Data+/Data- draden rechtstreeks naar de USB-aansluiting van Arduino Nano geleid. Je kunt dit zien op het schema dat ik in eerdere secties heb laten zien.

Stap 10: Eindmontage

Eindmontage
Eindmontage
Eindmontage
Eindmontage
Eindmontage
Eindmontage

Het was nu tijd om alles weer in de originele klok te stoppen. Ik gebruikte krimpkous om componenten en modules te isoleren. Zelfs de Arduino was verpakt in krimpkous.

Plaats de muisaanwijzer op de eerste foto om te zien waar elk onderdeel is geplaatst.

Stap 11: De code

Zoals u kunt zien, is de klok van binnen volledig ingepakt. Dit maakte het mogelijk om iets geavanceerder te maken dan de oude klok die ik had - gezien het feit dat er natuurlijk wat programmeervaardigheden zijn. Ik schreef de eerste code, maar vroeg mijn vriend om in te grijpen en me te helpen.

Tot nu toe zijn dit, naast de klok zelf, de functies die dit project al ondersteunt:

  • Tijd- en datumweergave (evenals tijd en activering van alarm op hetzelfde scherm)
  • Scherm licht op in donkere omstandigheden of wanneer beweging wordt gedetecteerd (op basis van lichtwisselingen)
  • Weersvoorspelling (zonnig, bewolkt, regenachtig)
  • Weergave van temperatuur, druk en luchtvochtigheid (bij luchtvochtigheid wordt aangegeven of het te droog is)
  • Menu voor instellingen: alarm, tijd wijzigen, datumweergave in-/uitschakelen, geluidsmeldingen voor weersverandering in-/uitschakelen en schakelen tussen Engelse en metrische eenheden
  • Alarminstellingen - aan/uit, tijd instellen, melodie en/of bellen voor meldingen instellen

Laatste code:

De code zal in de toekomst worden bijgewerkt met nieuwe functies, dus kom regelmatig terug voor firmware-updates:-)

Als de Arduino-wereld nieuw voor je is, zijn dit de stappen die ik zou aanraden om te doen:

  • Installeer een USB-stuurprogramma voor uw bord (bijv. CH340)
  • Arduino IDE installeren
  • Bibliotheken installeren die in dit project worden gebruikt
  • Download van GitHub en upload de nieuwste projectcode naar de klok met behulp van een micro-USB-kabel (u kunt er een gebruiken vanaf een mobiele telefoon)

Het voorspellingsalgoritme is het volgende:

Arduino Nano krijgt elke 12 minuten nieuwe gegevens van de BME280-sensor. De meetcyclus is 3 uur. Na 3 uur verschuift het bereik van de drukbewaking (max en min waarde gedurende 3 uur) ten opzichte van de gemiddelde waarden tijdens het huidige bereik en de huidige drukwaarde. Elk uur wordt de richting van de drukverandering met de huidige drukwaarde opgeslagen. kPa-eenheden worden gebruikt voor de berekening van de prognose.

Vanwege geheugenbeperkingen van Nano moest het voorspellingsalgoritme worden vereenvoudigd. Maar ondanks vereenvoudigingen is het in staat om neerslag in de komende 12-24 uur te voorspellen, hoewel de voorspelling nu pessimistischer is - de standaardwaarde is "Bewolkt weer".

"Sunny Weather" - de huidige drukwaarde is 7 punten hoger dan de norm, de druk daalt niet en het verschil tussen de minimum- en maximumwaarden gedurende de laatste 3 uur is niet meer dan 2 punten.

Mogelijke neerslag "Regenachtig weer" - de huidige druk is 15 punten lager dan de norm en het verschil tussen de min en max waarden is meer dan 2 punten OF de druk daalt en het verschil tussen de huidige waarde en de norm is 3 - 30 punten.

Om de kwaliteit van de prognoses te verbeteren, wordt aanbevolen om uw "hoogte" in het hoofdcodebestand te wijzigen. U kunt uw hoogte bijvoorbeeld hier opvragen:

Stap 12: Stapsgewijze video

Image
Image

Als het moeilijk was om te volgen wat ik hierboven heb gedaan, is hier ook een videoversie met alle getoonde stappen.

Stap 13: Laatste woorden

Over het algemeen is de moeilijkheidsgraad van dit project naar mijn mening niet hoog en zou iedereen het kunnen halen. Als je geen oude klok hebt, kun je er een goedkoop vinden op een plaatselijke vlooienmarkt.

Alle componenten zijn lage prijs en zijn beschikbaar op Sparkfun/Aliexpress/eBay/Amazon.

Ik hoop dat deze tutorial interessant voor je was en zou het op prijs stellen als je mijn eerste Instructable in the Clock-wedstrijd zou kunnen steunen.

Klokken wedstrijd
Klokken wedstrijd
Klokken wedstrijd
Klokken wedstrijd

Tweede plaats in de klokkenwedstrijd

Aanbevolen: