Inhoudsopgave:
- Stap 1: Onderdelen
- Stap 2: Controllerassemblage
- Stap 3: Vormen
- Stap 4: Code & WiFi
- Stap 5: Eindmontage
Video: Buurtbrede gesynchroniseerde LED's - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Ik had een paar draadloze LED-balken waarvan ik dacht dat ik ze voor de vakantie kon uitzetten. Maar in mijn tuin hadden ze net zo goed bekabeld kunnen zijn. Dus, wat is de koelere uitdaging? LED-decoraties bij alle huizen in mijn blok met een gesynchroniseerde weergave! In dit gekke jaar is het een manier om ons met elkaar te verbinden.
Dit zijn ESP8266-aangedreven LED-strengen en ze zijn verbonden met WiFi-mesh, zodat ze allemaal tegelijkertijd dezelfde stap in de animatiereeks laten zien. Omdat ze mesh-code gebruiken om verbinding te maken, kunnen ze een paar huizen van elkaar verwijderd zijn en worden de berichten van knooppunt naar knooppunt doorgegeven.
Ze werken op 5 volt en ik gebruikte stroomadapters, maar ze kunnen ook een tijdje op USB-batterijen werken. Ze zijn dus draagbaar, hebben hun eigen wifi-netwerk dat niet is verbonden met internet en kunnen off-grid werken.
Al onze buren waren enthousiast over deze gedeelde decoratie, en het is echt leuk om te zien hoe ze allemaal hetzelfde display tonen als je over straat loopt. Ik heb hier wat foto's van een paar voor mijn huis om te testen, maar het was echt moeilijk om ze op straat te fotograferen.
Stap 1: Onderdelen
ESP8266 D1 Mini - Ik heb de D1 Mini-modules gebruikt, omdat ik maar één I/O-pin voor de LED's nodig heb. Dit project zou kunnen worden gedaan zonder solderen met behulp van een dergelijk aansluitscherm en een andere ESP8266-module. Er is een versie van de D1 Mini met een betere antenne - de D1 Mini Pro. Het heeft een keramische antenne en een U. FL-connector voor een externe antenne, maar u moet een weerstand van 0 ohm voor opbouwmontage voor de externe antenne verplaatsen. Meer discussie in een latere stap.
WS2811 LED-strengen - Ik heb WS2811-strengen gebruikt omdat ze waterdicht zijn (behalve de JST-connectoren) en gemakkelijk om mee te werken. WS2812b "Neopixel" -strips zouden precies dezelfde code gebruiken, enz. Ik gebruikte 5v-strips, maar je kunt ze in 12v krijgen (gebruik minder stroom) - dan heb je een spanningsomvormer nodig voor de ESP8266's. U kunt desgewenst ook WS2811 LED-strengen met waterdichte connectoren krijgen. De LED-strengen die ik heb gebruikt, hebben aan beide uiteinden JST SM-connectoren - de vrouwelijke is de ingang, hoewel ik ze andersom heb gezien (mannelijk als ingang). De richting is ook aangegeven op de LED's zelf. Er zijn ook stroominjectiedraden - ik heb de uiteinden afgeknipt zodat de vertinde delen niet kunnen kortsluiten. Je kunt ze ook per 10 stuks kopen.
330 Ohm 1/4 Watt Weerstand - deze wordt gebruikt op de datapin op de ESP8266 om flikkeren van de LED's te voorkomen.
JST SM 3-pins mannelijke connector - Deze zijn om aan te sluiten op de LED-strips. Merk op dat de "mannelijke" connector een kap erover heeft.
2,1 mm CCTV Female Connector - deze worden gebruikt voor de voedingsconnector. Je zou hiervoor een ander connectorsysteem kunnen gebruiken als je wilt.
5V-voeding - de ampèrewaarde hangt af van het aantal LED's dat u heeft. Een 2A is waarschijnlijk OK voor 50 of 100 LED's die nooit volledig aan zijn (zie de bedradingsstap voor meer info).
JST SM 3-pins verlengkabel of een 2,1 mm verlengkabel - aangezien de JST-connector op de D1 Mini zich dicht bij de LED's bevindt, wilt u over het algemeen een verlenging zodat de LED's verder van de CPU kunnen worden geplaatst. In mijn geval heb ik de CPU uiteindelijk hoger in de decoratie geplaatst om een beter wifi-bereik te krijgen, dus ik hield de CPU in de buurt van de LED's en gebruikte in plaats daarvan een verlengsnoer van 2,1 mm.
USB naar 2,1 mm kabel - dit is optioneel - laat u de draad van stroom voorzien vanaf elke USB-bron of batterij.
Krimpkous van 3 mm - u hebt hiervan slechts ongeveer 1 nodig om de weerstand op de D1 Mini te bedekken.
20 mm doorzichtige krimpkous - dit is gedeeltelijk optioneel om de connectoren op de D1 Mini te beschermen. Zorg ervoor dat u de resetschakelaar na het aanbrengen vastklikt als de slang de schakelaar samendrukt.
Waterproof Box - om de voeding en CPU buiten te beschermen. De meeste van mijn buren gebruikten gewoon plastic zakken.
1/2" EMT-leiding - een stuk van 29" past op de vorm van het snoepgoed - ik heb 4 kabelbinders gebruikt om het vast te houden. Ik heb 1/2" PVC geprobeerd, en het past, maar raakt de LED's aan beide kanten.
3/8 "x 3' wapening - zodra de EMT aan de vorm is bevestigd, kunt u de wapening in de grond slaan en de EMT-buis eroverheen plaatsen. 1/2" wapening past, maar u moet eventuele gebogen delen, en het is dichtbij - als het plat wordt of iets dergelijks wanneer het erin wordt geslagen, zal het erg strak zijn. Het is dus waarschijnlijker dat de 3/8" de binnendiameter van de EMT-buis gemakkelijk vrijmaakt.
Candy Cane-vorm - zie de stap hierop, je kunt een vorm maken, ze over een struik draperen of een vorm als deze gebruiken.
Stap 2: Controllerassemblage
De controller bestaat uit de D1 Mini (ESP8266), een 2,1 mm CCTV-vrouwelijke voedingsaansluiting, een weerstand van 330 ohm en een 3-pins JST-mannelijke connector.
De aanname voor dit project is dat je 50-100 LED's gaat gebruiken. Als u meer wilt gebruiken, moet u stroominjectie gebruiken om alle LED's van stroom te voorzien. Zie deze andere Instructable voor een diepere discussie daarover.
Met 50 LED's allemaal op volledig wit, zouden ze 50 x 0,06 A = 3 ampère trekken. Dus met een 2A-adapter gaan we ervan uit dat ze nooit volledig aan zullen staan. Voor 100 LED's is het maximum 6A, dus er moet nog meer op worden gelet dat er slechts enkele tegelijk branden. Zelfs met 100 LED's van elk 0,02A hebben we 2 Ampère in gebruik. Dus een voeding met een hogere stroomsterkte wordt aanbevolen, hoewel ik de displays heb afgestemd om niet alle LED's of kleuren tegelijk te gebruiken, ze veel heb gedimd en ben begonnen met 2A-voedingen met grotere in reserve. Dit is een geweldig artikel over het verminderen van de stroomvereisten.
De weerstand van 330 ohm in lijn met de datadraad is om flikkering door elektronisch rinkelen te voorkomen, aangezien de gegevens een vrij hoge frequentie hebben. Dit is meer een factor bij veel LED's, maar het is een goede gewoonte om het toe te voegen.
Ik heb de weerstand rechtstreeks op de D1 Mini gesoldeerd, maar liet ongeveer 1/8 "van de kabel boven het bord zodat ik ze plat kon buigen. Ik gebruikte ongeveer 1" krimpkous van 3 mm op de weerstand om te voorkomen dat deze kortsluiting zou maken op de bord.
Ik heb 20 mm doorzichtige krimpkous gebruikt om de D1 Mini te beschermen tegen het aanraken van metaal enz. Controleer de reset-schakelaar aan de zijkant - mogelijk moet u de krimpkous een beetje doorknippen om ervoor te zorgen dat deze niet op de schakelaar drukt. Dat had ik bij al mijn spullen nodig.
Merk op dat ik geen niveauverschuiver nodig leek te hebben van de 3.3V ESP8266-uitgangen en de LED's die op 5V werken (aangezien de LED-chipspecificatie is om de datalijn niet minder dan 70% van het aanbod te hebben). Ik had in eerdere projecten (stap 3) met WS2812b-strips wel een diode / opofferings-LED nodig, maar de directe WS2811-chips in de LED's lijken tot nu toe in orde.
Je zou dit kunnen doen zonder te solderen! Een ESP8266 terminal shield met een andere CPU zou net zo goed werken. De vormfactor van de D1 Mini is lekker klein, maar ze werken allemaal ongeveer hetzelfde.
Stap 3: Vormen
De LED-strengen kunnen een vrije vorm hebben, of je kunt ze in vormen maken - doe-het-zelf of in een online winkel. Ik bestelde een paar vormen bij HolidayCoro - enkele kleine LED-bomen, een kous en een snoepriet. De kous nam 50 LED's mooi op - de lengte van één streng. De kleine boom heeft 100 LED's nodig, maar je kunt er maar de helft van doen als je wilt - aan de straatkant. Uiteindelijk was de zuurstok de favoriet van de buren omdat hij wat groter was. 99 LED's, en ik heb de laatste op de achterkant gelaten met het idee dat het kan worden gebruikt voor foutopsporing.
Omdat de vormen in het wit kwamen, hebben we besloten om er rode strepen op te schilderen, zodat ze er overdag beter uitzien. Ik maskeerde ze, deed snel fijn zand, veegde af met aceton (nagellakremover van volledige sterkte) en gebruikte twee lagen spuitverf die op plastic werkt. Het leek goed te hechten. We deden het meestal aan de ene kant, en een paar aan de andere kant voor een paar huizen die er 2 hadden.
Stap 4: Code & WiFi
De D1 Mini maakt gebruik van een Espressif ESP8266 module. Ik heb het geprogrammeerd met de Arduino IDE, dus het voelt als een krachtige Arduino met ingebouwde WiFi. Er zijn talloze instructies op internet over het configureren van de Arduino IDE voor de ESP8266 en D1 Mini, dus ik zal ze hier niet herhalen.
De code is gebaseerd op een eerdere Instructable. Het gebruikt de Painless Mesh-bibliotheek om alle CPU's met elkaar te laten praten. Ik gebruikte de FastLED-bibliotheek omdat ik eerder problemen had met de mesh-bibliotheek en de Neopixel-bibliotheek, en ik heb dat deze keer niet opnieuw getest.
Ik weet niet zeker wat het maximum is op het aantal knooppunten. Sommige berichten geven aan dat het wordt beperkt door het aantal berichten en CPU-typen en misschien is de limiet rond de 30-60 knooppunten. Deze applicatie verzendt niet veel berichten - alleen de animatiewijziging, hoewel er enkele automatische berichten zijn, zoals mesh-wijzigingen en tijdsynchronisatieberichten.
U kunt de LED's tijdens het coderen op de D1 Mini aansluiten, maar u wilt misschien een externe voeding als u er meer dan 50 hebt, omdat u mogelijk de voeding van de USB-poort van uw computer en de stroomregelaar op de D1 Mini overschrijdt. Dat gezegd hebbende, met mijn code die de LED's niet volledig aanzette, kon ik zonder problemen 100 LED's op de USB-verbinding programmeren.
De ESP8266-module heeft wifi aan boord. Omdat de mesh-code (PainlessMesh) die we gebruiken een Access Point op elke module creëert, is het bereik voor een buurtbreed bereik belangrijk. Ik gebruikte snoeprietvormen en plaatste de CPU bovenaan om het beste bereik te krijgen, en het was ongeveer 50-100 voet - een meter of twee in mijn buurt. Hogere en betere zichtlijn (LOS) verbetert de zaken. Het bereik stak in sommige gevallen wel de straat over (hij hing meer af van auto's die de LOS blokkeerden).
Er waren een paar huizen die niet gesynchroniseerd waren vanwege wifi-obstructies, maar de lichten zien er goed uit, zelfs als ze niet zijn gesynchroniseerd. Ik heb een "repeater"-knooppunt gemaakt met alleen een D1 Mini op een stick die wordt gevoed door een USB-batterij. Wanneer ze tussen de huizen werden geplaatst, waren ze goed gesynchroniseerd. Voor een meer afgelegen repeater kun je eventueel een USB-batterij op zonne-energie gebruiken, hoewel deze niet erg snel oplaadt.
Ik zag nog steeds intermitterende synchronisatieproblemen en vond toen deze opmerking over het hebben van te veel knooppunten of het verspreiden ervan:
gitlab.com/painlessMesh/painlessMesh/-/wik…
Met die opstelling begon het veel beter te werken! Dit wijst een bepaald knooppunt aan als het belangrijkste, dus mijn code om over het controlerende knooppunt te onderhandelen is niet nodig, wat de mesh kan opsplitsen. Ik heb een bijgewerkt/alternatief codevoorbeeld bijgevoegd. Deze benadering vereist dat het hoofdknooppunt is ingeschakeld om ze te synchroniseren, dus de mesh is niet zo fouttolerant, maar werkt beter wanneer deze is verspreid zoals de mijne. Zorg ervoor dat u de code voor die versie bewerkt - slechts één knooppunt moet worden ingesteld op de root - zie de opmerkingen in de code.
Ik heb ook nog een update toegevoegd aan de SetRoot-variant: ik heb code toegevoegd om de ESP8266 te resetten als er gedurende 10 minuten geen opdrachten zijn geweest. Dit geeft het knooppunt de kans om het hoofdknooppunt opnieuw te ontdekken. Dit leek te helpen met enkele van de meer afgelegen knooppunten.
Aan het einde van het seizoen heb ik enkele D1 Mini Pro-modules kunnen testen. Ze hebben een keramische antenne op het bord en je kunt ook een U. FL-connector en externe antenne gebruiken als je een weerstand van nul ohm verplaatst. Ik heb een paar geprobeerd die synchronisatieproblemen hadden met de D1 Mini Pro's met de keramische antennes, en ze werkten beter. Ik deed wat latere testen met één knooppunt in mijn huis. Op basis van de resultaten stappen we volgend jaar over op de D1 Mini Pro modules met de keramische antennes.
Met een externe D1 Mini: Alleen de D1 Mini Pro met een externe antenne zag het en de signaalsterkte was laag
Met een remote D1 Mini Pro met keramische antenne: De D1 Mini, de D1 Mini Pro met keramische antenne en de D1 Mini Pro met een externe antenne zagen het allemaal met ongeveer dezelfde signaalsterkte, dus dat was een verbetering. De oriëntatie van de borden (antennes) doet er tot op zekere hoogte toe
Met een externe D1 Mini Pro met een externe antenne: alle andere borden zagen het, maar de signaalsterkte was niet veel beter dan de tests met de ingebouwde keramische antenne, dus ik zal niet de moeite nemen om die nul ohm-weerstanden te verplaatsen en antennes op de zuurstokken
Stap 5: Eindmontage
Zodra u de controller gereed en geprogrammeerd hebt, hoeft u alleen nog maar de LED's op de controller aan te sluiten met de JST-draden en een 5v-voeding op de 2,1 mm-aansluiting.
De JST-extensie zou handig moeten zijn om de controller en de voedingsadapter altijd van de LED's te houden. Of, om de CPU hoger te krijgen, heb ik er een kleine plastic zak overheen gedaan, vastgezet met een twist-tie, en een 2,1 mm verlengsnoer voor de voeding gebruikt.
De waterdichte doos helpt de adapter en CPU te beschermen, maar de meeste van mijn buren gebruikten eenvoudige plastic zakken.
Tweede prijs in de Holiday Decorations Speed Challenge
Aanbevolen:
Hoe maak je een LED-kubus - LED-kubus 4x4x4: 3 stappen
Hoe maak je een LED-kubus | LED Cube 4x4x4: Een LED Cube kan worden gezien als een LED-scherm, waarin eenvoudige 5 mm LED's de rol van digitale pixels spelen. Met een LED-kubus kunnen we afbeeldingen en patronen creëren door gebruik te maken van het concept van een optisch fenomeen dat bekend staat als persistentie van het gezichtsvermogen (POV). Dus
DIY SCHIJNWERPER W/AC LED's (+EFFICIENCY VS DC LED's): 21 stappen (met afbeeldingen)
DIY FLOODLIGHT W/AC LED's (+EFFICIENCY VS DC LED's): In deze instructable/video maak ik een schijnwerper met extreem goedkope driverless AC LED-chips. Zijn ze goed? Of zijn het complete rommel? Om dat te beantwoorden, zal ik een volledige vergelijking maken met al mijn gemaakte DIY-lampen. Zoals gewoonlijk, voor goedkope
Eenvoudige LED-striplampen (upgrade van uw LED-strips): 4 stappen (met afbeeldingen)
Eenvoudige LED-striplampen (upgrade uw LED-strips): ik gebruik al een tijdje LED-strips en heb altijd genoten van de eenvoud ervan. Je knipt gewoon een stukje van een rol af, soldeert er wat draden aan, sluit een voeding aan en je hebt een lichtbron. Door de jaren heen heb ik een c
Muziek Reactieve Multicolor LED Verlichting - Arduino-geluidsdetectiesensor - RGB LED-strip: 4 stappen
Muziek Reactieve Multicolor LED Verlichting | Arduino-geluidsdetectiesensor | RGB LED Strip: Muziek-reactief meerkleurig LED-lichtproject. In dit project werden een eenvoudige 5050 RGB LED-strip (niet de adresseerbare LED WS2812), Arduino-geluidsdetectiesensor en 12V-adapter gebruikt
DIY MusiLED, muziek gesynchroniseerde LED's met Windows- en Linux-toepassing met één klik (32-bits en 64-bits). Eenvoudig opnieuw te maken, gemakkelijk te gebruiken, gemakkelijk te porten: 3 stappen
DIY MusiLED, muziek gesynchroniseerde LED's met Windows- en Linux-toepassing met één klik (32-bits en 64-bits). Eenvoudig te recreëren, gemakkelijk te gebruiken, gemakkelijk te poorten: dit project helpt je om 18 LED's (6 rood + 6 blauw + 6 geel) op je Arduino-bord aan te sluiten en de realtime signalen van de geluidskaart van je computer te analyseren en door te sturen naar de LED's om ze op te lichten volgens de beat-effecten (Snare, High Hat, Kick)