Innehållsförteckning:

Hotstuff: 9 steg
Hotstuff: 9 steg

Video: Hotstuff: 9 steg

Video: Hotstuff: 9 steg
Video: 💥9 DANCES in 12 MINUTES💥Learn in this Ballroom Dance Course more then in your Entire Life! BASICS 2024, November
Anonim
Heta grejer
Heta grejer

Siktar på att bli den största lilla grafiska termohygrometern som finns tillgänglig för en Arduino Uno.

Ansökningar inkluderar:

  • Temperaturmätare för spädbarn/förskola
  • Utomhus temperaturmätare
  • Växthusmonitor
  • Extern atmosfärisk kontroll
  • Hem/kontor HVAC -kontroll och övervakning
  • Inkubatorövervakning/kontroll

OBS: Detta är inte en medicinsk utrustning och kan inte ersätta korrekt planering och arbetsförhållanden!

- Funktioner

  • Helt gratis för icke-kommersiellt bruk.
  • Levereras med en superhastighets 7-segmentssimulerad typsnitt "Rose Digital" och 16-segmentet med full alfa, "Astro Nerd" (se licensiering för begränsningar av denna del av programvaran, det är för en god sak, vi lovar)
  • Nästan helt flimmerfria uppdateringar (1)
  • Automatisk avståndsgraf som täcker hela sortimentet av DHT11- och DHT22 -sensorerna
  • Använder en DHT11 (vid en nypa, vi har inte försökt) eller DHT22 för att få temp och relativ luftfuktighet.
  • Visar relativ luftfuktighet och temperatur i Fahrenheit eller Celsius
  • Visar dagg (kondens) OCH frost (kondenserande is) i de aktuella enheterna
  • Blinkande grafiska varningar för fuktig och torr luft.
  • Användaranpassade proportionella displayteckensnitt (tillval)
  • Huvuddisplayområde -9 -> 99 F eller -9 -> 80C (varningsområde om den överskrids)
  • Luftfuktighet från 0% -> 99% relativ luftfuktighet.
  • Registrerar max och minsta temperatur och luftfuktighet sedan återställningen
  • Inkluderar Steadmans beräkningar och kommer att varna för obekväma eller farliga arbetsförhållanden
  • Kräver ett minimum av delar Uno, 3,5 "TFT -skärm
  • Alternativt omkopplingsbar F/C
  • Programmerbar värmestyrning (för inkubatorer etc.)
  • Enkel att bygga
  • Mycket modulär kod
  • Sa vi att det var gratis?

(1) Buffertbegränsningar på UNO innebär att diagrammet blinkar kort under uppdateringar.

Tillbehör:

Arduino Uno R3 (eller kinesisk klon)

  • 1 DHT22 temperatur- och luftfuktighetsmätare (eBay/Amazon)
  • 1 TFT 3,5 "skärm med resistiv pekskärm och SD -kortplats (se text.)
  • En SPST -skjutbrytare (tillval).
  • En dator med USB - för att ladda upp programmet.
  • En 9-12v strömförsörjning.
  • Sidoklippare av bra kvalitet
  • Lödkolv och löd. Kylflänspincett. Bygelkablar.
  • Eventuellt ett fodral (Arduino Uno -fodral har inte tillräckligt med plats för en skärm).
  • Fin värmekrympslang (för att klä och isolera de lödda punkterna).

Steg 1: Vad gör det här speciellt?

Vad är det som gör det här speciellt?
Vad är det som gör det här speciellt?

Men håll ut, du har sett bilderna och det här är bara ännu en temperatur- och luftfuktighetsmätare? Du kan få dem på eBay för ungefär samma kostnad som Arduino TFT -skölden som vi använde för detta projekt.

Tja inte riktigt … låt mig förklara.

Coronavirus, Covid-19, SARS-Cov-2 … allt ganska skrämmande saker en av de bästa sakerna vi kan göra just nu är att ta hand om våra lungor och ingenstans är det lättare att göra det hemma. Om vi arbetar på ett modernt kontor bör det ha bra HVAC och de flesta moderna bilar har utmärkta filter som tar de flesta större partiklarna från luften innan de kommer in i kabinen. Detta lämnar hemmet … det enda stället där man känner sig trygg och det är där de vanligaste otäcken lurar. Även om det är möjligt att få Legionnaires sjukdom från ett smutsigt duschhuvud (ja, verkligen!) Det är ganska ovanligt tack och lov.

Men det är något mycket mer vanligt att de flesta av oss inte ens tänker efter för att vi har levt med det hela vårt liv.

Forma.

Mer specifikt mögelsporer. Tänk på dem som mikroskopiska frön som produceras av små fågelväxter som döljer det mörka och sprids fritt i luften - ofta utan att behöva störas - och kan fylla våra hem med allt från de otäcka svarta fläckarna i de fuktiga hörnen till torr ruttning och mer.

Mögel skadar inte din egendom (vilket är illa nog) det kan orsaka irritation i hela luftvägarna - från vår näsa och bihålor just nu in i alveolerna, miljontals små säckar som kantar våra lungor - de är så små att utsträckta, skulle de grovt täcka en tennisbana. Det är mycket område för en mikroskopisk organism att komma in, gömma sig och orsaka all slags förödelse.

Och det finns mer…

I andra änden av vågen kan torr luft också orsaka förödelse. Våra lungors yta är täckt av en mycket tunn film av ett vattent slem - det är där för att hålla otäcken i schack och det gör ett ganska bra jobb, men om luften är för torr börjar det slemmet att bli torrt också och som gör det svårare att andas.

Och det finns ännu mer …

Människor håller sig naturligtvis svala genom avdunstning - vi svettas (på en torr, varm dag är det omärkligt) men när luftfuktigheten ökar upptäcker människor att vattnet bara "står" på huden och de börjar bli heta. Väldigt het.

I vissa delar av världen (Australien och tropikerna) är detta ett sådant problem att arbetare måste vara medvetna om den "effektiva arbetstemperaturen" - väderkanalerna hänvisar ofta till detta som "känns som" temperatur, för som värmen /fuktighet ökar, risken för värmeslag och till och med död blir en mycket verklig möjlighet.

För lite motivering och vidare läsning, se Wikipedia eller dyk in!

en.wikipedia.org/wiki/Heat_index

Om du tänker, "det kommer aldrig att hända mig", tänk på att med klimatförändringar blir detta en mycket verklig möjlighet på breddgrader utanför Seattle och när du arbetar på en varm "muggig" dag kan du riskera din hälsa utan att ens inse det.

Värmeutmattning är extremt obehaglig och värmeslag är en allvarlig medicinsk nödsituation.

Så den här enheten är inte bara en snygg graftermometer/hygrometer, den har inbyggda larm för att varna för värmeslag, hjälper dig att bestämma hur välventilerat ditt hem också är och det ser till och med ganska smart ut (om vi säger det själva).

Med allt detta sagt är denna enhet inte avsedd för medicinska ändamål och bör inte användas där arbetstagarnas hälsa och säkerhet kan äventyras. Även om vi kunde certifiera vår kod (vi kan inte) har själva hårdvaran inte den garantin. Detta är för att stoppa allt det röriga juridiska mumbo jumbo men det bör ge dig en idé om hur friskt ditt hem är!

Bygget är ungefär lika enkelt som det blir, även om du kommer att behöva "slakta" TFT -skölden eftersom vi kommer att använda det på sätt som designarna aldrig tänkt på.

OBS: Eftersom någon har tagit upp detta problem är det värt att notera att DHT22 -sensorer har en påstått noggrannhet på ± 0,5 ° C och ± 1% Rh vilket är tillräckligt för många applikationer men inte om temperaturen/luftfuktigheten är kritisk. Vi planerar att lägga till lite kalibrering efter montering senare. DHT11 har en något mindre exakt temperaturmätning på ± 1,0 ° C men bör i allmänhet spegla vår miljö väl.

Steg 2: Slakta TFT

Slaktar TFT
Slaktar TFT

Detta är den enda riktigt knepiga delen och det är den typen av saker du behöver för att få rätt för om du inte ger dig lite lödkolv … ja, mindre sagt om det desto bättre.

Detta projekt * bör * fungera med många skärmar av denna upplösning och typ - och mjukvaran fungerar med alla ATMega 328 eller större (mjukvaran passar väldigt bra, närmar sig 99% av de 28K som finns tillgängliga vid skrivandet) och vi har pressat så många funktioner där som utrymmet tillåter.

Kontrollera att allt fungerar innan du börjar hugga bitar

  1. Testa att montera bildskärmen på Arduino - uSD -kortplatsen går i slutet där ström- och USB -portarna kommer in. Bakgrundsbelysningen tänds när den slås på, men annars gör den ingenting.
  2. Notera stiftetiketterna för åtkomst till uSD -kortet. Vi kommer inte att behöva dessa så vi kommer att ge brädan en mycket kort frisyr.
  3. På vårt bräde är målpinnarna markerade SD_SS, SD_DI, SD_DO och SD_SCK i slutet av J1.
  4. Du kan lämna eller ta bort de två sista stiften - vi skär ut dem från vårt bräde.
  5. Klipp inte av något annat så fungerar inte LCD -skärmen! Till exempel är LCD_D0 (en av datalinjerna) väldigt nära så du måste vara extremt försiktig här.
  6. Kontrollera två gånger, klipp en gång eller hoppas att du kan löda in en ny rubrik!

Obs! Det kan vara möjligt att använda "multiplex" SPI -stiften som vi har använt här och lagra data på SD -kortet, men det är något vi kommer att överlåta till andra byggare.

Steg 3: Montering / lödning av sensorn

Montering / lödning av sensorn
Montering / lödning av sensorn

Även om det inte är absolut nödvändigt är lödning av anslutningarna det bästa sättet att göra detta projekt till något du kan montera och glömma.

Lödning till DHT22 bör endast försökas av någon med rimlig lödningskunskap. Sensorn är högkänslig för förändringar i temperatur och luftfuktighet. En namnlös person övervärmde lödstiftet på vår (hosta, hosta) och skickade sensorn så långt ur kalibreringen att den vägrade att fungera förrän vi hade "kokat" den enligt tillverkarens instruktioner att stoppa den från att producera läs fel. Ett bättre alternativ för de flesta är att skaffa en förmonterad DHT11/22 med en rubrik utformad för hopptrådar.

DHT22 använder en seriell enkeltrådig seriell länk för att kommunicera med MCU - med ett potentiellt intervall på över 10M (> 32 fot) utan signalkonditionering så att detektorn kan placeras på ett avstånd från Arduino.

Det visade sig (efter att ha studerat schemat) att 6-stifts In-Circuit Serial Programmer (ICSP) -huvudet i slutet av kortet är anslutet till SPI-stiften som användes av skölden för dess SD-kortläsare/skrivare. Att använda dessa stift påverkar inte din förmåga att programmera kortet över USB i framtiden eftersom de främst används för felsökning och programmering av Uno med en seriell programmerare (FDTI). Som en sidoanteckning är vi tacksamma till Steve Wood från AudioSpectrum Analyzers i Storbritannien, för att ha försett oss med en extra när vår försvann i Marcs stora hög med bitar.

Om du har ett par långnosiga tänger av god kvalitet är det möjligt att böja ledningarna så att de kan ta en DuPont-header men lödning är den föredragna metoden. Med omsorg (och en stadig hand) är det fullt möjligt att löda DHT22 direkt till rubriken.

Anslutningen är ungefär lika enkel som den kommer, men det är viktigt att observera polaritet eftersom anslutning av enheten i omvända troligen kommer att förstöra den direkt. Även om DHT22 har fyra stift är stift 3 inte anslutet. Monterade sensorer levereras vanligtvis bara med tre stift som passar vackert med rubriken. Med sensorn liggande på ryggen (visas) kan du se ström- och datastiften stämma korrekt.

Steg 4: Test och första användning

Test och första användning
Test och första användning

Det återstår bara att försiktigt ansluta din DHT22 -modul till Arduino och installera programvaran. Mycket av de smarta grejerna görs av programvaran, möjliggjort av grafikbiblioteket från Adafruit, David Prentices MCUFriend -displaydrivrutin och lika smarta saker från Robert Steadmans beräkningar av "effektiv värme".

Det enda du behöver konfigurera i denna grundkonfiguration är att berätta för programvaran vilka tre stift som används.

Om du föredrar att koppla din sensor annorlunda, berättar följande rader i CONSTANTS. H för Uno hur man konfigurerar sig själv.

#define DHT22_DATA 11

DH22 använder en mycket konservativ 1 - 1,5 mA när man tar en avläsning som är mycket mindre än den typiska max på 20 mA så det kommer inte att stressa någonting. (Naturligtvis kommer kortslutning av alla stift nästan säkert att förstöra enheten, varför vi föreslår att du använder värmekrympning om du sätter sensorn på ett Heath Robinson-plug-in-kort.) Om allt går bra startar HotStuff om cirka 5 sekunder. Om ett fel upptäcks blir skärmen svart och ett kort felmeddelande visas. Detta kan till stor del ignoreras eftersom det bara betyder att sensorn antingen inte är strömförsörjd eller inte är korrekt ansluten.

Steg 5: Använda instrumentet och vanliga frågor

Använda instrumentet och vanliga frågor
Använda instrumentet och vanliga frågor

F: Jag kan se spår av de obelysta siffrorna på skärmen. Är inte detta ett fel?

A: Nej, det här är av design men det är inte stenat. Tanken var att efterlikna utseendet på en "riktig" LCD-skärm (jämfört med en högupplöst TFT). Sådana skärmar använder stora, fördesignade block som kan slås på och av som pixlar, men till skillnad från pixlar kan de uppta stora delar av skärmen. Som ett resultat finns det alltid ett fint spår av materialet som är synligt och detta emuleras här.

F: Hur kan jag växla mellan Celsius och Fahrenheit?

S: Funktionen var inte helt testad vid tidpunkten för "att trycka" (för att någon glömde, eller hur …). Vi har dock kontrollerat och den här funktionen fungerar (om så önskas) men att fästa en liten SPST -skjutreglage med den ena terminalen till stift 12 och den andra till en bekväm mark. Det snabbaste sättet att göra detta är att lödda eller använda en modifierad DuPont -kontakt för att fästa på marken och den andra antingen för att stifta 12 direkt (vissa kloner har en extra uppsättning genomgående hål för den här typen av saker) eller på originaldesigner, för att MOSI -stiftet på ICSP -rubriken som är den ovanför 5v -effekten. Om den här omkopplaren är i öppet läge, startar enheten i Celsius men i stängt läge drar den stift 12 lågt och en omstart tar tillbaka den i Fahrenheit. Det behövs inget motstånd för att skydda stiftet eftersom det finns ett internt motstånd.

F: Kan jag använda en annan sensor?

A: Ja. Men du måste antingen hitta ett bibliotek som passar eller skriva ditt eget. Vi valde en DHT22 på grund av dess enkeltrådiga gränssnitt och för att det fanns en på baksidan av delarna som samlar damm. En trådgränssnittsdesign är att föredra eftersom vi kan använda de andra "fria" digitala stiften för andra funktioner. I2C är inte tillgängligt eftersom det är upptaget av skärmen. SPI är dock om du är beredd att förlora funktionalitet som skalbyte etc.

F: Kan jag sälja en kommersiell version?

A: Visst kan du förutsatt att du följer programvarulicensvillkoren (det är i huvudsak 2-klausul BSD-licensen som är mycket tillåtande, men var medveten om att andra licenser kan gälla för inkluderade bibliotek.) Observera också att den här enheten inte är (och aldrig kan vara) certifierad för användning i kritiska miljöer, det är för hem/hobbybrukare även om det kan hitta applikationer på bostadshem, kontor och andra arbetsplatser. Var bara medveten om att den bara är lika bra som den svagaste länken … Teckensnittsmotorn som utvecklats för detta projekt är licensierad för icke-kommersiellt bruk om du inte donerar till vår kollegas cancer GoFundMe.

F: Mina min/max -avläsningar registreras inte på diagrammet.

A: Detta är av design. Instrumentet använder ett "glidande medelvärde" (ett statistiskt medelvärde) som återställs varje timme. Detta hjälper till att jämna ut grafen och ge en mer rimlig titt på mätningarna som förhindrar udda spikar (som att vissa, "person" andas på sensorn, från att skicka den galen.

F: Varför använder du inte C ++ - genvägar (som ++, - och så vidare) i din kod? Varför är allt så … ordriktigt!

S: En av författarna är en veteran 8-bitars spelprogrammerare, men den andra kommer från Python. Vi har använt några genvägar där deras användning är ganska entydig men C (språket som ligger till grund för C ++) är gammalt och kompilatorer i allmänhet var lite dumma tillbaka när Kernighan och Richie skrev den första kompilatorn, för att inte tala om datorer var slooooooow och tangentbord hade nycklar att du kände att du var tvungen att slå med en hammare. Alla dessa saker (och andra) ledde till att C var ett mycket kortfattat språk med flera genvägar för att uppnå samma sak. Ett stort antal har (och förblir) ansvariga för några mycket knepiga buggar: och får inte ens igång oss med hög/stack kraschar.

Uppenbarligen är vissa optimeringar (till exempel semaforerna) nödvändiga eftersom vi försöker krossa en kvart i en tekopp, men om möjligt har vi undvikit det.

Förresten, om du inte äger en välläst kopia av K&R C … sluta nu och beställ en. Det finns många mycket stora böcker om C men K&R förblir förmodligen det bästa och eftersom C ligger till grund för C ++ har du också en bättre förståelse för det språkets funktioner.

F: Jag tror att jag hittade ett fel, vad ska jag göra!

A: buggar? Det finns inga buggar, bara funktioner … bara några funktioner fungerar inte som vi förväntade oss. Lämna oss en anteckning om GitHub så försöker vi ändra funktionen så att den passar mer designen. Faktum är att koden omarbetas hela tiden till flera olika projekt så det är ganska skrämmande på sina ställen och för det kommer Marc att bli slagen med en våt kolja tills han skriker "Inte mer!" - Dan

Steg 6: Kompilera från källan

Kompilerar från källan
Kompilerar från källan

Projektet är värd på GitHub (det finns helt enkelt för mycket kod för att slå på en Instructable, folk skulle få fyrkantiga ögon när de försökte räkna ut allt detta) men medan förprogrammerade ATMegas kommer att finnas tillgängliga på eBay kanske du vill kompilera dina egna från källa.

Källkoden som ska kompileras under Visual Studio med plattform IO - den blev lite otymplig för Arduino -redigeraren och Visual Studio gör att vi kan skriva bättre kod med färre fel tack vare några av "ludd" -plockningen den har.

github.com/marcdraco/HotStuff

platformio.org/

visualstudio.microsoft.com/downloads/Du kommer att behöva ett par bibliotek för detta sköld. Adafruit GFX (som också kommer att behöva Wire -biblioteket).

MCUFriend_kbv av David Prentice v2.9. David har tagit fram senare versioner men de garanteras inte att fungera.

Steg 7: Gör det till ditt eget

Gör det till ditt eget
Gör det till ditt eget

Det finns inget som att ha ett vackert projekt som du kan visa för andra och få dem att flämta av vördnad när det börjar med ditt namn där uppe i lampor. Så vi har konfigurerat programvaran så att nästan alla ska kunna göra ändringar utan kunskap om C/C ++.

Hitta i din favorit textredigerare i "constants.h" för att hitta följande rader:

constexpr uint16_t defaultPaper = SVART;

constexpr uint16_t defaultInk = CYAN;

Du kan se färgnamnen på vanlig engelska - David Prentice gav vänligen en mängd definitioner som visas tidigare i filen och allt du behöver göra är att ändra din förgrund (och bakgrund) till något du väljer innan du laddar upp till tavlan. "Spår" -färgerna för grafen är lite djupare här nere och ser ut så här:

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

Även om dessa TFT-enheter inte är kända för sin kontrast (och är begränsade till 5-6-5 RGB, 16-bitars färg) har vi tillhandahållit ett exempelkompileringsalternativ "NIGHT_MODE" som kommenteras som standard men ställer in skärmen

Andra färger kan justeras på samma sätt. Vill du att den ska läsa i Imperial när den tänds? Inga problem! Hitta och kommentera ("//") eller ta bort följande rad och när du laddar tillbaka till tavlan …

Frågor, kommentarer och förbättringar ska läggas upp på GitHub.

Ännu längre dokumentation angående hackning av projektet finns i den medföljande README. MD

Steg 8: Hacka det

Detta projekt skapades med hjälp av KISS -huvudet och det är komplett som det är.

Det kan ligga till grund för något baserat på en annan sensor - en mer exakt eller snabbare kanske, förutsatt att det finns tillräckligt med utrymme för biblioteket. Som ni ser är det redan ganska trångt.

När du känner till koden väl är det lätt att ändra saker dramatiskt, men även utan mycket programmeringserfarenhet förklarar många av de konstanta värdena i "constants.h" hur man ändrar saker. Mer avancerade programmerare kommer att notera att det är relativt enkelt (vi hoppas!) Att dra de delar du behöver för senare användning. Till exempel bytte vi ut grafen med en fullt fungerande realtidsklocka på under en timme. Klockan kräver dock ett sätt att ställa in tiden, så den är inte användbar som den är; vi släpper en funktionell version av det senare (du kan hitta utvecklingskoden på GitHub under HotStuff Chrono).

Men det är något med dessa skärmar som inte är direkt uppenbart förrän du går till program på - den pekskärmen.

Problemet med resistiva pekskärmar av den här typen är att de behöver kalibrering vilket ökar komplexiteten och ärligt talat finns det inte rummet med alla andra funktioner som vi proppat in för att krossa ett annat bibliotek där inne. Detta skulle vara möjligt med Arduino Mega som har mycket mer flashutrymme, men var är det roliga i det?

Titta under kortet och du ser att förutom den digitala I/O för att driva LCD- och SD -kortet finns det inga utgångar för en ADC för att detektera motståndsmätningen.

Udda va?

Smarta människor dessa designers. Displayen har sin egen rambuffert: det är ett RAM -område som håller skärmen som den är medan strömmen är ansluten, vilket innebär att du (programmatiskt) kan koppla bort flera av enhetens stift medan den är påslagen och använda dem för andra jobb - förutsatt att du lägger tillbaka dem efteråt!

För information om hur detta görs föreslår vi att du läser Limor "Lady Ada" Freds resistiva pekskärmsbibliotek.

Och om du gör något coolt, var noga med att lämna in en Pull Request!

Steg 9: Valfria donationer

Valfria donationer
Valfria donationer

Nu här är valfri biten, låt oss presentera damen som gav liv och ett namn till de teckensnitt som används i detta projekt och förblir en inspiration för oss alla, särskilt att få nyheter om att hon har utvecklat cancer och … de flesta av oss vet hur skrämmande just den bogeyman är. Hennes fullständiga bio finns på hennes webbplats https://www.rosedf.net/ och du kan hitta henne på vanliga sociala mediekanaler. Hon säger om sig själv:

"Om jag inte tränar för att försöka ta mig till rymden, säger åt folk att titta på vår vackra natthimmel, umgås med dem jag älskar eller bara vara en nörd, fokuserar jag gärna på tillgång till utbildning och jämlikhet. Jag arbeta med att förespråka offer för våld i hemmet/sexuella övergrepp och hemlöshet som jag var, och jag gillar att öka medvetenheten om vikten av psykisk hälsa i vardagen och i akademin."

Om du vill tjäna henne några dollar (eller vad din lokala valuta är) så skulle vi verkligen uppskatta det. Mycket kärlek ägnades åt att utveckla HotStuff trodde till och med att det var tänkt som en undervisningsövning och mycket av det arbetet kan återanvändas för framtida projekt som har en "långsam" processor men behöver en snabb, tydlig och framför allt STOR alfanumerisk teckensnitt på en TFT -skärm. donera här (du har våra tack):

paypal.me/FirstGenSci

Rekommenderad: