Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Download Arduino IDE og kopier påkrævet kode
- Trin 2: Download påkrævede biblioteker fra Arduino IDE
- Trin 3: (Valgfrit) Loddehoveder til dele
- Trin 4: Følg Picture and Wire Arduino til Components
- Trin 5: Saml projekt "Coaster"
- Trin 6: Sæt Coaster og sensor på koppen efter eget valg
- Trin 7: Forskøn projekt og beskytt ledninger
- Trin 8: Drik ansvarligt
- Trin 9: (Valgfri) Fejlfinding
- Trin 10: Refleksion
Video: Fest sikker denne sommer med en Arduino blodalkoholreaktiv LED-kop: 10 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Problemer på projektniveau: Mellem
Nødvendige færdigheder:
- Læsning og replikering af et diagram
- Lodning, hvis du vælger ikke at købe præ-lodde dele
Projekt introduktion
I USA og i hele verden har alkohol udgjort alvorlige sundhedstrusler, når det indtages på en uansvarlig måde. Dødsfald som følge af påvirkningskørsel og leverskade samt langtidseffekter som mulig hjerne- og nyreskade kan skyldes det uansvarlige forbrug af alkohol. Alene i USA gik 250 milliarder dollars tabt på grund af alkoholmisbrug (NIAAA, 2010) samt over 88.000 mennesker, hvilket gjorde alkohol til den tredje førende dødsårsag, der kan forebygges i landet. Spørgsmålet til dette projekt er som beslutningstagere, hvordan kan vi løse dette problem og sikre, at sjove fester med alkohol som fester kan forblive sikre og sjove?
Mit svar på dette spørgsmål var at finde en måde at estimere og derefter visualisere brugerens forudsagte BAC for at give dem mulighed for bedre at forstå, hvilken tilstand de var i. Til dette projekt brugte jeg Arduino-mikrokontrolleren med en vandstandssensor, LED-ring og en LCD-skærm til at spore, hvor mange drikkevarer en person har drukket, og derefter til at finde en måde at estimere blodalkoholindholdet (BAC) på brugeren baseret på køn og vægt. Den estimerede BAC, afhængigt af hvilket område den var i, bestemmer animationen af LED -ringen nedenfor. Intervallerne ligger mellem fire forskellige områder: Sikker, nedsat, beruset og dødelig. Mit håb er, at du ved at oprette dette projekt ikke kun har oprettet et brugbart Arduino -projekt, men også har fået en bedre forståelse af, hvordan vi metaboliserer alkohol og muligvis endda noget grundlæggende programmering, hvis du vælger at se over den kommenterede kode.
Hvordan ved koppen, hvor mange drinks jeg har drukket?
Hvis vandstandssensorens analoge værdi overstiger 300, vil en boolsk værdi, der repræsenterer koppen, blive registreret som HØJ (fuld). Hvis sensorens analoge værdi er under 300, registreres den boolske værdi, der repræsenterer koppen, som LAV (tom). For at registrere en drink, der tilføjes til koppen, skal denne boolske værdi ændres fra tom til fuld.
Hvordan bestemte du BAC?
For at gøre dette projekt så nøjagtigt som muligt brugte jeg data fra Saint Benedict & Saint John's University om, hvor meget BAC for en person steg for hver forbrugt drink. Dette program tager ikke kun hensyn til vægt, men også brugerens køn i beregningen af brugerens BAC. Dette skyldes, at BAC er baseret på, hvor hurtigt en krop er i stand til at metabolisere alkohol, hvilket er forskelligt mellem mænd og kvinder og mennesker i forskellige vægte. Diagrammerne kan ses her.
Hvorfor er BAC -intervaller forskelligt for forskellige mennesker?
BAC -intervallerne er direkte baseret på de data, der er indhentet fra SBSJ University, som overvejer, hvor meget alkohol en bruger skal have i deres system, for at de kan være i et af fire områder:
- Sikker: Det eneste sikre område at betjene et køretøj i (repræsenteret af regnbue -animation)
- Nedsat: Der kan blive strafferetlige anklager, hvis du betjener et køretøj i dette område (repræsenteret af orange animation)
- Beruset: Der vil blive pålagt strafferetlige anklager, hvis du betjener et køretøj i dette område (repræsenteret med rødt lys)
- Dødelig: Hvis du ikke allerede er svimmel, er du i umiddelbar medicinsk fare i dette område (repræsenteret af blinkende røde og hvide lys)
Men jeg kan godt tage alkohol, så er denne kop unøjagtig?
Hvor godt du er i stand til at handle efter at have drukket alkohol vil ikke have stor betydning, hvis du blæser forbi den lovlige grænse under kørsel. De data, der blev brugt i dette projekt, overvejer, hvad de juridiske og medicinske områder for en brugers BAC er, samtidig med at de overvejer brugerens vægt og køn.
Forbrugsvarer
Generelle elektronikforsyninger til dette projekt omfatter:
- To trykknapper
- Jumper ledninger
- 10k potentiometer
- 2 10k modstande
- 1 220 modstand
Særlige dele/moduler:
- En Arduino (jeg brugte en Uno til dette projekt, men der findes mange billigere alternativer)
- En vandstandssensor (BEMÆRK: Disse sensorer er ofte unøjagtige og korroderer hurtigt, hvilket var en stor frustration over at udvikle dette projekt. Jeg kunne dog finde en løsning, så mine vanskeligheder med dette projekt ikke oversatte til dine vanskeligheder med dette projekt.)
- En LED -ring (12 lysdioder)
- En LCD -skærm
Værktøjer:
- Loddejern (kun nødvendigt ved køb af LED -ring uden overskrifter)
- 3d printer (valgfri)
Trin 1: Download Arduino IDE og kopier påkrævet kode
Der kræves ingen computerprogrammering til dette projekt, alt du skal gøre er at kopiere koden herfra og indsætte den i Arduino IDE. Sådan downloades Arduino IDE:
Download og konfiguration af Arduino IDE:
- Besøg Arduino -webstedet, og vælg download til dit system
- Når downloadingen er fuldført, skal du hente COM -portnummeret til Arduino. Sæt Arduino i, og naviger til din enhedshåndtering. Under havne skal du kigge efter din Arduino og notere portnummeret. Det skal se sådan ud: COMx (Hvor x er et tal 1-9)
- Brug COM -portnummeret til at konfigurere IDE'en til dit kort og port ved at åbne Arduino IDE og vælge "Værktøjer" på den øverste bjælke. Vælg "Board", og vælg din model. Vælg derefter "Port", og vælg den port, du så for din Arduino i Enhedshåndtering.
Indhentning af projektkode
- Kopier kode fra dette trin, og indsæt den i den hvide sektion af Arduino IDE. Sørg for først at slette alt på skitsen, f.eks. Ruterne loop () og void (), da disse er implementeret i den kode, du kopierer og indsætter.
Trin 2: Download påkrævede biblioteker fra Arduino IDE
De biblioteker, der blev brugt i dette projekt, omfatter "Wire", "LiquidCrystal" og "Adafruit Neopixel". Skitsen har brug for disse biblioteker til at kommunikere med de komponenter, der bruges i dette projekt. Sådan downloades disse biblioteker:
- Vælg "Skitse" på den øverste bjælke
- Vælg "Inkluder bibliotek" i rullemenuen
- Vælg "Administrer biblioteker"
- Søg efter de tre biblioteker (Wire, liquid crystal og Adafruit Neopixel), der bruges i dette projekt, og download hver enkelt.
Bemærk, at manglende download af disse biblioteker vil resultere i en fejl, mens skitsen kompileres. Efter dette trin skal du tilslutte kablet fra din Arduino til din bærbare computer og trykke på pileknappen i øverste venstre hjørne af IDE. Dette vil kompilere og uploade skitsen til Arduino. Nu hvor vi er færdige med alle programmeringsrelaterede trin, lad os gå videre til ledninger!
Trin 3: (Valgfrit) Loddehoveder til dele
Hvis du har valgt at købe dele til dette projekt, der ikke allerede havde headerstifter loddet på dem, skal du gøre dette selv. Du skal ikke bekymre dig for meget om denne del, lodningen til dette projekt er meget ligetil.
- Opret et ventileret miljø til lodning i, gerne med en ventilator, der indeholder et filter. Hvis du ikke har sådan en blæser, kan du gøre hvad jeg gør og åbne vinduerne og tænde blæseren eller gå til garagen, mens den er åben.
- Varm dit loddejern op, og sørg for, at du også har en våd svamp til at tørre overskydende lodde af.
- Opsæt overskrifterne og den del, du vil fastgøre overskrifterne i, ved hjælp af en hjælpende hånd eller et andet værktøj, der giver dig mulighed for at arrangere delene, mens du kan holde loddejernet.
- Rør loddet til loddejernet, mens du er på forbindelsen mellem hovedstiften og den del, du lodder stifterne til. Tag strygejernet af, når der er dannet nok loddetin til at sikre elektrisk kontakt mellem hovedstifterne og delen. Tør overskydende loddemetal af på svampen, og gentag denne proces for alle stifter.
- Når alle stifter er loddet, placeres loddejernet i stativet, drejes knappen til "off", og strygejernet tages ud. Vent, indtil jernet er helt afkølet for at lægge det væk.
Trin 4: Følg Picture and Wire Arduino til Components
I dette trin skal du bruge jumpertråde til at forbinde de nødvendige dele til projektet med Arduino. Jeg har leveret en Fritzing -fil til at gøre dette, som kan ses på dette trin. Se venligst nedenfor for en liste over almindelige spørgsmål, som jeg stiller mig selv, hvis jeg støder på et problem med ledninger:
- Er mine jord- og strømskinner korrekt forbundet til hinanden og 5v- og GND -benene på Arduino?
- Gjorde jeg rod med mit potentiometer, hvis LCD -displayet ikke viser? (Prøv at dreje potentiometeret rundt for at ændre modstanden, hvis de hvide tegn ikke vises korrekt)
- Er GND og VCC forbundet korrekt til hver del til den korrekte pin? Bruges indstillingen 5 volt? (Alle sensorer og komponenter i dette projekt bruger 5 volt, ikke 3,3 volt.
- Var en ledning ved et uheld placeret en forbindelse væk fra, hvor den skulle være?
BEMÆRK: Når du arbejder med elektronik, skal du altid sørge for, at kredsløbet ikke er strømforsynet, mens det ændres. Ellers kan dele blive beskadiget, og når der arbejdes med større spændinger, kan der opstå personskade
Trin 5: Saml projekt "Coaster"
Du vil måske bemærke, at overskrifterne på LED -ringen stikker ud og ikke tillader dig at placere koppen fladt mod en overflade. For at løse dette problem vil vi vedhæfte LED -ringen til en 3d -printet del, der gør det muligt for ringen at placere fladt på et bord. 3D -filen kan findes på dette trin. Hvis du ikke har en 3d -printer, skal du ikke bekymre dig, dette tryk koster 1,40 at lave på mit lokale bibliotek. Hvis dit lokale bibliotek ikke har en 3d -printer, omfatter andre muligheder hæfteklammer og onlinesælgere. Det skal også bemærkes, at den bestemte del, jeg har vedhæftet, ikke er den eneste kompatible, det er bare måden at lave en model til mig. Så hvis du er god til træbearbejdning eller andet håndværk, ville det være mere end acceptabelt!
Hvis du vælger at udskrive delen til dette projekt:
- Download STL -filen for at importere til en snitter som f.eks. Cura
- Mål diameteren på bunden af en kop efter eget valg
- Juster modellens skala (i millimeter, hvis du bruger Cura) til din måling
Trin 6: Sæt Coaster og sensor på koppen efter eget valg
Tag derefter din coaster og brug klæbemiddel til at fastgøre den til bunden af koppen, du målte. Nu vil jumpertrådene have adgang til vandstandssensoren og LED-ringen og ligge fladt på bordet. Nu skal du montere sensoren. Det er meget omhyggeligt at være hensynsfuld omkring placeringen af sensoren, da disse sensorer, mens de markedsføres som analoge, virkelig kun udsender to signaler- vand eller intet vand. Dette forårsagede rigtig mange problemer for mig, men jeg var i stand til at finde en måde at løse det på, så andre ikke oplevede de samme frustrationer med dette projekt. Nøglen er at placere sensoren nær toppen af, hvor væsken vil være, når koppen er fuld. Dette vil sikre, at sensoren er i stand til at registrere en "tom" tilstand og derfor kan tælle den næste hældte drik.
Trin 7: Forskøn projekt og beskytt ledninger
På dette tidspunkt står du sandsynligvis tilbage med en klump ledninger og dele, der ligner billedet vedhæftet. Hvad du gør for at få projektet til at se bedre ud, er helt op til dig, så længe du har disse kriterier i tankerne:
- Du skal kunne tilslutte en oplader til strømmen til Arduino
- Du skal skære huller ud eller designe mellemrum, så brugeren kan få adgang til LCD-skærmen, knapper, vandstandssensoren og LED-ringen.
- Du skal beskytte de elektroniske komponenter mod at blive våde, da dette er en mulighed, da projektet fokuserer på drikkevarer.
Nogle valgmuligheder for at lukke projektet er:
- En skokasse eller karton
- Et vandtæt elektronikprojektkabinet som det, der findes her
- Et 3D -printet design (Dette er den mulighed, jeg ønskede at forfølge, men det var for dyrt at udskrive et design som dette på mit bibliotek)
Trin 8: Drik ansvarligt
Efter at have fastgjort din kop til rutsjebanen og vandsensoren, er du klar til at gå! Du ved, at alt fungerer korrekt, når LCD -skærmen beder dig om dit køn og din vægt. Den ene knap svarer til vægten, mens den anden svarer til køn. Du kan klikke på hver enkelt for at se, hvilken det er, før du mærker det. Når du har valgt din korrekte vægt (værdierne er i trin på 20) og køn, skal du klikke på begge knapper samtidigt. Dette starter resten af programmet, og du vil se LED -ringen blinke med et regnbuemønster. Koppen er nu klar til at hælde en drink. Når du spiser og hælder flere drikkevarer, bruger programmet BAC -tabellen, der er diskuteret i indledningen, til at bestemme en BAC. Bemærk, at dette program forudsætter en standarddrink for hver kop, se billedet (University of South Alabama), eller besøg her for at se, hvordan din yndlingsdrink oversættes. Bemærk også, at målet med dette projekt ikke er at tilskynde til ulovlig aktivitet, men at fremme sikkert drikke for dem, der er gamle nok til at indtage alkohol. Selvom jeg er meget tilfreds med, hvor nøjagtig BAC -estimeringen forudsætter en standarddrink, er dette projekt et værktøj til at hjælpe dig med at drikke sikkert, men har intet ansvar, hvis du vælger at køre efter forbrug af alkohol.
Trin 9: (Valgfri) Fejlfinding
- "Problem med at uploade til board" -fejl: Når du prøver at kompilere og uploade skitsen til Arduino, vil denne fejl opstå, hvis din COM -port ikke er korrekt konfigureret (Se trin et om, hvordan du finder og indstiller den korrekte COM -port) eller din kortet er ikke tilsluttet.
- LCD -skærm viser ikke hvide tegn: Hvis det blå lys på din LCD er tændt, men du ikke ser nogen hvide tegn efter upload af skitsen, skyldes det sandsynligvis kontrastproblemer. For at løse dette skal du blot dreje dit potentiometer til højre (Drej til venstre, hvis du ser hvide blokke med dine tegn).
- Projektet tæller ikke drikkevarer korrekt: Denne fejl er et vandstandssensorproblem. Vandstandssensormoduler korroderer hurtigt og er kendt for at være meget unøjagtige. Det skulle dog ikke bekymre dig om dette projekt, da jeg behandlede sensoren som en digital sensor frem for en analog. Se trin seks om, hvordan du korrekt fastgør din vandstandssensor.
- Et modul er ekstremt varmt og sender ikke de korrekte værdier: Dette er resultatet af, at enten en GND- eller VCC -forbindelse er brudt, sandsynligvis under arbejde med andre ledninger. Sørg for, at GND- og VCC -forbindelserne til sensoren er komplette, og følg dem til GND- og 5v -benene fra komponenten, til brødbrættet, til Arduino for at lede efter fejl.
- Jeg gik ved et uheld over min vægt: Bare rolig, vægtindstillingen vender tilbage til 100 efter 240, så du kan bare blive ved med at rotere gennem mulighederne for at komme tilbage til din vægt.
Hvis problemer fortsætter, skal du slutte kablet fra Arduino til den bærbare computer, åbne IDE'en og køre skitsen. Mens skitsen kører, vises der flere værdier på den serielle skærm, så du kan se, hvad der ikke fungerer, som det skal. For at få adgang til den serielle skærm, kør programmet og "Værktøjer" og derefter "Seriel skærm" fra rullemenuen.
Trin 10: Refleksion
På programmeringssiden er jeg meget glad for, hvordan dette projekt blev. Det tog et stykke tid for mig at skrive, da jeg stadig er nybegynder, men jeg var i stand til at lære mange nye biblioteker og nå målet om at forudsige BAC, og jeg føler, at jeg ikke tog nogen genveje til at estimere BAC, da jeg brugte både sex og vægt (Dette udgjorde et flertal af skitsen). Dog skal jeg godkende designet. Selvom jeg ikke ejer en 3d -printer eller kender træbearbejdning, ville jeg virkelig gerne have, at mit projekt blev præsenteret på en bedre måde. Jeg har til hensigt snart at få en Ender 3, og det første, jeg vil gøre, er at vende tilbage til den samme instruktør for at forbedre designet. Som min første instruerbare nogensinde, føler jeg, at processen gik godt, og jeg er meget glad for, i hvilket omfang dette projekt tog fat på den prompt, jeg skabte til Party Challenge, men designe noget, jeg gerne vil vende tilbage til senere, når jeg har ressourcerne.
Anbefalede:
Nyd din kølige sommer med en M5StickC ESP32 blæser - Justerbar hastighed: 8 trin
Nyd din kølige sommer med en M5StickC ESP32 blæser - Justerbar hastighed: I dette projekt lærer vi, hvordan du styrer en FAN -hastighed ved hjælp af et M5StickC ESP32 -kort og L9110 blæsermodul
Bliv cool denne sommer: PC Fan Mod: 4 trin (med billeder)
Bliv kølig i sommer: PC Fan Mod: Hvem har ikke et dusin af disse PC Fans liggende? I denne build vil jeg vise dig, hvordan du bruger disse fans til at producere en dejlig justerbar brise i varme sommerdage. Og det kører mindst 4 timer med et almindeligt 9V batteri
Vær sikker på at bruge denne cykellys med blinklys: 5 trin (med billeder)
Vær sikker på at bruge denne cykellys med blinklys: Jeg elsker at cykle, normalt bruger jeg den til at komme i skole. Om vinteren er det oftest stadig mørkt udenfor, og det er svært for andre køretøjer at se min hånd drejesignaler. Derfor er det en stor fare, fordi lastbiler muligvis ikke kan se, at jeg vil
Hold din baby kølig denne sommer - Styring af stumme fans med smarte ting !: 6 trin (med billeder)
Holde din baby kølig denne sommer - Styring af stumme fans med smarte ting !: For to uger siden på tidspunktet for denne skrivning blev jeg far til en utrolig baby dreng! Da årstiderne skiftede, dagene blev længere og temperaturerne blev varmere, tænkte jeg, at det ville være godt at have en slags skærm i
(Sommer) LED -streng til festlig (jul) LED -streng !: 5 trin (med billeder)
(Sommer) LED -streng til festlig (jul) LED -streng !: Så jeg havde stadig disse (sommer) strenge fulde af LED'er liggende siden sidste sommer. Selvfølgelig ser de stadig okay ud, men med julen nærmer sig … Så jeg besluttede mig for at forvandle LED'erne fra sidste sommer til en festlig række farverige LED'er! Ting der er nødvendige