Inhoudsopgave:
- Benodigdheden
- Stap 1: Download Arduino IDE en kopieer de vereiste code
- Stap 2: Download de vereiste bibliotheken van Arduino IDE
- Stap 3: (Optioneel) Soldeerkoppen op onderdelen
- Stap 4: Volg de afbeelding en bedraad Arduino naar componenten
- Stap 5: Monteer het project "Coaster"
- Stap 6: bevestig onderzetter en sensor aan beker naar keuze
- Stap 7: Project verfraaien en draden beschermen
- Stap 8: Drink verantwoord
- Stap 9: (Optioneel) Problemen oplossen
- Stap 10: Reflectie
Video: Deze zomer veilig feesten met een Arduino Blood-Alcohol Reactive LED Cup - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Moeilijkheidsgraad op projectniveau: gemiddeld
Vaardigheden benodigd:
- Een diagram lezen en repliceren
- Solderen als je ervoor kiest om geen voorgesoldeerde onderdelen aan te schaffen
Projectintroductie
In de Verenigde Staten en over de hele wereld vormt alcohol een ernstige bedreiging voor de gezondheid wanneer het op onverantwoorde wijze wordt geconsumeerd. Sterfgevallen door rijden onder invloed en leverschade, maar ook langetermijneffecten zoals mogelijke hersen- en nierschade, kunnen het gevolg zijn van onverantwoord alcoholgebruik. Alleen al in de Verenigde Staten ging 250 miljard dollar verloren door alcoholmisbruik (NIAAA, 2010), evenals door meer dan 88.000 mensen, waardoor alcohol de derde belangrijkste vermijdbare doodsoorzaak in het land is. De vraag voor dit project is als makers, hoe kunnen we dit probleem aanpakken en ervoor zorgen dat leuke feesten met alcohol zoals feestjes veilig en leuk kunnen blijven?
Mijn antwoord op deze vraag was om een manier te vinden om de voorspelde BAG van de gebruiker in te schatten en vervolgens te visualiseren, zodat hij beter kan begrijpen in welke staat hij zich bevond. Voor dit project heb ik de Arduino-microcontroller met een waterniveausensor, LED-ring en een LCD-scherm gebruikt om bij te houden hoeveel drankjes een persoon heeft gedronken en om vervolgens een manier te vinden om het bloedalcoholgehalte (BAC) van de gebruiker op basis van geslacht en gewicht. De geschatte BAG, afhankelijk van het bereik waarin het zich bevond, bepaalt de animatie van de LED-ring hieronder. De reeksen vallen tussen vier verschillende gebieden: veilig, verminderd, bedwelmd en dodelijk. Ik hoop dat je door dit project te maken niet alleen een bruikbaar Arduino-project hebt gemaakt, maar ook een beter begrip hebt gekregen van hoe we alcohol metaboliseren en mogelijk zelfs wat basisprogrammering als je ervoor kiest om de becommentarieerde code te bekijken.
Hoe weet de beker hoeveel drankjes ik heb gedronken?
Als de analoge waarde van de waterniveausensor de 300 overschrijdt, wordt een booleaanse waarde die het kopje vertegenwoordigt, geregistreerd als HOOG (vol). Als de analoge waarde van de sensor lager is dan 300, wordt de booleaanse waarde die de beker vertegenwoordigt, geregistreerd als LAAG (leeg). Om te registreren dat een drankje aan de beker wordt toegevoegd, moet deze booleaanse waarde veranderen van leeg naar vol.
Hoe heb je BAC bepaald?
Om dit project zo nauwkeurig mogelijk te maken, heb ik gegevens van Saint Benedict & Saint John's University gebruikt over hoeveel de BAG van een persoon steeg per geconsumeerde drank. Dit programma houdt niet alleen rekening met het gewicht, maar ook met het geslacht van de gebruiker bij de berekening van de BAG van de gebruiker. Dit komt omdat BAG is gebaseerd op hoe snel een lichaam alcohol kan metaboliseren, wat verschillend is tussen mannen en vrouwen en mensen met verschillende gewichten. De grafieken zijn hier te zien.
Waarom zijn de BAC-reeksen verschillend voor verschillende mensen?
De BAC-bereiken zijn rechtstreeks gebaseerd op de gegevens die zijn verkregen van de SBSJ University, die nagaat hoeveel alcohol een gebruiker in zijn systeem moet hebben om in een van de vier bereiken te vallen:
- Veilig: het enige veilige bereik om een voertuig in te besturen (weergegeven door regenbooganimatie)
- Gehandicapt: er kunnen strafrechtelijke vervolgingen volgen als u een voertuig in dit bereik bestuurt (weergegeven door oranje animatie)
- Bedwelmd: er zullen strafrechtelijke vervolgingen volgen als u een voertuig bestuurt in dit bereik (weergegeven door rode lichten)
- Dodelijk: als u nog niet flauwgevallen bent, loopt u in dit bereik direct medisch gevaar (weergegeven door knipperende rode en witte lichten)
Maar ik kan goed tegen alcohol, dus is deze beker onnauwkeurig?
Hoe goed u zich kunt gedragen na het nuttigen van alcohol maakt niet zoveel uit als u tijdens het rijden over de wettelijke limiet heen blaast. De gegevens die in dit project worden gebruikt, houden rekening met de juridische en medische marges van de BAG van een gebruiker, en houden ook rekening met het gewicht en het geslacht van de gebruiker.
Benodigdheden
Algemene elektronicabenodigdheden voor dit project zijn onder meer:
- Twee drukknoppen
- Jumper draden
- 10k potentiometer
- 2 10k weerstanden
- 1 220 weerstand
Speciale onderdelen/modules:
- Een Arduino (ik heb een Uno gebruikt voor dit project, maar er zijn veel goedkopere alternatieven)
- Een waterniveausensor (LET OP: deze sensoren zijn vaak onnauwkeurig en corroderen snel, wat een grote frustratie was bij het ontwikkelen van dit project. Ik heb echter een oplossing kunnen vinden zodat mijn problemen met dit project zich niet vertaalden in uw problemen met dit project.)
- Een LED-ring (12 LED's)
- Een LCD-scherm
Gereedschap:
- Soldeerbout (Alleen nodig bij aankoop van LED-ring zonder headers)
- 3D-printer (optioneel)
Stap 1: Download Arduino IDE en kopieer de vereiste code
Er is geen computerprogrammering vereist voor dit project, het enige wat u hoeft te doen is de code van hier te kopiëren en in de Arduino IDE te plakken. Om de Arduino IDE te downloaden:
Arduino IDE downloaden en configureren:
- Bezoek de Arduino-website en kies de download voor uw systeem
- Zodra de download is voltooid, krijgt u het COM-poortnummer voor de Arduino. Sluit de Arduino aan en navigeer naar uw Apparaatbeheer. Zoek onder poorten naar je Arduino en noteer het poortnummer. Het zou er ongeveer zo uit moeten zien: COMx (waarbij x een getal is van 1-9)
- Gebruik het COM-poortnummer om de IDE voor uw bord en poort te configureren door de Arduino IDE te openen en "Tools" in de bovenste balk te selecteren. Selecteer "Board" en kies uw model. Kies vervolgens "Poort" en selecteer de poort die je zag voor je Arduino in Apparaatbeheer.
Projectcode verkrijgen
- Kopieer de code van deze stap en plak deze in het witte gedeelte van de Arduino IDE. Zorg ervoor dat u eerst alles op de schets verwijdert, zoals de routines loop() en void(), aangezien deze zijn geïmplementeerd in de code die u kopieert en plakt.
Stap 2: Download de vereiste bibliotheken van Arduino IDE
De bibliotheken die in dit project worden gebruikt, zijn onder meer "Wire", "LiquidCrystal" en "Adafruit Neopixel". De schets heeft deze bibliotheken nodig om te communiceren met de componenten die in dit project worden gebruikt. Om deze bibliotheken te downloaden:
- Selecteer "Sketch" in de bovenste balk
- Selecteer "Bibliotheek opnemen" in het vervolgkeuzemenu
- Selecteer "Bibliotheken beheren"
- Zoek naar de drie bibliotheken (Wire, liquid crystal en Adafruit Neopixel) die in dit project worden gebruikt en download ze allemaal.
Houd er rekening mee dat het niet downloaden van deze bibliotheken zal resulteren in een fout terwijl de schets wordt gecompileerd. Sluit na deze stap de kabel van je Arduino aan op je laptop en druk op de pijlknop in de linkerbovenhoek van de IDE. Hiermee wordt de schets gecompileerd en geüpload naar de Arduino. Nu we klaar zijn met alle programmeergerelateerde stappen, gaan we verder met de bedrading!
Stap 3: (Optioneel) Soldeerkoppen op onderdelen
Als je ervoor hebt gekozen om onderdelen voor dit project te kopen waarop nog geen header-pinnen waren gesoldeerd, moet je dit zelf doen. Maak je niet al te veel zorgen over dit onderdeel, het solderen voor dit project is heel eenvoudig.
- Creëer een geventileerde omgeving om in te solderen, bij voorkeur met een ventilator met filter. Als je zo'n ventilator niet hebt, kun je doen wat ik doe en de ramen openen en de ventilator aanzetten of naar de garage gaan terwijl deze open is.
- Verwarm je soldeerbout en zorg ervoor dat je ook een natte spons hebt om overtollig soldeer af te vegen.
- Plaats de headers en het onderdeel waarin u de headers wilt bevestigen met behulp van een helpende hand of een ander hulpmiddel waarmee u de onderdelen kunt rangschikken terwijl u de soldeerbout kunt vasthouden.
- Raak de soldeerbout aan op de verbinding tussen de header-pin en het onderdeel waar u de pinnen aan soldeert. Haal het strijkijzer eraf als er voldoende soldeer is gevormd om elektrisch contact tussen de koppennen en het onderdeel te verzekeren. Veeg overtollig soldeer weg op de spons en herhaal dit proces voor alle pinnen.
- Nadat alle pinnen zijn gesoldeerd, plaatst u de soldeerbout in de standaard, draait u de knop naar "uit" en haalt u de stekker uit het stopcontact. Wacht tot het strijkijzer volledig is afgekoeld om het op te bergen.
Stap 4: Volg de afbeelding en bedraad Arduino naar componenten
In deze stap moet u jumperdraden gebruiken om de onderdelen die nodig zijn voor het project op de Arduino aan te sluiten. Ik heb een Fritzing-bestand verstrekt om dit te doen, wat te zien is in deze stap. Hieronder vindt u een lijst met veelgestelde vragen die ik mezelf stel als ik een probleem met de bedrading tegenkom:
- Zijn mijn grond- en stroomrails goed met elkaar verbonden en met de 5v- en GND-pinnen van de Arduino?
- Heb ik geknoeid met mijn potentiometer als het LCD-scherm niet wordt weergegeven? (Probeer de potentiometer om te draaien om de weerstand te veranderen als de witte karakters niet goed verschijnen)
- Zijn de GND en VCC op elk onderdeel goed aangesloten op de juiste pin? Wordt de 5-volt instelling gebruikt? (Alle sensoren en componenten in dit project gebruiken 5 volt, niet 3,3 volt.
- Is een draad per ongeluk één aansluiting verwijderd van waar hij zou moeten zijn?
OPMERKING: Zorg er bij het werken met elektronica altijd voor dat het circuit niet wordt gevoed terwijl het wordt gewijzigd. Anders kunnen onderdelen beschadigd raken en kan bij het werken met hogere spanningen lichamelijk letsel ontstaan
Stap 5: Monteer het project "Coaster"
Het zal je misschien opvallen dat de koppen van de LED-ring uitsteken en dat je de beker niet echt plat tegen een oppervlak kunt plaatsen. Om dit probleem aan te pakken, zullen we de LED-ring bevestigen aan een 3D-geprint onderdeel waarmee de ring plat op een tafel kan worden geplaatst. Het 3D-bestand is te vinden op deze stap. Als je geen 3D-printer hebt, maak je geen zorgen, deze afdruk kost 1,40 om te maken in mijn plaatselijke bibliotheek. Als uw plaatselijke bibliotheek geen 3D-printer heeft, zijn er ook andere opties zoals Staples en online verkopers. Er moet ook worden opgemerkt dat het bepaalde onderdeel dat ik heb bijgevoegd niet het enige compatibele is, het is gewoon de manier om een model voor mij te maken. Dus als je goed bent met houtbewerking of andere ambachten, zou dat meer dan acceptabel zijn!
Als u ervoor kiest om het onderdeel voor dit project af te drukken:
- Download het STL-bestand om te importeren in een slicer zoals Cura
- Meet de diameter van een bodem van een kopje naar keuze
- Pas de schaal van het model (in millimeters bij gebruik van Cura) aan uw meting aan
Stap 6: bevestig onderzetter en sensor aan beker naar keuze
Neem vervolgens uw onderzetter en gebruik lijm om deze aan de onderkant van de maatbeker te bevestigen. Nu hebben de jumperdraden toegang tot de waterniveausensor en de LED-ring en kunnen ze ook plat op de tafel liggen. Nu moet je de sensor bevestigen. Het is heel voorzichtig om rekening te houden met de plaatsing van de sensor, omdat deze sensoren, hoewel ze als analoog op de markt worden gebracht, eigenlijk maar twee signalen afgeven: water of geen water. Dit veroorzaakte heel veel problemen voor mij, maar ik heb een manier kunnen vinden om het op te lossen zodat anderen niet dezelfde frustraties met dit project zouden ervaren. De sleutel is om de sensor in de buurt van de bovenkant te plaatsen waar de vloeistof zal zijn als de beker vol is. Dit zorgt ervoor dat de sensor een "lege" toestand kan registreren en dus de volgende geschonken drank kan tellen.
Stap 7: Project verfraaien en draden beschermen
Op dit punt blijft u waarschijnlijk achter met een klomp draden en onderdelen die eruitzien als de bijgevoegde foto. Wat u doet om het project er beter uit te laten zien, is geheel aan u, zolang u deze criteria in gedachten houdt:
- U moet een oplader kunnen aansluiten op de stroomvoorziening van de Arduino
- U moet gaten uitsnijden of ruimtes ontwerpen zodat de gebruiker toegang heeft tot het LCD-scherm, de knoppen, de waterniveausensor en de LED-ring.
- U moet de elektronische componenten beschermen tegen nat worden, aangezien dit een mogelijkheid is aangezien het project zich richt op dranken.
Enkele keuzes voor het insluiten van het project zijn:
- Een schoenendoos of doos
- Een waterdichte behuizing voor een elektronicaproject zoals die hier te vinden is
- Een 3D-geprint ontwerp (dit is de optie die ik wilde nastreven, maar het was te duur om een ontwerp als dit af te drukken in mijn bibliotheek)
Stap 8: Drink verantwoord
Nadat je je kopje aan de onderzetter en de watersensor hebt bevestigd, ben je klaar om te gaan! U weet dat alles naar behoren werkt wanneer het LCD-scherm u om uw geslacht en gewicht vraagt. De ene knop komt overeen met het gewicht, de andere met het geslacht. U kunt op elk ervan klikken om te zien welke het is voordat u het labelt. Na het selecteren van uw juiste gewicht (waarden zijn in stappen van 20) en geslacht, klikt u tegelijkertijd op beide knoppen. Hiermee start u de rest van het programma en ziet u de LED-ring een regenboogpatroon knipperen. De beker is nu klaar om een drankje in te schenken. Naarmate u meer drankjes consumeert en schenkt, gebruikt het programma de BAG-tabel die in de inleiding is besproken om een BAG te bepalen. Houd er rekening mee dat dit programma uitgaat van één standaarddrankje voor elke kop, zie de afbeelding (University of South Alabama), of bezoek hier om te zien hoe uw favoriete drankje zich vertaalt. Merk ook op dat het doel van dit project niet is om illegale activiteiten aan te moedigen, maar om veilig drinken te promoten voor mensen die oud genoeg zijn om alcohol te consumeren. Hoewel ik erg blij ben met hoe nauwkeurig de BAG-schatting uitgaat van een standaarddrank, is dit project een hulpmiddel om u te helpen veilig te drinken, maar het is niet aansprakelijk als u ervoor kiest om te rijden na het nuttigen van alcohol.
Stap 9: (Optioneel) Problemen oplossen
- "Probleem uploaden naar bord"-fout: wanneer u probeert de schets te compileren en te uploaden naar de Arduino, zal deze fout optreden als uw COM-poort niet correct is geconfigureerd (zie stap één over het vinden en instellen van de juiste COM-poort) of uw bord is niet aangesloten.
- LCD-scherm toont geen witte tekens: Als het blauwe lampje van uw LCD-scherm aan is, maar u ziet geen witte tekens na het uploaden van de schets, is dit hoogstwaarschijnlijk te wijten aan contrastproblemen. Om dit op te lossen, draai je gewoon je potentiometer naar rechts (draai naar links als je witte blokken met je karakters ziet).
- Het project telt de drankjes niet correct: deze fout is een probleem met de waterniveausensor. Waterniveausensormodules roesten snel en staan bekend als zeer onnauwkeurig. Voor dit project hoeft u zich daar echter geen zorgen over te maken, aangezien ik de sensor als een digitale sensor heb behandeld in plaats van als een analoge. Zie stap zes voor het correct bevestigen van uw waterniveausensor.
- Een module is extreem heet en verzendt niet de juiste waarden: Dit is het resultaat van een verbroken GND- of VCC-verbinding, waarschijnlijk tijdens het werken met andere draden. Zorg ervoor dat de GND- en VCC-verbindingen met de sensor compleet zijn en volg ze naar de GND- en 5v-pinnen van het onderdeel, naar het breadboard, naar de Arduino om fouten te zoeken.
- Ik ben per ongeluk over mijn gewicht gegaan: maak je geen zorgen, de gewichtsinstelling keert terug naar 100 na 240, dus je kunt gewoon door de opties blijven draaien om weer op je gewicht te komen.
Als de problemen aanhouden, sluit u de kabel van de Arduino aan op de laptop, opent u de IDE en voert u de schets uit. Terwijl de schets loopt, worden verschillende waarden weergegeven in de seriële monitor, zodat u kunt zien wat er niet werkt zoals het hoort. Om toegang te krijgen tot de seriële monitor, voert u het programma en "Tools" en vervolgens "Serial Monitor" uit het vervolgkeuzemenu uit.
Stap 10: Reflectie
Wat de programmering betreft, ben ik erg blij met de manier waarop dit project is verlopen. Het kostte me een tijdje om te schrijven omdat ik nog een beginner ben, maar ik heb veel nieuwe bibliotheken kunnen leren en het doel van het voorspellen van BAG bereikt, en ik heb het gevoel dat ik geen kortere weg heb genomen bij het schatten van de BAG, aangezien ik zowel seks als gewicht (dit vormde het grootste deel van de schets). Ik moet het ontwerp echter goedkeuren. Hoewel ik geen 3D-printer bezit of houtbewerking ken, wilde ik echt dat mijn project op een betere manier zou worden gepresenteerd. Ik ben van plan om binnenkort een Ender 3 te krijgen, en het eerste wat ik zal doen is meteen terugkomen op dezelfde instructable om het ontwerp te verbeteren. Als mijn eerste instructable ooit, heb ik het gevoel dat het proces goed is verlopen en ik ben erg blij met de mate waarin dit project de vraag beantwoordde die ik voor de Party Challenge had gemaakt, maar ontwerp iets waar ik later op terug zou willen komen als ik de middelen heb.
Aanbevolen:
Halloween-pompoen met een bewegend animatronic-oog - Deze pompoen kan zijn ogen rollen! 10 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Halloween-pompoen met een bewegend animatronic-oog | Deze pompoen kan zijn oog rollen!: In deze Instructable leer je hoe je een Halloween-pompoen maakt die iedereen bang maakt als zijn oog beweegt. Stel de triggerafstand van de ultrasone sensor in op de juiste waarde (stap 9) en je pompoen zal iedereen die het aandurft om snoep te nemen versteenen
Deze PNG is een geheim compartiment: 4 stappen
Deze PNG is een geheim compartiment: jouw uitdaging, beste lezer, is om erachter te komen welk bericht is verborgen in de output.png-afbeelding die ik voor je op github heb gezet. U kunt daar de MessageHider-code gebruiken om het bericht uit te pakken. Als je in de war bent, reageer dan hieronder en ik zal je helpen
Een Linux-opstartschijf maken (en hoe deze te gebruiken): 10 stappen
Een Linux-opstartschijf maken (en hoe deze te gebruiken): Dit is een eenvoudige inleiding over hoe u aan de slag kunt met Linux, met name Ubuntu
Blijf koel deze zomer: PC Fan Mod: 4 stappen (met afbeeldingen)
Blijf koel deze zomer: PC Fan Mod: Wie heeft er niet een dozijn van die PC-fans rondslingeren? In deze build laat ik je zien hoe je die ventilatoren kunt gebruiken om een mooi regelbaar briesje te produceren tijdens warme zomerdagen. En hij werkt minimaal 4 uur op een gewone 9V batterij
VEILIG?, een robot die eigendommen bespaart. 6 stappen (met afbeeldingen)
VEILIG?, een robot die eigendommen opslaat.: Hallo en welkom bij deze instructable! De robot: VEILIG? kan een cool zijn zoals je het wilt maken. Deze vriendelijke robot, zoals je weet, zou ons de gunst kunnen geven om onze bezittingen te redden. Bovendien, in deze versie van SAFE? we konden niet bepalen t