Taula de continguts:

Hotstuff: 9 passos
Hotstuff: 9 passos

Vídeo: Hotstuff: 9 passos

Vídeo: Hotstuff: 9 passos
Vídeo: Baywatching: Hot Stuff 2024, Desembre
Anonim
Material calent
Material calent

Amb l'objectiu de convertir-se en el termohigròmetre gràfic més gran disponible per a un Arduino Uno.

Les sol·licituds inclouen:

  • Monitor de temperatura infantil / guarderia
  • Monitor de temperatura annex
  • Monitor d’hivernacle
  • Comprovació atmosfèrica externa
  • Comprovació i control de la climatització domèstica / oficina
  • Monitor / control de la incubadora

NOTA: No és un dispositiu mèdic i no substitueix la planificació i les condicions de treball adequades.

- Característiques

  • Totalment gratuït per a usos no comercials.
  • Inclou un tipus de lletra simulat de 7 segments de velocitat "Rose Digital" i el segment de 16 amb alfa complet, "Astro Nerd" (consulteu les llicències per obtenir limitacions en aquesta part del programari, ho prometem)
  • Actualitzacions gratuïtes gairebé completament intermitents (1)
  • Gràfic de rang automàtic que cobreix tota la gamma de sensors DHT11 i DHT22
  • Utilitza un DHT11 (amb prou feines, no ho hem provat) o DHT22 per obtenir temperatura i humitat relativa.
  • Mostra la temperatura i la humitat relativa en Fahrenheit o Celsius
  • Mostra els punts de rosada (condensació) I gelades (gel condensant) a les unitats actuals
  • Advertiments gràfics intermitents d'humitat i aire sec.
  • Tipus de lletra de visualització proporcional personalitzable per l'usuari (opció)
  • Rang de visualització principal -9 -> 99 F o -9 -> 80C (advertiment de rang si es supera)
  • Humitat del 0% -> 99% HR.
  • Registra la temperatura i la humitat màxima i mínima des del reinici
  • Inclou els càlculs de Steadman i advertirà de les condicions de treball incòmodes o perilloses
  • Requereix un mínim de peces Uno, blindatge TFT de 3,5"
  • F / C commutable opcionalment
  • Control programable de l'escalfador (per a incubadores, etc.)
  • Senzill de construir
  • Codi altament modular
  • Hem dit que era gratuït?

(1) Les limitacions de memòria intermèdia a l'ONU signifiquen que el gràfic parpelleja breument durant les actualitzacions.

Subministraments:

Arduino Uno R3 (o clon xinès)

  • 1 monitor de temperatura i humitat DHT22 (eBay / Amazon)
  • 1 escut TFT 3,5 "amb pantalla tàctil resistiva i ranura per a targeta SD (veure text).
  • Un commutador lliscant SPST (opcional).
  • Un PC amb USB: per carregar el programa.
  • Una font d'alimentació de 9-12v.
  • Talladors laterals de bona qualitat
  • Soldador i soldador. Pinces per dissipador. Filferros de pont.
  • Opcionalment, una funda (les fundes Arduino Uno no tenen prou espai per protegir la pantalla).
  • Tubs retractilats fins (per vestir i aïllar els punts soldats).

Pas 1: què fa que sigui especial?

Què fa que sigui especial?
Què fa que sigui especial?

Però espera, has vist les imatges i això és un mesurador de temperatura i humitat més, no? Podeu obtenir aquells a eBay pel mateix cost que el blindatge TFT Arduino que vam utilitzar per a aquest projecte.

Doncs no del tot … permeteu-me explicar-ho.

Coronavirus, Covid-19, SARS-Cov-2 … totes les coses que fan por, una de les millors coses que podem fer ara mateix és cuidar els pulmons i en cap lloc és més fàcil fer-ho a casa. Si treballem en una oficina moderna, hauria de tenir un bon aire condicionat i la majoria dels cotxes moderns disposen de filtres excel·lents que prenen la major part de les partícules més grans de l’aire exterior abans d’entrar a la cabina. Això deixa casa … l’únic lloc on se sent segur i és allà on s’amaguen les desagradables més habituals. Tot i que és possible contraure la malaltia del legionari per una dutxa bruta (sí, de debò!), És molt estrany per sort.

Però hi ha alguna cosa molt més comú que la majoria de nosaltres ni ens dediquem ni a pensar-hi perquè hi hem viscut tota la vida.

Floridura.

Més concretament, les espores de floridura. Penseu en elles com a llavors microscòpiques produïdes per petits creixements fugals que l’amaguen a les fosques i es dispersen lliurement a l’aire, sovint sense necessitat de ser molestats, i poden omplir les nostres llars de tot, des d’aquests desagradables taques negres als racons humits fins podridura seca i molt més.

El motlle no danya la vostra propietat (que és prou dolent), ja que pot causar irritació a tota la via respiratòria (des del nas i els sinus ara mateix fins als mateixos alvèols, els milions de petites bosses que recobreixen els nostres pulmons) són tan petites que estirats, cobririen aproximadament una pista de tennis. Això suposa una gran quantitat d’espais on un organisme microscòpic pot entrar, amagar-se i provocar tota mena de destrosses.

I hi ha més …

A l’altre extrem de l’escala, l’aire sec també pot causar estralls. La superfície dels nostres pulmons està coberta per una pel·lícula molt fina d’un moc aquós; hi és per ajudar a mantenir a ratlla les desagradables i fa una feina bastant bona, però si l’aire és massa sec, aquest moc també comença a assecar-se. això fa que sigui més difícil respirar.

I encara hi ha més …

Els éssers humans, naturalment, es mantenen frescos per evaporació: suem (en un dia sec i calorós, és imperceptible), però a mesura que augmenta la humitat, la gent troba que l’aigua “queda” a la pell i comença a fer calor. Molt calent.

En algunes parts del món (Austràlia i els tròpics) aquest problema és tan elevat que els treballadors han de ser conscients de la "temperatura de treball efectiva"; els canals meteorològics solen referir-se a això com a "temperatura", ja que la calor / la humitat augmenta, la probabilitat d’insolació i fins i tot la mort es converteixen en una possibilitat molt real.

Per obtenir més informació i llegir més, consulteu la Viquipèdia o busqueu-hi.

ca.wikipedia.org/wiki/Heat_index

Si penseu que "això no em passarà mai", tingueu en compte que amb el canvi climàtic això s'està convertint en una possibilitat molt real a latituds més enllà de Seattle i, si treballeu en un calorós dia "mogut", podríeu estar arriscant la vostra salut sense ni adonar-vos-en.

L'esgotament de calor és extremadament desagradable i el cop de calor és una greu emergència mèdica.

Així, doncs, aquest dispositiu no és només un termòmetre / higròmetre gràfic, sinó que ha incorporat alarmes per advertir de les condicions de cop de calor, us ajudarà a decidir fins a quin punt està ventilada la vostra llar i fins i tot es veu bastant intel·ligent (si ho diem nosaltres mateixos).

Amb tot això, aquest dispositiu no està pensat per a usos mèdics i no s’hauria d’utilitzar allà on es pogués comprometre la salut i la seguretat dels treballadors. Fins i tot si poguéssim certificar el nostre codi (no ho podem fer), el maquinari en si no té aquesta garantia. Això és per aturar tot aquest desordenat embolic legal però hauria de donar-vos una idea de la salut de la vostra llar.

La construcció és tan fàcil com es fa, tot i que haureu de "carregar" l'escut TFT perquè l'utilitzarem de manera que els dissenyadors mai no havien pensat.

NOTA: Com algú ha plantejat aquest problema, val a dir que els sensors DHT22 tenen una precisió afirmada de ± 0,5 ° C i ± 1% Rh, que és suficient per a moltes aplicacions, però no si la temperatura / humitat és crítica. Tenim previst afegir una mica de calibratge posterior al muntatge més endavant. El DHT11 té una mesura de temperatura una mica menys precisa de ± 1,0 ° C, però en general hauria de reflectir bé el nostre entorn.

Pas 2: massacrar el TFT

Carnisseria del TFT
Carnisseria del TFT

Aquesta és l'única part realment complicada i és el tipus de coses que cal encertar perquè, a menys que estigueu donant una mica amb un soldador … bé, menys es parla d'això, millor.

Aquest projecte * hauria de * funcionar amb molts blindatges d'aquesta resolució i tipus, i el programari funcionarà amb qualsevol ATMega 328 o superior (el programari s'adapta molt bé, aproximant-se al 99% dels 28K disponibles en aquest escrit) i hem comprimit tantes funcions allà com l'espai permetrà.

Comproveu que tot funcioni abans de començar a tallar els trossos

  1. Feu la prova per ajustar la pantalla a l'Arduino: la ranura uSD que hi ha és al final del lloc on entren els ports d'alimentació i USB. La llum de fons s'encendrà quan s'encengui, però en cas contrari no farà res.
  2. Tingueu en compte les etiquetes dels pins per accedir a la targeta uSD. No els necessitarem, així que farem un tall de cabell molt curt a la junta.
  3. Al nostre tauler, els pins de destinació estan marcats amb SD_SS, SD_DI, SD_DO i SD_SCK al final de J1.
  4. Podeu deixar o treure els dos darrers passadors: els tallem del tauler.
  5. No talleu res més, ja que la pantalla LCD no funcionarà. Per exemple, LCD_D0 (una de les línies de dades) està molt a prop, de manera que heu de tenir molta cura aquí.
  6. Comproveu-ho dues vegades, talleu-lo una vegada o espereu que pugueu soldar una capçalera nova.

Nota: pot ser que sigui possible utilitzar "multiplex" els pins SPI que hem utilitzat aquí i emmagatzemar dades a la targeta SD, però això ho deixarem a altres constructors.

Pas 3: Col·locar / soldar el sensor

Muntatge / soldadura del sensor
Muntatge / soldadura del sensor

Tot i que no és estrictament necessari, soldar les connexions és la millor manera de convertir aquest projecte en quelcom que pugueu muntar i oblidar.

La soldadura al DHT22 només l’ha d’intentar algú amb habilitats de soldadura raonables. El sensor és molt sensible als canvis de temperatura i humitat. Una persona sense nom va escalfar lleugerament els passadors de soldadura (tos, tos) i va enviar el sensor tan lluny de la calibració que es va negar a funcionar fins que no l'haguéssim "cuinat" segons les indicacions del fabricant perquè deixés de produir lectura errors. Una opció millor per a la majoria de la gent és obtenir un DHT11 / 22 pre-muntat amb una capçalera dissenyada per a cables de salt.

Els DHT22 utilitzen un enllaç serial d’un cable per comunicar-se amb l’MCU, amb un abast potencial superior a 10M (> 32 peus) sense condicionament del senyal, de manera que el detector es pot situar a certa distància de l’Arduino.

Va transcórrer (després d’estudiar els esquemes) que la capçalera de programació en circuit de 6 pins (ICSP) al final de la placa estava connectada als pins SPI que feien servir el blindatge per a la lectura / escriptura de la seva targeta SD. L’ús d’aquests pins no afectarà la possibilitat de programar la placa per USB en el futur, ja que s’utilitzen principalment per depurar i programar l’Uno amb un programador en sèrie (FDTI). Com a nota lateral, estem agraïts a Steve Wood d’AudioSpectrum Analyzers al Regne Unit per haver-nos subministrat un de recanvi quan el nostre va desaparèixer a la vasta pila de trossos de Marc.

Si teniu un parell d’alicates de nas llarg de bona qualitat, és possible doblegar els cables per tal que puguin agafar una capçalera DuPont, però la soldadura és el mètode preferit. Amb cura (i amb una mà ferma) és perfectament possible soldar el DHT22 directament a la capçalera.

La connexió és tan senzilla com real, però és essencial observar la polaritat, ja que és probable que connectar el dispositiu a la inversa el destrueixi instantàniament. Tot i que el DHT22 té quatre pins, el pin 3 no està connectat. Normalment, els sensors muntats només inclouen tres pins que s’alineen perfectament amb la capçalera. Amb el sensor estirat a l'esquena (mostrat), podeu veure que els pins d'alimentació i de dades s'alineen correctament.

Pas 4: prova i primer ús

Prova i primer ús
Prova i primer ús

Només queda connectar amb cura el mòdul DHT22 a l’Arduino i configurar el programari. Bona part de les coses intel·ligents les fa el programari, fet possible per la biblioteca de gràfics d'Adafruit, el controlador de pantalla MCUFriend de David Prentice i coses igualment intel·ligents dels càlculs de "calor efectiu" de Robert Steadman.

L'única cosa que necessiteu configurar en aquesta configuració bàsica és indicar al programari quins tres pins s'estan utilitzant.

Si preferiu connectar el sensor de manera diferent, les línies següents de CONSTANTS. H indiquen a l’Uno com es pot configurar.

#define DHT22_DATA 11

El DH22 utilitza una conservació d’1 a 1,5 mA quan es fa una lectura que és molt inferior al màxim màxim de 20 mA, de manera que no estressarà res. (Per descomptat, el curtcircuit de qualsevol pin gairebé segur que destruirà el dispositiu, de manera que us recomanem que utilitzeu la reducció de calor si poseu el sensor en una placa complementària Heath Robinson.) Si tot va bé, HotStuff arrencarà en uns 5 segons. Si es detecta un error, la pantalla es tornarà negra i mostrarà un missatge d'error breu. Això es pot ignorar, ja que significa que el sensor no està alimentat o no està connectat correctament.

Pas 5: utilitzar l'instrument i preguntes més freqüents

Ús de l’instrument i preguntes freqüents
Ús de l’instrument i preguntes freqüents

P: Puc veure traces de finta dels dígits no il·luminats a la pantalla. No és un error?

R: No, això és per disseny, tot i que no està format per pedra. La idea era emular l'aspecte d'una pantalla LCD "real" (enfront d'un TFT d'alta resolució). Aquestes pantalles utilitzen blocs grans predissenyats que es poden activar i desactivar com els píxels, però a diferència dels píxels poden ocupar grans parts de la pantalla. Com a resultat, hi ha invariablement un rastre de finta del material visible i això s’emula aquí.

P: Com puc canviar entre centígrads i Fahrenheit?

R: La funció no estava completament provada en el moment de "anar a prémer" (perquè algú ho va oblidar, no …). No obstant això, hem comprovat i aquesta funció funciona (si es vol), però connectant un petit interruptor lliscant SPST amb un terminal al pin 12 i l’altre a una terra convenient. La forma més ràpida de fer-ho és soldar o utilitzar un connector DuPont modificat per fixar-se a terra i l’altre, ja sigui per fixar 12 directament (alguns clons tenen un conjunt addicional de forats passants per a aquest tipus de coses) o en dissenys originals, per el pin MOSI de la capçalera ICSP que és el que està per sobre de la potència de 5v. Si aquest interruptor es troba en posició oberta, la unitat arrenca en centígrads però en posició tancada, estira el pin 12 i un reinici el torna a fer en Fahrenheit. No cal que hi hagi una resistència per protegir el pin, ja que es proporciona una resistència interna.

P: Puc utilitzar un sensor diferent?

R: Sí. Però haureu de trobar una biblioteca que s’adapti o escriure la vostra. Vam escollir un DHT22 a causa de la seva interfície d’un sol fil i perquè n’hi havia un a la part posterior de les peces que recol·lectaven pols. Es prefereixen els dissenys d'una interfície de fil perquè podem utilitzar els altres pins digitals "gratuïts" per a altres funcions. I2C no està disponible, ja que està ocupat per la pantalla de pantalla. Tanmateix, SPI és si esteu disposat a perdre funcionalitats com ara el canvi d'escala, etc.

P: Puc vendre una versió comercial?

R: És clar, sempre que seguiu els termes de llicència de programari (és essencialment la llicència BSD de 2 clàusules que és molt permissiva, però tingueu en compte que es poden aplicar altres llicències a les biblioteques incloses). Tingueu en compte que aquest dispositiu no ho és (i mai no es pot) certificat per al seu ús en entorns crítics, és per a ús domèstic / aficionat, tot i que podria trobar aplicacions a residències, oficines i altres llocs de treball. Tingueu en compte que només és tan bo com l’enllaç més feble … El motor de tipus de lletra desenvolupat per a aquest projecte té llicència per a usos no comercials tret que feu una donació al càncer GoFundMe del nostre company.

P: Les meves lectures mínimes / màximes no es registren al gràfic.

R: Això és per disseny. L'instrument utilitza una "mitjana mòbil" (una mitjana estadística) que es restableix cada hora. Això ajuda a suavitzar el gràfic i a donar una visió més raonable de les mesures evitant que pics estranys (com alguns, eh, "persona" que respira al sensor, el facin tornar boig.

P: Per què no utilitzeu dreceres C ++ (com ara ++, - etc.) al vostre codi? Per què tot és tan … de paraula?

R: Un dels autors és un veterà programador de jocs de 8 bits, però l'altre prové de Python. Hem utilitzat algunes dreceres on el seu ús és bastant inequívoc, però C (el llenguatge subjacent a C ++) és antic i els compiladors, en general, van quedar una mica ximples quan Kernighan i Richie van escriure el primer compilador, per no parlar dels ordinadors que eren escassos i que els teclats tenien tecles que senties que havies de colpejar amb un martell de lloses. Totes aquestes coses (i altres) van fer que C fos un llenguatge molt reduït amb diverses dreceres per aconseguir el mateix. Un gran nombre té (i continua sent) responsable d'alguns errors molt complicats: ni tan sols ens comencen a produir errors en pila / pila.

Viouslybviament, algunes optimitzacions (els semàfors, per exemple) són necessàries perquè estem intentant aixafar un quart en una tassa de te, però, en la mesura del possible, ho hem evitat.

Per cert, si no teniu una còpia de K&R C ben llegida … atureu-vos ara mateix i feu una comanda. Hi ha molts llibres molt grans sobre C, però K&R segueix sent el millor i, ja que C sustenta C ++, també coneixereu millor les funcions d’aquest idioma.

P: Crec que he trobat un error, què he de fer?

A: Errors? No hi ha errors, només funcions … algunes funcions no funcionen com esperàvem. Deixeu-nos una nota a GitHub i provarem de canviar la funció perquè sigui més adequada al disseny. En realitat, el codi s'està refactoritzant tot el temps en diversos projectes diferents, de manera que és bastant escombrós en alguns llocs i, per això, Marc serà bufetat amb un eglefí humit fins que cridi: "No més!" - Dan

Pas 6: compilació des de la font

Compilació des de la font
Compilació des de la font

El projecte està allotjat a GitHub (simplement hi ha massa codi per donar-li cops a un Instructable, la gent tindria ulls quadrats intentant esbrinar tot això), tot i que ATMegas preprogramats estarà disponible a eBay, és possible que vulgueu compilar el vostre font.

El codi font que s’hauria de compilar a Visual Studio amb IO de la plataforma: va resultar una mica difícil de fer per a l’editor Arduino i Visual Studio ens permet escriure un codi millor amb menys errors gràcies a la selecció “lint” que té.

github.com/marcdraco/HotStuff

platformio.org/

visualstudio.microsoft.com/downloads/ Necessitareu un parell de biblioteques per a aquest shield. Adafruit GFX (que també necessitarà la biblioteca Wire).

MCUFriend_kbv de David Prentice v2.9. David ha produït versions posteriors, però no es garanteix que funcionin.

Pas 7: feu-lo vostre

Feu-lo vostre
Feu-lo vostre

No hi ha res com tenir un bonic projecte que puguis mostrar als altres i fer-los respirar amb temor, ja que comença amb el teu nom allà dalt de la llum. Per tant, hem configurat el programari perquè gairebé tothom pugui fer canvis sense tenir coneixement de C / C ++.

Cerqueu al vostre editor de text favorit a "constants.h" per trobar les línies següents:

constexpr uint16_t defaultPaper = NEGRE;

constexpr uint16_t defaultInk = CYAN;

Podeu veure els noms de colors en anglès senzill: David Prentice va proporcionar una gran quantitat de definicions que apareixen anteriorment al fitxer i tot el que heu de fer és canviar el primer pla (i el fons) a un element que trieu abans de penjar-lo al tauler. Els colors "traça" del gràfic són una mica més profunds aquí i tenen el següent aspecte:

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

Tot i que aquests TFT no es coneixen pel seu contrast (i es limiten a 5-6-5 RGB, color de 16 bits), hem proporcionat un exemple d’opció de recopilació "NIGHT_MODE" que es comenta per defecte, però estableix la pantalla

Altres colors es poden ajustar de manera similar. Voleu que es llegeixi a Imperial quan s’encengui? Cap problema! Cerqueu i comenteu ("//") o elimineu la línia següent i quan torneu a penjar-la al tauler …

Les preguntes, comentaris i millores s’han de publicar a GitHub.

A README. MD adjunt hi ha documentació encara més llarga sobre la pirateria del projecte

Pas 8: piratejar-lo

Aquest projecte es va crear amb el principal KISS i està complet tal com és.

Pot constituir la base d’alguna cosa basada en un altre sensor, potser més precís o més ràpid, sempre que hi hagi prou espai per a la seva biblioteca. Com podeu veure, les coses ja estan força ajustades.

Quan coneixeu bé el codi, és fàcil canviar les coses dramàticament, però fins i tot sense molta experiència de programació, molts dels valors constants de "constants.h" expliquen com canviar les coses. Els programadors més avançats notaran que és relativament fàcil (esperem!) Treure les peces que necessiteu per a un ús posterior. Per exemple, hem substituït la pantalla gràfica per un rellotge en temps real completament funcional en menys d'una hora. El rellotge requereix una manera d’establir l’hora, de manera que no és útil tal com és; llançarem una versió funcional més endavant (podeu trobar el codi de desenvolupament a GitHub a HotStuff Chrono).

Però hi ha alguna cosa en aquestes pantalles que no és evident de manera immediata fins que no aneu a programar, és a dir, aquesta pantalla tàctil.

El problema de les pantalles tàctils resistives d’aquest tipus és que necessiten un calibratge que s’afegeix a la complexitat i, francament, no hi ha l’habitació amb totes les altres funcions que vam aplegar per empènyer una altra biblioteca allà. Això seria possible amb l'Arduino Mega, que té molt més espai en flaix, però, on hi ha la diversió?

Mireu a sota del tauler i veureu que, a part de les E / S digitals per conduir la pantalla LCD i la targeta SD, no hi ha sortides perquè un ADC detecti la mesura de resistència.

Codi estrany?

Gent intel·ligent d’aquests dissenyadors. La pantalla té el seu propi buffer de fotogrames: és una àrea de memòria RAM que manté la pantalla tal com està mentre l’alimentació continua connectada, cosa que significa que podeu desconnectar (per programació) diversos pins del dispositiu mentre està encès i utilitzar-los per a altres feines. sempre que els torneu a posar després!

Per obtenir informació sobre com es fa això, us recomanem que llegiu la resistiva biblioteca de pantalla tàctil de Limor "Lady Ada" Fried.

I si feu alguna cosa divertida, assegureu-vos de presentar una sol·licitud d'extracció.

Pas 9: donacions opcionals

Donacions opcionals
Donacions opcionals

Ara teniu el bit opcional: presentem la senyora que va donar vida i un nom a les fonts utilitzades en aquest projecte i continua sent una inspiració per a tots, en particular rebent notícies que ha desenvolupat càncer i … la majoria de nosaltres sabem com fa por aquest particular bogeyman és. La seva biografia completa es troba al seu lloc web https://www.rosedf.net/ i la podeu trobar als canals de xarxes socials habituals. Ella diu d'ella mateixa:

"Si no estic entrenant per intentar arribar a l'espai, dient a la gent que vagi a mirar el nostre bell cel nocturn, passant temps amb aquells que estimo o simplement sigui un nerd, m'agrada centrar la meva atenció en l'accés a l'educació i l'equitat. Jo treballar en la defensa de les víctimes d'abusos domèstics / sexuals i de les persones sense llar com era, i m'agrada sensibilitzar sobre la importància de la salut mental en la vida quotidiana i en el món acadèmic ".

Si voleu fer-li uns quants dòlars (o sigui la vostra moneda local), ho agrairem molt. Va haver-hi molt d’amor per desenvolupar HotStuff, fins i tot va pensar que es pensava com un exercici d’ensenyament i gran part d’aquest treball es pot reutilitzar per a futurs projectes que tinguin un processador "lent" però que necessitin un sistema alfanumèric ràpid, clar i sobretot GRAN font en una pantalla TFT. Doneu aquí (agraïm):

paypal.me/FirstGenSci

Recomanat: