Indholdsfortegnelse:

Hotstuff: 9 trin
Hotstuff: 9 trin

Video: Hotstuff: 9 trin

Video: Hotstuff: 9 trin
Video: Kygo, Donna Summer - Hot Stuff (Official Video) 2024, November
Anonim
Varme sager
Varme sager

Sigtet på at blive det største lille grafiske termohygrometer til rådighed for en Arduino Uno.

Ansøgninger omfatter:

  • Spædbarn/børnehave temperaturmåler
  • Udhus temperaturmåler
  • Drivhusmonitor
  • Ekstern atmosfærisk kontrol
  • Hjem/kontor HVAC -kontrol og overvågning
  • Inkubator monitor/kontrol

BEMÆRK: Dette er ikke et medicinsk udstyr og kan ikke erstatte korrekt planlægning og arbejdsforhold!

- Funktioner

  • Helt gratis til ikke-kommerciel brug.
  • Leveres med en superhastigheds 7-segment simuleret skrifttype "Rose Digital" og det 16 segment med fuld alfa, "Astro Nerd" (se licensering for begrænsninger på denne del af softwaren, det er til en god sag, vi lover)
  • Næsten helt flimmerfrie opdateringer (1)
  • Automatisk områdegraf, der dækker hele sortimentet af DHT11- og DHT22 -sensorerne
  • Bruger en DHT11 (i klemme, vi har ikke prøvet) eller DHT22 for at få temp og relativ luftfugtighed.
  • Viser relativ luftfugtighed og temperatur i Fahrenheit eller Celsius
  • Viser dug (kondens) OG frost (kondenserende is) punkter i de aktuelle enheder
  • Advarsler om grafisk fugtig og tør luft.
  • Bruger, der kan tilpasses proportionelle displayfonte (ekstraudstyr)
  • Hoveddisplayområde -9 -> 99 F eller -9 -> 80C (advarsel om område, hvis det overskrides)
  • Fugtighed fra 0% -> 99% relativ luftfugtighed.
  • Registrerer maks og minimum temperatur og fugtighed siden nulstilling
  • Inkluderer Steadmans beregninger og advarer om ubehagelige eller farlige arbejdsforhold
  • Kræver minimum dele Uno, 3,5 "TFT -skærm
  • Valgfri omskiftelig F/C
  • Programmerbar varmestyring (til kuvøser osv.)
  • Enkel at bygge
  • Meget modulær kode
  • Sagde vi, at det var gratis?

(1) Bufferingbegrænsninger på UNO betyder, at diagrammet blinker kort under opdateringer.

Tilbehør:

Arduino Uno R3 (eller kinesisk klon)

  • 1 DHT22 temperatur- og fugtighedsmonitor (eBay/Amazon)
  • 1 TFT 3,5 "skærm med resistiv berøringsskærm og SD -kortplads (se tekst.)
  • En SPST -skydekontakt (valgfri).
  • En pc med USB - for at uploade programmet.
  • En 9-12v strømforsyning.
  • Sidekuttere i god kvalitet
  • Loddejern & lodning. Pincet med kølelegeme. Jumper ledninger.
  • Eventuelt en etui (Arduino Uno -etuier har ikke plads nok til et displayskærm).
  • Fin varmekrympende slange (til påklædning og isolering af loddepunkterne).

Trin 1: Hvad gør dette til noget særligt?

Hvad gør dette til noget særligt?
Hvad gør dette til noget særligt?

Men vent, du har set billederne, og det er bare endnu en temperatur- og luftfugtighedsmåler, ikke? Du kan få dem på eBay for omtrent samme pris som Arduino TFT -skjoldet, vi brugte til dette projekt.

Godt ikke helt … lad mig forklare.

Coronavirus, Covid-19, SARS-Cov-2 … alle ret skræmmende ting en af de bedste ting, vi kan gøre lige nu, er at passe på vores lunger, og ingen steder er det lettere at gøre det derhjemme. Hvis vi arbejder på et moderne kontor, skal det have god HVAC, og de fleste moderne biler har fremragende filtre, der tager de fleste større partikler fra luften udefra, før de kommer ind i kabinen. Dette forlader hjemmet … det eneste sted, hvor man føler sig tryg, og det er her, de mest almindelige ubehageligheder lurer. Selvom det er muligt at få Legionnaires sygdom fra et beskidt brusehoved (ja, virkelig!), Er det ganske ualmindeligt heldigvis.

Men der er noget langt mere almindeligt, at de fleste af os ikke engang tænker en ekstra gang over, fordi vi har levet med det hele vores liv.

Skimmelsvamp.

Mere specifikt skimmelsporer. Tænk på dem som mikroskopiske frø, der produceres af små fugalvækster, der skjuler det mørke og spredes frit i luften - ofte uden at skulle forstyrres - og kan fylde vores hjem med alt lige fra de grimme sorte pletter i de fugtige hjørner til tørrot og mere.

Skimmelsvamp beskadiger ikke din ejendom (hvilket er slemt nok) det kan forårsage irritation af hele luftvejen - fra vores næse og bihuler lige nu til meget alveoler, de millioner af små sække, der beklæder vores lunger - de er så små, at strakt ud, ville de nogenlunde dække en tennisbane. Det er meget område for en mikroskopisk organisme at komme ind, gemme sig væk og forårsage alverdens kaos.

Og der er mere…

I den anden ende af skalaen kan tør luft også skabe ravage. Overfladen af vores lunger er dækket af en meget tynd film af et vandigt slim - det er der for at hjælpe med at holde ubehagelighederne i skak, og det gør et godt stykke arbejde, men hvis luften er for tør, begynder det slim også at blive tørt og der gør det sværere at trække vejret.

Og der er endnu mere…

Mennesker holder sig naturligvis kolde ved fordampning - vi sveder (på en tør, varm dag, det er umærkeligt), men når luftfugtigheden stiger, oplever folk, at vandet bare "står" på deres hud, og de begynder at blive varme. Meget varm.

I nogle dele af verden (Australien og troperne) er dette et sådant problem, at arbejderne skal være opmærksom på den "effektive arbejdstemperatur" - vejrkanalerne omtaler dette ofte som "føles som" -temperaturen, for som varmen /fugtighed stiger, chancen for hedeslag og endda død bliver en meget reel mulighed.

For nogle begrundelser og yderligere læsning se Wikipedia eller dykke ned!

da.wikipedia.org/wiki/Heat_index

Hvis du tænker, "det vil aldrig ske for mig", skal du overveje, at dette med klimaforandringer er ved at blive en meget reel mulighed på breddegrader ud over Seattle, og hvis du arbejder på en varm "skummel" dag, kan du risikere dit helbred uden selv at indse det.

Varmeudmattelse er ekstremt ubehagelig, og varmeslag er en alvorlig medicinsk nødsituation.

Så denne enhed er ikke bare et smukt grafisk termometer/hygrometer, den har indbygget alarmer for at advare om varmeslagsforhold, hjælper dig med at bestemme, hvor godt ventileret dit hjem også er, og det ser endda ret smart ud (hvis vi selv siger det).

Med alt det sagt, er denne enhed ikke beregnet til medicinske formål og bør ikke bruges, hvor arbejdstagernes sundhed og sikkerhed kan blive kompromitteret. Selvom vi kunne certificere vores kode (det kan vi ikke) har selve hardwaren ikke den sikkerhed. Dette er for at stoppe al den rodede juridiske mumbo -jumbo, men det skal give dig en idé om, hvor sundt dit hjem er!

Byggeriet er omtrent lige så let som det bliver, selvom du bliver nødt til at "slagte" TFT -skjoldet, fordi vi kommer til at bruge det på måder, designerne aldrig har tænkt på.

BEMÆRK: Da nogen har rejst dette problem, er det værd at bemærke, at DHT22 -sensorer har en påstået nøjagtighed på ± 0,5 ° C og ± 1% Rh, hvilket er nok til mange applikationer, men ikke hvis temperaturen/luftfugtigheden er kritisk. Vi planlægger at tilføje nogle kalibreringer efter montering senere. DHT11 har en lidt mindre præcis temperaturmåling på ± 1,0 ° C, men bør generelt afspejle vores miljø godt.

Trin 2: Slagtning af TFT

Slagter TFT
Slagter TFT

Dette er den eneste virkelig vanskelige del, og det er den slags ting, du har brug for at få det rigtigt, for medmindre du giver en smule loddejern… ja, mindre sagt om det, jo bedre.

Dette projekt * burde * fungere med mange skjolde af denne opløsning og type - og softwaren fungerer med enhver ATMega 328 eller større (softwaren har en meget tæt pasform, der nærmer sig 99% af de 28K, der er tilgængelig ved denne skrivning), og vi har presset så mange funktioner derinde som rummet tillader.

Tjek alt fungerer, før du begynder at hugge bits af

  1. Test tilpas skærmen til Arduino - uSD -stikket går til den ende, hvor strøm- og USB -portene kommer ind. Baggrundsbelysningen tændes, når den er tændt, men ellers vil den ikke gøre noget.
  2. Bemærk pin -etiketterne for adgang til uSD -kortet. Vi får ikke brug for disse, så vi vil give tavlen et meget kort hårklipp.
  3. På vores bræt er målstifterne markeret SD_SS, SD_DI, SD_DO og SD_SCK i slutningen af J1.
  4. Du kan forlade eller fjerne de sidste to stifter - vi skærer dem fra vores bræt.
  5. Skær ikke noget andet, ellers fungerer LCD -skærmen ikke! For eksempel er LCD_D0 (en af datalinjerne) meget tæt, så du skal udvise ekstrem omhu her.
  6. Tjek to gange, skær en gang, eller håber, at du kan lodde et nyt header ind!

Bemærk: det kan være muligt at bruge "multiplex" de SPI -ben, vi har brugt her, og gemme data på SD -kortet, men det er noget, vi overlader til andre bygherrer.

Trin 3: Montering / lodning af sensoren

Montering / lodning af sensoren
Montering / lodning af sensoren

Selvom det ikke er strengt nødvendigt, er lodning af forbindelserne den bedste måde at gøre dette projekt til noget, du kan montere og glemme.

Lodning til DHT22 bør kun forsøges af en person med rimelige loddeevner. Sensoren er meget følsom over for ændringer i temperatur og fugtighed. En navnløs person overophedede loddetapperne på vores (hoste, hoste) og sendte sensoren så langt ud af kalibrering, at den nægtede at fungere, før vi havde "kogt" den efter producentens anvisning om at stoppe den fra at producere læst fejl. En bedre mulighed for de fleste mennesker er at anskaffe en formonteret DHT11/22 med en header designet til springtråde.

DHT22'er bruger et serielt single -wire serielt link til at kommunikere med MCU'en - med et potentielt område på over 10M (> 32 fod) uden signalkonditionering, så detektoren kan placeres i en vis afstand fra Arduino.

Det viste sig (efter at have studeret skemaerne), at overskriften på 6-benet In-Circuit Serial Programmer (ICSP) for enden af brættet er forbundet til SPI-benene, der blev brugt af skærmen til dens SD-kortlæser/-skriver. Brug af disse pins påvirker ikke din evne til at programmere kortet over USB i fremtiden, da de primært bruges til fejlfinding og programmering af Uno med en seriel programmerer (FDTI). Som en sidebemærkning er vi taknemmelige over for Steve Wood fra AudioSpectrum Analyzers i Storbritannien for at have givet os en ekstra, da vores forsvandt i Marcs store bunke bits.

Hvis du har et par langnæsetænger af god kvalitet, er det muligt at bøje ledningerne, så de kan tage et DuPont-header, men lodning er den foretrukne metode. Med omhu (og en stabil hånd) er det fuldstændigt muligt at lodde DHT22 direkte til overskriften.

Tilslutning er omtrent lige så let som den kommer, men det er vigtigt at observere polaritet, fordi tilslutning af enheden omvendt sandsynligvis vil ødelægge den øjeblikkeligt. Selvom DHT22 har fire ben, er pin 3 ikke forbundet. Monterede sensorer leveres typisk kun med tre ben, der ligger smukt i linje med overskriften. Med sensoren liggende på ryggen (vist) kan du se strøm- og datastifterne rette op.

Trin 4: Test og første brug

Test og første brug
Test og første brug

Det eneste, der er tilbage, er omhyggeligt at tilslutte dit DHT22 -modul til Arduino og konfigurere softwaren. Meget af de smarte ting udføres af softwaren, muliggjort af grafikbibliotek fra Adafruit, David Prentices MCUFriend -displaydriver og lige så kloge ting fra Robert Steadmans "effektive varme" -beregninger.

Det eneste, du skal konfigurere i denne grundlæggende konfiguration, er at fortælle softwaren, hvilke tre ben der bruges.

Hvis du foretrækker at koble din sensor forskelligt, fortæller følgende linjer i CONSTANTS. H Uno, hvordan du konfigurerer sig selv.

#define DHT22_DATA 11

DH22 bruger en meget konservativ 1 - 1,5 mA, når den tager en måling, der er langt mindre end den typiske maks. 20 mA, så den kommer ikke til at understrege noget. (Selvfølgelig vil kortslutning af en hvilken som helst pin næsten helt sikkert ødelægge enheden, hvorfor vi foreslår at bruge varmekrympning, hvis du sætter sensoren på et Heath Robinson-plug-in-kort.) Hvis alt går godt, starter HotStuff om cirka 5 sekunder. Hvis der opdages en fejl, bliver skærmen sort og viser en kort fejlmeddelelse. Dette kan stort set ignoreres, da det bare betyder, at sensoren enten ikke er drevet eller ikke er korrekt forbundet.

Trin 5: Brug af instrumentet og ofte stillede spørgsmål

Brug af instrumentet og ofte stillede spørgsmål
Brug af instrumentet og ofte stillede spørgsmål

Q: Jeg kan se finesspor af de ubelyste cifre på skærmen. Er dette ikke en fejl?

A: Nej, dette er designet, selvom det ikke er sat i sten. Ideen var at efterligne udseendet af en "rigtig" LCD-skærm (vs. en høj opløsning TFT). Sådanne skærme bruger store, forhåndsdesignede blokke, der kan tændes og slukkes som pixels, men i modsætning til pixels kan de optage store dele af skærmen. Som et resultat er der altid et fint spor af materialet synligt, og dette emuleres her.

Sp: Hvordan kan jeg skifte mellem celsius og Fahrenheit?

A: Funktionen var ikke fuldt testet på tidspunktet for "at trykke" (fordi nogen glemte det, ikke sandt …). Vi har dog kontrolleret, og denne funktion fungerer (hvis det ønskes), men vedhæftning af en lille SPST -skyderkontakt med den ene terminal til pin 12 og den anden til en bekvem jord. Den hurtigste måde at gøre dette på er at lodde eller bruge et modificeret DuPont -stik til at fastgøre til jorden og den anden enten til at stifte 12 direkte (nogle kloner har et ekstra sæt gennemgående huller til denne slags) eller på originale designs, for at MOSI -stiften på ICSP -headeren, som er den over 5v -strømmen. Hvis denne kontakt er i åben position, starter enheden i celsius, men i lukket position trækker den pin 12 lavt, og en genstart bringer den tilbage i Fahrenheit. Der er ikke behov for en modstand for at beskytte stiften, da der er en intern modstand til rådighed.

Sp: Kan jeg bruge en anden sensor?

A: Ja. Men du skal enten finde et bibliotek, der passer, eller skrive dit eget. Vi valgte en DHT22 på grund af dens single-wire interface, og fordi der var en bag på delene, der trak indsamler støv. Et trådinterfacedesign er at foretrække, fordi vi kan bruge de andre "gratis" digitale stifter til andre funktioner. I2C er ikke tilgængelig, da displayet beskytter det. SPI er imidlertid, hvis du er parat til at miste funktionalitet såsom skalaomskiftning osv.

Q: Kan jeg sælge en kommerciel version?

A: Sikker på, at du kan, forudsat at du følger softwarelicensbetingelserne (det er hovedsageligt 2-klausul BSD-licensen, som er meget tilladt, men vær opmærksom på, at andre licenser kan gælde for inkluderede biblioteker.) Bemærk også, at denne enhed ikke er (og aldrig kan være) certificeret til brug i kritiske miljøer, er det til hjemmebrug/hobbybrugere, selvom det kan finde applikationer i plejehjem, kontorer og andre arbejdspladser. Bare vær opmærksom på, at det kun er så godt som det svageste led … Fontmotoren, der er udviklet til dette projekt, er licenseret til ikke-kommerciel brug, medmindre du donerer til vores kollegas kræft GoFundMe.

Sp.: Mine min/max -aflæsninger registreres ikke på diagrammet.

A: Dette er designet. Instrumentet ved hjælp af et "glidende gennemsnit" (et statistisk middel), som nulstilles hver time. Dette hjælper med at udjævne grafen og give et mere rimeligt kig på målingerne, der forhindrer ulige pigge (som f.eks. En "person", der trækker vejret på sensoren, fra at sende den til vanvid.

Sp.: Hvorfor bruger du ikke C ++ genveje (som ++, - og så videre) i din kode? Hvorfor er alt så… ordentligt!

A: En af forfatterne er en veteran 8-bit spilprogrammerer, men den anden kommer fra Python. Vi har brugt et par genveje, hvor deres anvendelse er temmelig entydig, men C (sproget, der ligger til grund for C ++) er gammelt, og kompilatorer generelt var lidt dumme tilbage, da Kernighan og Richie skrev den første kompilator, for ikke at tale om computere var slooooooow og tastaturer havde nøgler at du følte, at du skulle slå med en pladehammer. Alle disse ting (og andre) førte til, at C var et meget snævert sprog med flere genveje for at opnå det samme. Et stort antal har (og forbliver) ansvaret for nogle meget vanskelige fejl: og få os ikke engang i gang med bunke/stak -nedbrud.

Det er klart, at nogle optimeringer (f.eks. Semaforerne) er nødvendige, fordi vi forsøger at presse en kvart i en tekop, men hvor det er muligt, har vi undgået det.

I øvrigt, hvis du ikke ejer en godt læst kopi af K&R C … stop lige nu og bestil en. Der er mange meget store bøger om C, men K&R er sandsynligvis den bedste, og da C understøtter C ++ har du også en bedre forståelse af sprogets funktioner.

Q: Jeg tror, jeg har fundet en fejl, hvad skal jeg gøre!

A: Fejl? Der er ingen fejl, kun funktioner … bare nogle funktioner fungerer ikke, som vi forventede dem. Efterlad os en note om GitHub, og vi vil prøve at ændre funktionen, så den er mere velegnet til designet. Faktisk refunderes koden hele tiden til flere forskellige projekter, så det er temmelig skrotende steder og for det vil Marc blive slået med en våd kuller, indtil han skriger: "Ikke mere!" - Dan

Trin 6: Kompilering fra kilde

Kompilering fra kilde
Kompilering fra kilde

Projektet er hostet på GitHub (der er simpelthen for meget kode til at slå på en instruerbar, folk ville få firkantede øjne til at prøve at finde ud af alt dette), men mens forprogrammerede pengeautomater vil være tilgængelige på eBay, vil du måske kompilere dine egne fra kilde.

Kildekoden, der skulle kompilere under Visual Studio med Platform IO - den blev lidt uhåndterlig for Arduino -editoren og Visual Studio giver os mulighed for at skrive bedre kode med færre fejl takket være nogle af de "fnug" -plukninger, den har.

github.com/marcdraco/HotStuff

platformio.org/

visualstudio.microsoft.com/downloads/Du skal bruge et par biblioteker til dette skjold. Adafruit GFX (som også skal bruge Wire -biblioteket).

MCUFriend_kbv af David Prentice v2.9. David har produceret senere versioner, men de kan ikke garanteres at fungere.

Trin 7: Gør det til dit eget

Gør det til dit eget
Gør det til dit eget

Der er intet som at have et smukt projekt, som du kan vise andre og få dem til at gispe af ærefrygt, da det starter med dit navn deroppe i lys. Så vi har konfigureret softwaren, så næsten alle skal kunne foretage ændringer uden kendskab til C/C ++.

Find i din foretrukne teksteditor i "constants.h" for at finde følgende linjer:

constexpr uint16_t defaultPaper = SORT;

constexpr uint16_t defaultInk = CYAN;

Du kan se farvenavne på almindeligt engelsk - David Prentice leverede venligst en masse definitioner, der vises tidligere i filen, og alt du skal gøre er at ændre din forgrund (og baggrund) til noget af dit valg, før du uploader til tavlen. "Spor" -farverne til grafen er lidt dybere hernede og ser sådan ud:

constexpr uint16_t HUMIDITY_TRACE {AZURE}; constexpr uint16_t TEMP_TRACE {YELLOW};

Selvom disse TFT'er ikke er kendt for deres kontrast (og er begrænset til 5-6-5 RGB, 16-bit farve), har vi leveret et eksempel på en kompilationsindstilling "NIGHT_MODE", der som standard kommenteres, men indstiller displayet

Andre farver kan justeres på samme måde. Vil du have den læst i Imperial, når den brænder op? Intet problem! Find og kommenter ("//"), eller fjern følgende linje, og når du uploader tilbage til tavlen …

Spørgsmål, kommentarer og forbedringer bør indsendes til GitHub.

Endnu længere dokumentation vedrørende hacking af projektet findes i den medfølgende README. MD

Trin 8: Hacking It

Dette projekt blev oprettet ved hjælp af KISS -hovedstolen, og det er komplet, som det er.

Det kan danne grundlag for noget baseret på en anden sensor - måske en mere præcis eller hurtigere, forudsat at der er nok plads til biblioteket. Som du kan se, er tingene allerede ret stramme.

Når du kender koden godt, er det let at ændre ting dramatisk, men selv uden megen programmeringserfaring forklarer mange af de konstante værdier i "constants.h", hvordan man ændrer ting. Mere avancerede programmører vil bemærke, at det er relativt let (vi håber!) At trække de dele, du har brug for til senere brug. For eksempel erstattede vi grafdisplayet med et fuldt funktionelt realtidsur på under en time. Uret kræver dog en måde at indstille tiden på, så det er ikke nyttigt som det er; vi frigiver en funktionel version af det senere (du kan finde udviklingskoden på GitHub under HotStuff Chrono).

Men der er noget ved disse skærme, der ikke umiddelbart er indlysende, før du går til at programmere - den berøringsfølsomme skærm.

Problemet med resistive berøringsskærme af denne type er, at de har brug for kalibrering, hvilket øger kompleksiteten, og ærligt talt er der ikke plads med alle de andre funktioner, vi proppede ind for at kæbe et andet bibliotek derinde. Dette ville være muligt med Arduino Mega, som har langt mere flashplads, men hvor er det sjovt i det?

Kig under tavlen, og du vil se, at bortset fra den digitale I/O til at drive LCD- og SD -kortet er der ingen udgange til en ADC til at registrere modstandsmåling.

Mærkeligt ikke?

Kloge folk disse designere. Skærmen har sin egen rammebuffer: det er et område med RAM, der holder skærmen, som den er, mens strømmen forbliver tilsluttet, hvilket betyder, at du (programmatisk) kan frakoble flere af enhedens stifter, mens den er tændt og bruge dem til andre job - forudsat at du satte dem tilbage bagefter!

For information om hvordan dette gøres, foreslår vi at læse Limor "Lady Ada" Freds resistive touchscreen -bibliotek.

Og hvis du laver noget fedt, skal du sørge for at indsende en Pull Request!

Trin 9: Valgfri donationer

Valgfri donationer
Valgfri donationer

Nu her er den valgfrie bit, lad os præsentere damen, der gav liv og et navn til de skrifttyper, der blev brugt i dette projekt, og som stadig er en inspiration for os alle, især modtager nyheder om, at hun har udviklet kræft og … de fleste af os ved, hvor skræmmende det er bogeyman er. Hendes fulde biografi er på hendes websted https://www.rosedf.net/, og du kan finde hende på de sædvanlige sociale mediekanaler. Hun siger om sig selv:

"Hvis jeg ikke træner for at prøve at komme til rummet, fortæller folk at se på vores smukke nattehimmel, bruge tid sammen med dem, jeg elsker, eller bare være en nørd, kan jeg lide at fokusere min opmærksomhed på adgang til uddannelse og retfærdighed. Jeg arbejde med fortalervirksomhed for ofre for misbrug i hjemmet/seksuelt og hjemløshed, som jeg var, og jeg kan gerne øge bevidstheden om betydningen af mental sundhed i hverdagen og i den akademiske verden."

Hvis du gerne vil smide hende et par dollars (eller hvad din lokale valuta er), så ville vi alle virkelig sætte pris på det. Der gik meget kærlighed med at udvikle HotStuff troede selv, at det var ment som en undervisningsøvelse, og meget af det arbejde kan genbruges til fremtidige projekter, der har en "langsom" processor, men har brug for en hurtig, klar og frem for alt STOR alfanumerisk skrifttype på et TFT -display. donér her (du har vores tak):

paypal.me/FirstGenSci

Anbefalede: