Cuprins:

Prognoza meteo Ceas folosind alarma veche și Arduino: 13 pași (cu imagini)
Prognoza meteo Ceas folosind alarma veche și Arduino: 13 pași (cu imagini)

Video: Prognoza meteo Ceas folosind alarma veche și Arduino: 13 pași (cu imagini)

Video: Prognoza meteo Ceas folosind alarma veche și Arduino: 13 pași (cu imagini)
Video: Ceas de birou cu NETceptor si Google Weather 2024, Noiembrie
Anonim
Ceas de prognoza meteo folosind alarma veche și Arduino
Ceas de prognoza meteo folosind alarma veche și Arduino
Ceas de prognoza meteo folosind alarma veche și Arduino
Ceas de prognoza meteo folosind alarma veche și Arduino

Am avut un ceas deșteptător spart în jur și mi-a venit o idee să îl convertesc în stație de prognoză a ceasului și a vremii.

Pentru acest proiect veți avea nevoie de:

  • Vechi ceas cu alarmă circulară
  • Arduino Nano
  • Modul senzor BME280 (temp, umiditate, presiune)
  • Modul de afișare LCD de la Nokia 5110
  • Ceas DS1307 RTC
  • TP4056 Încărcător de baterie litiu
  • Baterie Li-ion veche recuperată de pe telefonul mobil
  • Modul de rapel mic de 3,7v la 5v
  • Rezistor dependent de lumină (LDR - contor de lumină)
  • Buzzer (folosit unul recuperat de pe un PC vechi)
  • 3 butoane
  • O grămadă de rezistențe (2x10k, 270 ohm) și un tranzistor (2N2222A sau similar)
  • Un tub tubular larg
  • resturi de PCB pentru a fi utilizate ca decorare a plăcii frontale
  • Cablu prelungitor Micro-USB (ambele părți feminine și masculine sunt Micro-USB)
  • Placă prototip 2x8cm și câteva fire

Pasul 1: Demontați totul

Demontați totul
Demontați totul

Mai întâi am demontat vechiul ceas. Clopote, motor, mecanism de ceas rupt …

Pasul 2: Butoane pentru setări digitale

Butoane pentru setări digitale
Butoane pentru setări digitale
Butoane pentru setări digitale
Butoane pentru setări digitale
Butoane pentru setări digitale
Butoane pentru setări digitale
Butoane pentru setări digitale
Butoane pentru setări digitale

Deoarece noul ceas va fi complet digital cu un mini-computer în interior, am adăugat 3 butoane simple, frumoase, pe lateral.

Folosind o bucată de aluminiu am tăiat suprapunerea pentru a crea o etichetă. Literele pentru etichete au fost create folosind poansoane și un marker negru.

Pasul 3: Condensator pentru motor

Condensator pentru motor
Condensator pentru motor

Voi păstra clopotele vechi pentru a porni alarma cu motorul. Vechiul mecanism de ceas spart avea un condensator ceramic cu eticheta 104. L-am scos de pe placa de circuit și l-am lipit direct la motor - acest lucru va ajuta la prevenirea creșterilor de putere la pornirea motorului în timpul alarmei. De asemenea, important de reținut este că motorul va fi controlat prin tranzistor, dar mai multe despre acest lucru mai târziu.

Pasul 4: Față nouă pentru ceas

Față nouă pentru ceas
Față nouă pentru ceas
Față nouă pentru ceas
Față nouă pentru ceas

De când am decis să fac o față nouă pentru ceas - am luat o placă de circuite din grămada de gunoi și am folosit o armă termică pentru a scoate rapid toate componentele. Gaura din mijloc este făcută pentru ecranul digital al noului ceas.

Pasul 5: Afișaj digital de pe vechiul telefon mobil

Afișaj digital de pe vechiul telefon mobil
Afișaj digital de pe vechiul telefon mobil
Afișaj digital de pe vechiul telefon mobil
Afișaj digital de pe vechiul telefon mobil

Pentru acest proiect am decis să folosesc un ecran LCD de pe vechiul telefon mobil Nokia 5110. Aceste ecrane sunt disponibile pe scară largă pentru a fi vândute ca module, consumă foarte puțină energie și există biblioteci bune pentru Arduino. Dacă cumpărați un nou modul cu ecran 5110 - salvați planeta, deoarece toate modulele noi sunt create din telefoanele 5110, 3110 și 3210 recuperate!

Pasul 6: Conectarea circuitelor

Conectarea circuitelor
Conectarea circuitelor
Conectarea circuitelor
Conectarea circuitelor
Conectarea circuitelor
Conectarea circuitelor

S-ar putea să fi ghicit deja că intenționam să folosesc placa Arduino pentru a controla acest ceas. Proiectul este ușor de repetat chiar și pentru fanii începători Arduino, deoarece nu mi-am creat propriile circuite. Este o placă Arduino Nano cu module conectate la aceasta - senzor de temperatură, presiune și umiditate BME280, ceas DS1307 RTC, încărcător de baterie litiu TP4056, modul mic de rapel de 3,7v până la 5v, rezistență la dependență de lumină (LDR - contor de lumină) și buzzer (preluat de pe vechiul PC).

Aruncați o privire și la schițe - acestea arată toate conexiunile. Cred că totul este foarte ușor de citit și de înțeles, dar dacă aveți întrebări, întrebați-le în comentariile de mai jos.

Puține note despre configurare:

  • Motorul este conectat direct de la baterie prin tranzistor. Arduino controlează tranzistorul prin rezistor și pinul PWM D5.
  • Pinii D7-12 sunt utilizați pentru conectorul LCD. Masa și VCC sunt conectate la șină pe placa de joncțiune.
  • LDR a fost instalat pe fața ceasului și rezistorul + 3 fire de ieșire au fost lipite chiar pe spatele feței ceasului.
  • Pentru conexiunea butonului am folosit funcția PULLUP internă în interiorul Arduino. Butonul Meniu este atașat la întrerupere și am realizat abia mai târziu că puteți utiliza și PULLUP intern pentru întrerupere. Întreruperea pentru butonul Meniu este necesară, astfel încât codul să nu scaneze starea butoanelor tot timpul.
  • Ceasul va monitoriza și afișa, de asemenea, starea bateriei, astfel încât bateria să fie conectată direct la pinul A0. Tensiunea bateriei nu este niciodată mai mare de 4,2 V, deci este sigur să conectați bateria direct la pinul analogic Arduino.
  • Buzzerul este conectat direct la pinul PWM D6. Deși aceasta nu este o practică bună, am scăpat de ea, deoarece Arduino Nano ar putea gestiona specificații mai mari decât cele menționate și, de asemenea, pentru că buzzerul nu va funcționa continuu. Aceeași configurare ar arde cu ușurință pinii de pe plăcile ESP, așa că, în aceste cazuri, vă recomand să utilizați controlul tranzistorului.
  • Ceasul avea deja un comutator, așa că am decis să îl folosesc. Arată natural pe spate.

Pasul 7: Placă de conexiune pentru conexiuni ușoare

Placă de conexiune pentru conexiuni ușoare
Placă de conexiune pentru conexiuni ușoare
Placă de conexiune pentru conexiuni ușoare
Placă de conexiune pentru conexiuni ușoare

Toate modulele necesită conexiuni pozitive și la sol, așa că am decis să folosesc placa prototip de 2x8cm și să lipesc șine de 5V și de masă. De asemenea, am realizat o mică șină I2C acolo, deoarece aveam mai multe module folosind interfața I2C.

Pe de altă parte, am lipit pinii standard, astfel încât să pot conecta și deconecta modulele atunci când este necesar.

Unele dintre componentele suplimentare au fost, de asemenea, lipite acolo, cum ar fi tranzistorul și rezistorul pentru controlul motorului și un rezistor pentru butonul Meniu care utilizează întreruperea. Am arătat schemele în secțiunea anterioară.

btw Puteți vedea senzorul LDR deja instalat pe fața ceasului în prima imagine?

Pasul 8: Configurarea alimentării

Configurarea puterii
Configurarea puterii

Am folosit o baterie litiu-ion veche de pe telefonul meu mobil pentru a alimenta acest ceas. De obicei, bateriile de telefon mobil care sunt înlocuite au încă o capacitate bună (cel puțin jumătate din ceea ce era când erau noi). Avantajul lor este că au un circuit de protecție la descărcare încorporat și sunt, de asemenea, foarte subțiri, astfel încât pot fi utilizate în scenarii de spațiu mic.

Pentru a conecta bateria, pur și simplu lipiți firele la pinii + și - de pe baterie. Nu vă faceți griji, nu veți deteriora celula, deoarece există un controler și un spațiu gol între ace și substanțele chimice ale celulei.

Pe această imagine puteți vedea bateria și controlerul de încărcare TP4056, precum și rapel de 5V conectat împreună și la baterie. Am folosit niște tuburi termoizolante pentru a face totul izolat și compact.

Pasul 9: Micro USB pentru încărcarea și actualizarea firmware-ului

Micro USB pentru încărcarea și actualizarea firmware-ului
Micro USB pentru încărcarea și actualizarea firmware-ului

Odată ce am lipit totul, am lipit buzzerul și senzorul de temperatură / presiune / umiditate de pe panoul din spate. Toate s-au încadrat frumos în sloturile existente de la comenzile vechi cu cadran.

Acum era timpul să instalați portul Micro USB pe spate. De ce Micro USB dacă Nano folosește Mini USB? Pur și simplu pentru că în gospodărie, majoritatea cablurilor USB provin de la telefoane mobile și ar fi convenabil ca și ceasul să poată lua asta.

Din moment ce am vrut să-l folosesc atât pentru încărcare, cât și pentru actualizarea funcțiilor ceasului și stației meteo - am dezbrăcat cablul USB, am direcționat firele de alimentare prin încărcătorul TP4056 și cablurile Data + / Data- direct la priza USB a Arduino Nano. Puteți vedea acest lucru pe schema pe care am arătat-o în secțiunile anterioare.

Pasul 10: Adunarea finală

Asamblarea finala
Asamblarea finala
Asamblarea finala
Asamblarea finala
Asamblarea finala
Asamblarea finala

Acum era timpul să împachetăm totul în ceasul original. Am folosit tuburi termocontractabile pentru a izola componentele și modulele. Chiar și Arduino a fost înfășurat într-un tub mic.

Plasați cursorul pe prima fotografie pentru a vedea unde a fost plasată fiecare componentă.

Pasul 11: Codul

După cum puteți vedea, ceasul este complet ambalat în interior. Acest lucru mi-a permis să creez ceva mai sofisticat decât vechiul ceas pe care îl aveam - având în vedere că, desigur, există unele abilități de programare. Am scris codul inițial, dar mi-am cerut prietenul să intervină și să mă ajute.

Până în prezent, pe lângă ceasul în sine, acestea sunt funcțiile pe care acest proiect le susține deja:

  • Afișarea orei și a datei (precum și ora și activarea alarmei pe același ecran)
  • Ecranul se aprinde în condiții de întuneric sau atunci când este detectată mișcarea (pe baza schimbărilor de lumină)
  • Prognoza meteo (însorit, înnorat, ploios)
  • Afișarea temperaturii, presiunii și umidității (pentru umiditate va indica dacă este prea uscat)
  • Meniu pentru setări: alarmă, schimbarea orei, activarea / dezactivarea afișării datei, activarea / dezactivarea notificărilor de sunet pentru schimbarea vremii și comutarea între unitățile imperiale și metrice
  • Setări de alarmă - pornire / oprire, setarea timpului, setarea melodiei și / sau a clopoței pentru notificări

Ultimul cod:

Codul va fi actualizat în viitor cu funcții noi, așa că asigurați-vă că reveniți la actualizări de firmware:-)

Dacă sunteți nou în lumea Arduino, acești pași aș recomanda:

  • Instalați driverul USB pentru placa dvs. (de ex. CH340)
  • Instalați Arduino IDE
  • Instalați bibliotecile utilizate în acest proiect
  • Descărcați de pe GitHub și încărcați cel mai recent cod de proiect pe ceas folosind cablul Micro USB (puteți utiliza unul de pe telefonul mobil)

Algoritmul de prognozare este următorul:

Arduino Nano primește date noi de la senzorul BME280 la fiecare 12 minute. Ciclul de măsurare este de 3 ore. După 3 ore intervalul de monitorizare a presiunii (valorile maxime și minime pe parcursul a 3 ore) se schimbă în raport cu valorile medii din intervalul curent și valoarea curentă a presiunii. În fiecare oră se salvează direcția de schimbare a presiunii cu valoarea curentă a presiunii. Unitățile kPa sunt utilizate pentru calculul prognozei.

Datorită limitării memoriei Nano, algoritmul de prognozare a trebuit simplificat. Dar, în ciuda simplificărilor, poate prognoza precipitațiile în următoarele 12-24 de ore, chiar dacă prognozele sunt acum mai pesimiste - valoarea implicită este „Vremea înnorată”.

"Sunny Weather" - valoarea curentă a presiunii este mai mare decât norma cu 7 puncte, presiunea nu scade și diferența dintre valorile minime și maxime în ultimele 3 ore nu este mai mare de 2 puncte.

Posibile precipitații „Vremea ploioasă” - presiunea curentă este cu 15 puncte mai mică decât norma și diferența dintre valorile minime și maxime este mai mare de 2 puncte SAU Presiunea scade și diferența dintre valoarea curentă și norma este de 3 - 30 puncte.

Pentru a îmbunătăți calitatea prognozării, se recomandă să vă schimbați "altitudinea" în fișierul de cod principal. De exemplu, vă puteți obține altitudinea aici:

Pasul 12: Video pas cu pas

Image
Image

Dacă a fost dificil să urmezi ceea ce am făcut mai sus, iată și o versiune video cu toți pașii afișați.

Pasul 13: Cuvinte finale

În general, din punctul meu de vedere, nivelul de dificultate al acestui proiect nu este mare și oricine ar putea să-l facă. Dacă nu aveți un ceas vechi, puteți găsi unul ieftin la o piață de vechituri locală.

Toate componentele sunt la preț redus și sunt disponibile pe Sparkfun / Aliexpress / eBay / Amazon.

Sper că acest tutorial a fost interesant pentru dvs. și v-aș fi recunoscător dacă ați putea susține primul meu Instructable în concursul Ceas.

Concurs de ceasuri
Concurs de ceasuri
Concurs de ceasuri
Concurs de ceasuri

Locul doi în concursul de ceasuri

Recomandat: