INHOUDSOPGAWE:

Weervoorspellingsklok met ou alarm en Arduino: 13 stappe (met foto's)
Weervoorspellingsklok met ou alarm en Arduino: 13 stappe (met foto's)

Video: Weervoorspellingsklok met ou alarm en Arduino: 13 stappe (met foto's)

Video: Weervoorspellingsklok met ou alarm en Arduino: 13 stappe (met foto's)
Video: Build Seven Segment LED clock with Arduino and DS3231 - Robojax 2024, November
Anonim
Weervoorspellingsklok met ou alarm en Arduino
Weervoorspellingsklok met ou alarm en Arduino
Weervoorspellingsklok met ou alarm en Arduino
Weervoorspellingsklok met ou alarm en Arduino

Ek het 'n stukkende wekker laat lê en ek het 'n idee gekry om dit na 'n klok- en weervoorspellingstasie om te skakel.

Vir hierdie projek benodig u:

  • Ou sirkelvormige wekker
  • Arduino Nano
  • BME280 sensormodule (temp, humiditeit, druk)
  • LCD -skermmodule van Nokia 5110
  • DS1307 RTC klok
  • TP4056 Litium batterylaaier
  • Ou Li-ioonbattery is van die selfoon gered
  • Klein booster -module van 3,7 tot 5 volt
  • Ligafhanklike weerstand (LDR - ligmeter)
  • Gonser (gebruikte bergingsmiddel van ou rekenaar)
  • 3 drukknoppies
  • 'N Klomp resistors (2x10k, 270 ohm) en 'n transistor (2N2222A of soortgelyk)
  • 'N Breë krimpbuis
  • afval PCB om as voorplaatversiering te gebruik
  • Mikro-USB-verlengkabel (beide vroulike en manlike kante is mikro-USB)
  • 2x8cm prototipe bord en 'n paar drade

Stap 1: Demonteer alles

Demonteer alles
Demonteer alles

Eers het ek die ou horlosie uitmekaar gehaal. Klokke, motor, stukkende klokmeganisme …

Stap 2: Knoppies vir digitale instellings

Knoppies vir digitale instellings
Knoppies vir digitale instellings
Knoppies vir digitale instellings
Knoppies vir digitale instellings
Knoppies vir digitale instellings
Knoppies vir digitale instellings
Knoppies vir digitale instellings
Knoppies vir digitale instellings

Aangesien die nuwe horlosie volledig digitaal sal wees met 'n mini-rekenaar binne, het ek 3 eenvoudige knoppies aan die kant bygevoeg.

Met 'n stukkie aluminium sny ek die oorlaag om 'n etiket te maak. Die letters vir die etikette is geskep deur die letters en 'n swart merker te gebruik.

Stap 3: Kondensator vir die motor

Kondensator vir die motor
Kondensator vir die motor

Ek sal die ou klokke hou om die alarm met die motor aan te skakel. Die ou stukkende horlosiemeganisme het 'n keramiek -kondensator met die etiket 104. Ek het dit van die printplaat verwyder en dit direk aan die motor gesoldeer - dit sal help om kragpieke te voorkom wanneer die motor tydens alarm aangeskakel word. Dit is ook belangrik om daarop te let dat die motor deur 'n transistor beheer sal word, maar meer hieroor later.

Stap 4: Nuwe gesig vir die klok

Nuwe gesig vir die klok
Nuwe gesig vir die klok
Nuwe gesig vir die klok
Nuwe gesig vir die klok

Aangesien ek besluit het om 'n nuwe gesig vir die horlosie te maak - het ek 'n kringbord uit my vullishoop geneem en 'n hittegeweer gebruik om alle komponente vinnig te verwyder. Die gat in die middel is gemaak vir die digitale skerm van die nuwe horlosie.

Stap 5: Digitale vertoning vanaf 'n ou selfoon

Digitale vertoning vanaf 'n ou selfoon
Digitale vertoning vanaf 'n ou selfoon
Digitale skerm van ou selfoon
Digitale skerm van ou selfoon

Vir hierdie projek het ek besluit om 'n LCD -skerm van 'n ou Nokia 5110 -selfoon te gebruik. Hierdie skerms is wyd te koop as 'n module, hulle trek baie min krag en daar is goeie biblioteke vir die Arduino. As u 'n nuwe module met 'n 5110 -skerm koop, red u die planeet, want alle nuwe modules word gemaak uit 5110-, 3110- en 3210 -telefone!

Stap 6: Koppel die stroombane

Koppel die kringe
Koppel die kringe
Koppel die kringe
Koppel die kringe
Koppel die kringe
Koppel die kringe

U het waarskynlik al geraai dat ek van plan was om die Arduino -bord te gebruik om hierdie klok te beheer. Die projek is maklik herhaalbaar, selfs vir beginner Arduino -aanhangers, want ek het nie my eie stroombane gemaak nie. Dit is 'n Arduino Nano -bord met modules daaraan gekoppel - BME280 temperatuur-, druk- en humiditeitsensor, DS1307 RTC -klok, TP4056 litiumbatterylaaier, klein 3,7v tot 5v booster -module, ligafhanklike weerstand (LDR - ligmeter) en 'n zoemer (geneem uit die ou rekenaar).

Kyk ook na die sketse - dit toon alle verbindings. Ek dink alles is baie maklik om te lees en te verstaan, maar as u enige vrae het, vra dit in die kommentaar hieronder.

'N Paar opmerkings oor die opstelling:

  • Motor word direk vanaf die battery deur die transistor gekoppel. Arduino beheer die transistor deur middel van weerstand en PWM -pen D5.
  • Spelde D7-12 word gebruik vir LCD-aansluiting. Grond en VCC is op die aansluitbord aan die spoor gekoppel.
  • LDR is op die klokvlak geïnstalleer en weerstand + 3 uitgaande drade is aan die agterkant van die wyser gesoldeer.
  • Vir knoppieverbinding gebruik ek die interne PULLUP -funksie in Arduino. Die menu -knoppie is aan die onderbreking gekoppel en ek het eers later besef dat u ook interne PULLUP vir die onderbreking kan gebruik. Die onderbreking vir die menu -knoppie is nodig sodat die kode nie altyd die toestand van die knoppies kan skandeer nie.
  • Die klok sal ook die toestand van die battery monitor en vertoon, sodat die battery direk met pin A0 gekoppel is. Die batteryspanning is nooit hoër as 4.2V nie, dus is dit veilig om die battery direk aan die Arduino analoog pen te koppel.
  • Gonser is direk gekoppel aan PWM -pen D6. Alhoewel dit nie 'n goeie praktyk is nie, het ek daarmee weggekom omdat Arduino Nano hoër spesifikasies kon hanteer as wat gesê is, en omdat die gonser nie voortdurend werk nie. Dieselfde opstelling sal die penne op ESP -borde maklik verbrand, dus in hierdie gevalle beveel ek aan dat u die transistorbeheer gebruik.
  • Die horlosie het reeds 'n skakelaar gehad, en ek het besluit om dit te gebruik. Dit lyk natuurlik op die rug.

Stap 7: Verbindingsbord vir maklike verbindings

Verbindingsbord vir maklike verbindings
Verbindingsbord vir maklike verbindings
Verbindingsbord vir maklike verbindings
Verbindingsbord vir maklike verbindings

Al die modules benodig positiewe en grondverbindings, so ek het besluit om 'n prototipe van 2x8 cm te gebruik en 5V en grondrails daaraan gesoldeer. Ek het ook daar 'n klein I2C -reling gemaak, aangesien ek verskeie modules met die I2C -koppelvlak gehad het.

Aan die ander kant het ek standaard penne gesoldeer sodat ek die modules kon koppel en ontkoppel indien nodig.

Sommige van die bykomende komponente is ook daar gesoldeer, soos transistor en weerstand vir motorbeheer en 'n weerstand vir Menu -knoppie wat Interrupt gebruik. Ek het die skemas in die vorige afdeling gewys.

btw Kan u op die eerste foto die LDR -sensor wat reeds op die wyser aangebring is, sien?

Stap 8: Stel die krag op

Die opstel van die krag
Die opstel van die krag

Ek het 'n ou litium-ioonbattery van my selfoon gebruik om hierdie horlosie aan te skakel. Gewoonlik het die selfoonbatterye wat vervang word, steeds 'n goeie kapasiteit (ten minste die helfte van wat dit was toe dit nuut was). Hul voordeel is dat hulle 'n ingeboude afvoerbeveiligingskring het en ook baie dun is, sodat dit in klein ruimtescenario's gebruik kan word.

Om die battery aan te sluit, soldeer u die drade eenvoudig aan + en - penne op die battery. Moenie bekommerd wees nie, u beskadig nie die sel nie, want daar is 'n kontroleerder en 'n leë spasie tussen penne en die chemikalieë van die sel.

Op hierdie foto kan u die battery en die TP4056 -laai -kontroleerder sien, sowel as 'n 5V -booster wat aan die battery gekoppel is. Ek het 'n krimpfolie gebruik om alles geïsoleerd en kompak te maak.

Stap 9: Mikro -USB vir die laai en opdatering van firmware

Mikro -USB vir die laai en opdatering van firmware
Mikro -USB vir die laai en opdatering van firmware

Nadat ek alles gesoldeer het, het ek die gonser en temperatuur-/druk-/humiditeitsensor op die agterpaneel vasgeplak. Hulle pas almal mooi in die bestaande gleuwe van ou klokknoppies.

Dit was nou tyd om die Micro USB -poort aan die agterkant te installeer. Waarom Micro USB as Nano Mini USB gebruik? Bloot omdat die meeste USB -kabels in die huishouding van selfone af kom, en dit sou handig wees as die horlosie dit ook kon neem.

Aangesien ek dit wou gebruik vir die laai en opdatering van die klok- en weerstasiefunksies, het ek die USB -kabel gestroop, die kragdrade deur die TP4056 -laaier en Data+/Data -drade direk na die USB -aansluiting van Arduino Nano gelei. U kan dit sien op die skema wat ek in vorige afdelings getoon het.

Stap 10: Finale vergadering

Finale Vergadering
Finale Vergadering
Finale Vergadering
Finale Vergadering
Finale Vergadering
Finale Vergadering

Dit was nou tyd om alles terug te pak in die oorspronklike horlosie. Ek het krimpbuis gebruik om komponente en modules te isoleer. Selfs die Arduino was toegedraai in krimpbuis.

Beweeg op die eerste foto om te sien waar elke komponent geplaas is.

Stap 11: Die kode

Soos u kan sien, is die horlosie volledig binne -in. Hierdeur kon ek iets meer gesofistikeerds skep as die ou horlosie wat ek gehad het, aangesien daar natuurlik 'n paar programmeervaardighede is. Ek het die eerste kode geskryf, maar my vriend gevra om in te skryf en my te help.

Tot dusver, behalwe die klok self, is dit die funksies wat hierdie projek reeds ondersteun:

  • Tyd en datum vertoon (sowel as tyd en aktivering van alarm op dieselfde skerm)
  • Skerm brand in donker toestande of wanneer beweging opgespoor word (gebaseer op veranderinge in lig)
  • Weervoorspelling (sonnig, bewolk, reënerig)
  • Toon temperatuur, druk en humiditeit (vir humiditeit sal dit aandui of dit te droog is)
  • Spyskaart vir instellings: alarm, veranderende tyd, aktiveer/deaktiveer datumweergawe, aktiveer/deaktiveer geluidskennisgewings vir weerverandering en skakel tussen keiserlike en metrieke eenhede
  • Alarminstellings - aan/af, stel die tyd in, stel die melodie en/of klokke vir kennisgewings in

Jongste kode:

Die kode sal in die toekoms met nuwe funksies opgedateer word, dus kyk gerus vir firmware-opdaterings:-)

As u 'n nuwe in die Arduino -wêreld is, is dit die volgende stappe wat ek aanbeveel:

  • Installeer USB -bestuurder vir u bord (bv. CH340)
  • Installeer Arduino IDE
  • Installeer biblioteke wat in hierdie projek gebruik word
  • Laai van GitHub af en laai die nuutste projekkode op na die klok met behulp van 'n mikro -USB -kabel (u kan een vanaf u selfoon gebruik)

Die voorspellingsalgoritme is die volgende:

Arduino Nano kry elke 12 minute nuwe data van die BME280 -sensor. Die metingsiklus is 3 uur. Na 3 uur verskuif die omvang van drukmonitering (maksimum en min waarde gedurende 3 uur) relatief tot gemiddelde waardes gedurende die huidige omvang en huidige drukwaarde. Elke uur word die drukverandering met die huidige drukwaarde bespaar. kPa -eenhede word gebruik vir voorspellingsberekening.

Weens geheue beperkings van Nano moes die voorspellingsalgoritme vereenvoudig word. Maar ondanks die vereenvoudigings, kan dit in die komende 12-24 uur neerslag voorspel, alhoewel die voorspelling nou meer pessimisties is - die standaardwaarde is 'Bewolkt weer'.

"Sunny Weather" - die huidige drukwaarde is 7 punte hoër as die norm, die druk daal nie en die verskil tussen die min- en maksimum waardes gedurende die afgelope 3 uur is nie meer as 2 punte nie.

Moontlike neerslag "Reënweer" - huidige druk is 15 punte laer as die norm en die verskil tussen min en maksimum waardes is meer as 2 punte OF druk val en die verskil tussen huidige waarde en norm is 3 - 30 punte.

Om die kwaliteit van voorspelling te verbeter, word dit aanbeveel om u 'hoogte' in die hoofkode -lêer te verander. U kan byvoorbeeld u hoogte hier kry:

Stap 12: Stap-vir-stap video

Image
Image

As dit moeilik was om te volg wat ek hierbo gedoen het, is hier ook 'n video -weergawe met al die stappe wat getoon word.

Stap 13: Finale woorde

Oor die algemeen is die moeilikheidsgraad van hierdie projek vanuit my oogpunt nie hoog nie en kan almal dit regkry. As u nie 'n ou horlosie het nie, kan u dit by 'n plaaslike vlooimark goedkoop vind.

Al die komponente is teen 'n lae prys en is beskikbaar op Sparkfun/Aliexpress/eBay/Amazon.

Ek hoop dat hierdie tutoriaal vir u interessant was en ek sal dankbaar wees as u my eerste Instructable in the Clock -wedstryd kan ondersteun.

Uurwedstryd
Uurwedstryd
Uurwedstryd
Uurwedstryd

Naaswenner in die klokwedstryd

Aanbeveel: