Inhoudsopgave:

Bluetooth-gestuurde NeoPixel-kerstboom - Ajarnpa
Bluetooth-gestuurde NeoPixel-kerstboom - Ajarnpa

Video: Bluetooth-gestuurde NeoPixel-kerstboom - Ajarnpa

Video: Bluetooth-gestuurde NeoPixel-kerstboom - Ajarnpa
Video: Merry Microbits - Christmas Ornaments 2024, November
Anonim

Heb je je afgevraagd hoe je dit jaar IoT (Internet of Things) in je kerstboom kunt toevoegen? Nou, het is helemaal mogelijk! Ik noem dit project persoonlijk "ArduXmas", en het bestaat uit een RGB NeoPixel ledstrip die wordt bestuurd door een Arduino-bord via Bluetooth. Dit is een beginnersvriendelijk project en een geweldige introductie tot Arduino e IoT, dus pak je gereedschap en laten we het maken!

Benodigdheden:

Voor dit project heb je nodig:

  • Arduino (ik heb Nano gebruikt, maar elke versie zal werken, zorg er gewoon voor dat je je bord goed van stroom voorziet)
  • NeoPixel WS2812b ledstrip
  • HC-06 Bluetooth-module
  • 5V 2A DC-voeding
  • DC Barrel Power Jack/Connector
  • Fenolietplaat voor het vasthouden van de componenten
  • Behuizing:
  • Android-smartphone met Blynk-app geïnstalleerd

Stap 1: Het circuit

Het circuit
Het circuit
Het circuit
Het circuit
Het circuit
Het circuit

De elektronica van dit project is heel eenvoudig. De Arduino, Bluetooth-module en LED-strip worden gevoed door de 5V-voeding (zorg ervoor dat alle GND's met elkaar zijn verbonden). Het Arduino-bord wordt gevoed via de 5V-poort (LET OP: het voeden van de Arduino met behulp van de 5V-poort kan uw bord beschadigen als u niet voorzichtig bent. Zorg ervoor dat u een 5V-gereguleerde voeding gebruikt en verwissel de +5V niet en GND-draden). De stroom die uw voeding levert, is afhankelijk van de lengte van uw ledstrip. Ik gebruik 180 leds met 40% van de volledige helderheid en 2 ampères houden het goed, maar zorg er altijd voor dat u de nodige stroom levert (ONTHOUD: elke RGB-led verbruikt ongeveer 20mA + 20mA + 20mA = 60mA).

De HC-06 Bluetooth-module is verbonden met pinnen 0 en 1 (RX, TX) van de Arduino, onthoud dat om deze module te gebruiken, de RX-pin van de HC-06 is verbonden met de TX van de Arduino en de TX-pin van de HC-06 is aangesloten op de RX van de Arduino. Dit zijn de seriële verbindingspinnen van het bord en worden gebruikt om de opdrachten van de smartphone te ontvangen. Ik heb een schakelaar toegevoegd om de module gemakkelijk aan / uit te zetten, zodat ik hem kan uitschakelen bij het programmeren van het bord, anders kan de computer niet communiceren met de Arduino.

In het circuit is de data-out-pin die naar de LED-strip gaat de digitale pin 2, maar je kunt elke PWM-pin kiezen en deze dienovereenkomstig in de code wijzigen (ONTHOUD: NeoPixel's LED-strips hebben een richting voor het datasignaal. Zoek altijd naar de pijlpictogrammen in uw strip).

Om de verbindingen te maken, gebruik ik een fenolietplaat met gaten erin, zodat het gemakkelijk te solderen is en volgend jaar uit elkaar te halen.

Stap 2: De behuizing

de behuizing
de behuizing
de behuizing
de behuizing
de behuizing
de behuizing

Voor de behuizing gebruik ik gewoon de voedingbehuizing van een oude notebook die mooi op de componenten past. Zet alles vast met hete lijm en laat gaten voor de Arduino's USB-poort, HC-06's schakelaar, DC-connector en LED-stripconnector.

Stap 3: Blynk-app

Blynk-app
Blynk-app
Blynk-app
Blynk-app
Blynk-app
Blynk-app

Voor de communicatie met de Arduino gebruiken we de Blynk-app. Met Blynk kun je eenvoudig interfaces maken om gegevens van de smartphone naar de hardware te sturen of andersom, het is ook mogelijk om de poorten van de microcontroller direct aan te sturen zonder één regel code te veranderen!

DISCLAIMER: Helaas werkt deze applicatie alleen voor Android-smartphones omdat de Bluetooth-functie nog in bèta is en nog niet beschikbaar is voor IOS, dit betekent ook dat het niet mogelijk zal zijn om het project als een zelfstandige app te exporteren.

Stel uw app in om het authenticatietoken voor uw project in uw e-mailinbox te ontvangen (deze auth is later nodig bij de Arduino-code). De website van Blynk heeft een geweldige stapsgewijze zelfstudie hierover, bekijk deze:

Voor dit project gebruik ik twee knoppen om 2 voorgecodeerde lichtanimaties in te schakelen; één RGB-component om de kleur van de ledstrip in te stellen; een schuifregelaar om de helderheid te regelen en een Bluetooth-component om verbinding te maken met de Arduino. Bekijk de afbeeldingen om te zien hoe elk onderdeel is geconfigureerd. Let op de pinnen die voor dit project worden gebruikt, aangezien we de virtuele pinnen van Blynk gebruiken, dit is een leuke functie waarmee gegevens van de app naar de hardware kunnen worden verzonden. Voor meer informatie over virtuele pinnen:

Stap 4: Arduino-code

Arduino-code
Arduino-code

Het is tijd om wat code gedaan te krijgen! Het bestand dat ik heb verstrekt heeft de basisstructuur om het project uit te voeren, maar u kunt het naar wens wijzigen. Om het echter goed te laten werken, moet je het auth-teken vervangen door het token dat je in je e-mailinbox hebt ontvangen. Vergeet ook niet om de variabelen LED_PIN en LED_COUNT te wijzigen volgens uw instellingen.

Het gedrag van de LED's wordt bepaald door de anim-variabele die verandert wanneer een verzoek wordt ontvangen door de app. U kunt zoveel mogelijkheden voor animaties toevoegen als u wilt, voeg gewoon uw functie toe aan de schakelaarstructuur in de toggleAnimation()-functie en wijs de bijbehorende virtuele pin-waarde toe bovenaan de code.

De animatie die in loop() wordt uitgevoerd, is gekoppeld aan een timer die in intervallen van 100 ms loopt. Dit is nodig, en ik raad het niet aan om het te wijzigen, omdat het de opdracht Blynk.run() verstoort en de verbinding wordt verbroken als de Blynk-bibliotheek te veel verzoeken in een korte tijdsperiode detecteert.

Aanbevolen: