Innholdsfortegnelse:

Værmeldingsklokke ved bruk av gammel alarm og Arduino: 13 trinn (med bilder)
Værmeldingsklokke ved bruk av gammel alarm og Arduino: 13 trinn (med bilder)

Video: Værmeldingsklokke ved bruk av gammel alarm og Arduino: 13 trinn (med bilder)

Video: Værmeldingsklokke ved bruk av gammel alarm og Arduino: 13 trinn (med bilder)
Video: Голубая стрела (1958) фильм 2024, Juli
Anonim
Værmeldingsklokke ved bruk av gammel alarm og Arduino
Værmeldingsklokke ved bruk av gammel alarm og Arduino
Værmeldingsklokke ved bruk av gammel alarm og Arduino
Værmeldingsklokke ved bruk av gammel alarm og Arduino

Jeg hadde en ødelagt vekkerklokke liggende og kom på en idé om å konvertere den til klokke- og værmeldingsstasjon.

For dette prosjektet trenger du:

  • Gammel sirkulær vekkerklokke
  • Arduino Nano
  • BME280 sensormodul (temp, fuktighet, trykk)
  • LCD -displaymodul fra Nokia 5110
  • DS1307 RTC klokke
  • TP4056 litiumbatterilader
  • Gammelt Li-ion-batteri berget fra mobiltelefonen
  • Liten 3,7v til 5v booster -modul
  • Lysavhengig motstand (LDR - lysmåler)
  • Summer (brukt reddet fra gammel PC)
  • 3 trykknapper
  • En haug med motstander (2x10k, 270 ohm) og en transistor (2N2222A eller lignende)
  • Noen brede krympeslanger
  • skrap -PCB som dekorasjon på frontplaten
  • Mikro-USB-forlengelseskabel (både hunn- og hannsiden er mikro-USB)
  • 2x8cm prototypebrett og noen ledninger

Trinn 1: Demonter alt

Demonter alt
Demonter alt

Først demonterte jeg den gamle klokken. Klokker, motor, ødelagt klokkemekanisme …

Trinn 2: Knapper for digitale innstillinger

Knapper for digitale innstillinger
Knapper for digitale innstillinger
Knapper for digitale innstillinger
Knapper for digitale innstillinger
Knapper for digitale innstillinger
Knapper for digitale innstillinger
Knapper for digitale innstillinger
Knapper for digitale innstillinger

Siden den nye klokken vil være helt digital med en minidatamaskin inne, la jeg til 3 enkle knapper på siden.

Ved å bruke et stykke aluminiumsbit, kuttet jeg ut et overlegg for å lage en etikett. Bokstavene for etikettene ble opprettet ved hjelp av bokstavstansene og en svart markør.

Trinn 3: Kondensator for motoren

Kondensator for motoren
Kondensator for motoren

Jeg beholder de gamle klokkene for å slå på alarmen med motoren. Den gamle ødelagte klokkemekanismen hadde en keramisk kondensator med etiketten 104. Jeg fjernet den fra kretskortet og loddet den direkte til motoren - dette vil bidra til å forhindre strømspiker når motoren slås på under alarm. Det er også viktig å merke seg at motoren vil bli styrt gjennom transistor, men mer om dette senere.

Trinn 4: Nytt ansikt for klokken

Nytt ansikt for klokken
Nytt ansikt for klokken
Nytt ansikt for klokken
Nytt ansikt for klokken

Siden jeg bestemte meg for å lage et nytt ansikt for klokken - tok jeg et kretskort fra min søppelbunke og brukte en bygningsvarme til raskt å fjerne alle komponenter. Hullet i midten er laget for den digitale skjermen til den nye klokken.

Trinn 5: Digital skjerm fra gammel mobiltelefon

Digital skjerm fra gammel mobiltelefon
Digital skjerm fra gammel mobiltelefon
Digital skjerm fra gammel mobiltelefon
Digital skjerm fra gammel mobiltelefon

Til dette prosjektet bestemte jeg meg for å bruke en LCD -skjerm fra en gammel Nokia 5110 mobiltelefon. Disse skjermene er allment tilgjengelige for salg som en modul, de trekker veldig lite strøm og det er gode biblioteker for Arduino. Hvis du kjøper en ny modul med 5110 -skjerm - du redder planeten fordi alle nye moduler er laget av bergede 5110-, 3110- og 3210 -telefoner!

Trinn 6: Koble til kretsene

Koble til kretsene
Koble til kretsene
Koble til kretsene
Koble til kretsene
Koble til kretsene
Koble til kretsene

Du har kanskje allerede gjettet at jeg planla å bruke Arduino -brettet til å kontrollere denne klokken. Prosjektet kan lett gjentas selv for nybegynnere av Arduino -fansen fordi jeg ikke har laget mine egne kretskort. Det er et Arduino Nano -kort med moduler koblet til det - BME280 temperatur-, trykk- og fuktighetssensor, DS1307 RTC -klokke, TP4056 litiumbatterilader, liten 3,7v til 5v booster -modul, lysavhengig motstand (LDR - lysmåler) og en summer (hentet fra den gamle PC -en).

Se også på skissene - de viser alle sammenhenger. Jeg tror alt er veldig lett å lese og forstå, men hvis du har spørsmål, kan du bare spørre i kommentarene nedenfor.

Noen notater om oppsettet:

  • Motoren er koblet direkte fra batteriet gjennom transistoren. Arduino styrer transistoren gjennom motstand og PWM -pinne D5.
  • Pins D7-12 brukes til LCD-kontakt. Ground og VCC er koblet til skinnen på koblingsbordet.
  • LDR ble installert på klokkeflaten og motstand + 3 utgående ledninger ble loddet rett på baksiden av urskiven.
  • For tilkobling av knapper brukte jeg intern PULLUP -funksjon inne i Arduino. Menyknappen er festet til avbruddet, og jeg innså først senere at du også kan bruke intern PULLUP for avbruddet. Avbrudd for menyknappen er nødvendig for at koden ikke skal skanne tilstanden til knappene hele tiden.
  • Klokken overvåker og viser også batteriets tilstand, slik at batteriet er direkte koblet til pin A0. Batterispenningen er aldri høyere enn 4,2V, så det er trygt å koble batteriet direkte til den analoge Arduino -pinnen.
  • Summer er direkte koblet til PWM pin D6. Selv om dette ikke er en god praksis, slapp jeg unna med det fordi Arduino Nano kunne håndtere høyere spesifikasjoner enn oppgitt, og også fordi summeren ikke vil fungere kontinuerlig. Det samme oppsettet ville lett brenne pinnene på ESP -kort, så i de tilfellene anbefaler jeg å bruke transistorkontrollen.
  • Klokken hadde allerede en bryter, så jeg bestemte meg for å bruke den. Det ser naturlig ut på baksiden.

Trinn 7: Koblingsplate for enkle tilkoblinger

Koblingsbrett for enkle tilkoblinger
Koblingsbrett for enkle tilkoblinger
Koblingsbrett for enkle tilkoblinger
Koblingsbrett for enkle tilkoblinger

Alle modulene krever positive og jordede tilkoblinger, så jeg bestemte meg for å bruke 2x8cm prototypekort og loddet 5V og jordskinner til det. Jeg har også laget en liten I2C -skinne der siden jeg hadde flere moduler ved hjelp av I2C -grensesnitt.

På den andre siden loddet jeg standard pins slik at jeg kunne koble til og fra modulene når det var nødvendig.

Noen av tilleggskomponentene ble også loddet der, for eksempel transistor og motstand for motorstyring og en motstand for Menyknapp som bruker Interrupt. Jeg viste skjemaene i forrige seksjon.

btw Kan du se LDR -sensoren som allerede er installert på urskiven på det første bildet?

Trinn 8: Konfigurere strømmen

Sette opp strømmen
Sette opp strømmen

Jeg brukte et gammelt litiumionbatteri fra mobilen min for å drive denne klokken. Vanligvis har mobiltelefonbatteriene som er byttet ut fortsatt god kapasitet (minst halvparten av det den var da den var ny). Fordelen deres er at de har en innebygd utladningsbeskyttelseskrets, og de er også veldig tynne, så de kan brukes i små romscenarier.

For å koble til batteriet lodder du bare ledningene til + og - pinner på batteriet. Ikke bekymre deg, du vil ikke skade cellen fordi det er en kontroller og noe tomt mellomrom mellom pinner og kjemikaliene i cellen.

På dette bildet kan du se batteriet og også TP4056 ladekontrollen samt 5V booster koblet sammen og til batteriet. Jeg brukte noen krympeslanger for å gjøre alt isolert og kompakt.

Trinn 9: Micro USB for lading og oppdatering av fastvare

Micro USB for lading og oppdatering av fastvare
Micro USB for lading og oppdatering av fastvare

Når jeg hadde loddet alt, limte jeg summer og temp/trykk/fuktighetssensor på bakpanelet. De passet alle fint inn i de eksisterende sporene fra gamle klokkekontroller.

Det var nå på tide å installere Micro USB -porten på baksiden. Hvorfor Micro USB hvis Nano bruker Mini USB? Rett og slett fordi i husholdningen er de fleste USB -kabler fra mobiltelefoner, og det ville være praktisk hvis klokken også kunne ta det.

Siden jeg ønsket å bruke den til både lading og oppdatering av klokke- og værstasjonsfunksjoner - fjernet jeg USB -kabelen, førte strømledningene gjennom TP4056 -laderen og Data+/Data -ledninger direkte til USB -kontakten på Arduino Nano. Du kan se dette på skjematikken jeg viste i tidligere seksjoner.

Trinn 10: Sluttmontering

Sluttmontering
Sluttmontering
Sluttmontering
Sluttmontering
Sluttmontering
Sluttmontering

Det var nå på tide å pakke alt tilbake i den originale klokken. Jeg brukte krympeslange for å isolere komponenter og moduler. Til og med Arduino var pakket inn i krympeslange.

Hold markøren på det første bildet for å se hvor hver komponent ble plassert.

Trinn 11: Koden

Som du kan se, er klokken fullpakket inne. Dette tillot å lage noe mer sofistikert enn den gamle klokken jeg hadde - gitt at det er noen programmeringskunnskaper selvfølgelig. Jeg skrev den første koden, men ba vennen min om å gå inn og hjelpe meg.

Så langt, i tillegg til selve klokken, er dette funksjonene som dette prosjektet allerede støtter:

  • Tid og dato -visning (samt klokkeslett og aktivering av alarm på samme skjerm)
  • Skjermen lyser opp under mørke forhold eller når det oppdages bevegelse (basert på lysendringer)
  • Værvarsel (sol, regn, regn)
  • Visning av temperatur, trykk og fuktighet (for fuktighet vil det indikere om det er for tørt)
  • Meny for innstillinger: alarm, endre tid, aktivere/deaktivere datovisning, aktivere/deaktivere værvarslingslydvarsler og bytte mellom keiserlige og metriske enheter
  • Alarminnstillinger - på/av, innstilling av klokkeslett, innstilling av melodi og/eller klokker for varsler

Siste kode:

Koden kommer til å bli oppdatert i fremtiden med nye funksjoner, så sjekk tilbake for fastvareoppdateringer:-)

Hvis du er ny i Arduino -verden, er disse trinnene jeg vil anbefale å gjøre:

  • Installer USB -driveren for kortet ditt (f.eks. CH340)
  • Installer Arduino IDE
  • Installer biblioteker som brukes i dette prosjektet
  • Last ned fra GitHub og last opp den siste prosjektkoden til klokken ved hjelp av mikro -USB -kabel (du kan bruke en fra mobiltelefonen)

Prognosealgoritmen er følgende:

Arduino Nano får nye data fra BME280 -sensoren hvert 12. minutt. Målesyklusen er 3 timer. Etter 3 timer skifter trykmålingens område (maks og min verdi i løpet av 3 timer) i forhold til gjennomsnittsverdier under gjeldende område og gjeldende trykkverdi. Hver time lagres trykkendringsretningen med gjeldende trykkverdi. kPa -enheter brukes til prognoseberegning.

På grunn av minnebegrensninger for Nano måtte prognosealgoritmen forenkles. Men til tross for forenklinger, er den i stand til å forutsi nedbør i løpet av de neste 12-24 timene, selv om prognosen nå er mer pessimistisk - standardverdien er "Skyet vær".

"Sunny Weather" - nåværende trykk er høyere enn normen med 7 poeng, trykket faller ikke og forskjellen mellom min og maks verdier i løpet av de siste 3 timene er ikke mer enn 2 poeng.

Mulig nedbør "Rainy Weather" - nåværende trykk er 15 poeng lavere enn normen og forskjellen mellom min & maks verdier er mer enn 2 poeng ELLER Trykket synker og forskjellen mellom nåværende verdi og norm er 3 - 30 poeng.

For å forbedre kvaliteten på prognosene anbefales det å endre "høyden" i hovedkodefilen. Du kan for eksempel få høyden din her:

Trinn 12: Trinn-for-trinn video

Image
Image

Hvis det var vanskelig å følge det jeg gjorde ovenfor, er her også en videoversjon med alle trinnene som er vist.

Trinn 13: Siste ord

Totalt sett, fra mitt synspunkt, er vanskelighetsgraden for dette prosjektet ikke høy, og hvem som helst kan klare det. Hvis du ikke har en gammel klokke, kan du finne en billig på et lokalt loppemarked.

Alle komponentene er lave priser og er tilgjengelige på Sparkfun/Aliexpress/eBay/Amazon.

Jeg håper denne opplæringen var interessant for deg og ville være takknemlig hvis du kunne støtte min første Instructable in the Clock -konkurranse.

Klokker konkurranse
Klokker konkurranse
Klokker konkurranse
Klokker konkurranse

Andreplass i klokkekonkurransen

Anbefalt: