De ButtonBoard PCB is mijn poging om meerdere vliegen in één klap te slaan. Enerzijds was ik altijd op zoek naar een universele en eenvoudig te programmeren afstandsbediening voor de vaak zeer individuele bedieningsmogelijkheden in mijn smart home. Aan de andere kant wilde ik een gemakkelijke manier hebben om mijn projecten te beheren (bijvoorbeeld dit pxlBlck-project) uit te rusten met een fysieke bedieningsmogelijkheid.
Momenteel de verschillende pxlBlck-platforms namelijk alleen via de seriële interface of een reeds bestaande WiFi-verbinding.
Helaas betekent dit dat deze projecten (bijvoorbeeld) moeilijk weg te geven zijn. In ieder geval niet aan mensen die zelf niet geïnteresseerd zijn in Arduino, elektronica en co of er in ieder geval niet mee om kunnen/willen gaan als het nodig is voor de instelling.
Dit nadeel wil ik oplossen met het ButtonBoard. 🙂
Hiervoor zijn op het grootste deel van de voorzijde van het ButtonBoard twaalf eenvoudige knoppen en vier zijknoppen aangebracht. Deze worden uitgelezen via een PCF8575 I2C-poortuitbreidingen. Om dit in deze combinatie te laten werken, is elke knop ook uitgerust met een externe pull-up-weerstand.
Het zou natuurlijk eleganter zijn geweest om een poortuitbreiding te gebruiken met een geïntegreerde/schakelbare pull-up of pull-down weerstand. Vanwege het huidige tekort aan chips en omdat ik de PCF8575 al in huis had, wilde ik hier geen nieuwe experimenten starten.
Naast de knoppen zijn naast elke knop twee WS2812 2020 LED's geïnstalleerd. De toetsen kunnen ook indirect worden verlicht of toetsaanslagen kunnen worden gevisualiseerd.
De overige componenten bevinden zich aan de voorzijde van de print
- DS3232M RTC
- ADXL345 versnellingsmeter
- CH340G USB naar UART converter voor het programmeren van de ESP32 via de USB-C poort
Een ESP32-Wrover-B is geïnstalleerd op de achterkant van het buttonBoard in het grootste deel van de printplaat.
Deze kan worden geprogrammeerd met de Arduino IDE en biedt zowel een WiFi- als een Bluetooth-interface.
Dat kun je bijvoorbeeld doen ESPEasy-framework Installeer op de ESP32 en beschik zonder veel programmeerwerk over een zeer krachtige “Smart Home” of IOT-tool.
Naast de ESP32 zijn er ook drie QWIIC-poorten die kunnen worden gebruikt om andere QWIIC- of I2C-compatibele sensoren/actuators aan te sluiten.
Daar kan ook een micro SD-kaartsleuf worden geïnstalleerd om indien nodig grotere hoeveelheden gegevens op te slaan.
De bruine knoopcelhouder wordt gebruikt als houder voor de back-up batterij van de DS3232M Real Time Clock.
Naast de genoemde use cases zou ook gebruik als (zeer eenvoudig) Bluetooth-toetsenbord of macropad mogelijk zijn. U kunt bijvoorbeeld ook een camera-ontgrendeling op afstand bouwen voor uw smartphone (of in combinatie met een geschikte app voor andere doeleinden).
Om het ButtonBoard ook onderweg - dus zonder stroomvoorziening via de USB-C-aansluiting - te kunnen gebruiken, heb ik op het kleine gedeelte van de achterkant van de printplaat een compact LiPo/LiIon-management geïnstalleerd. Deze biedt een eenvoudige laadregelaar voor de aangesloten LiPo/LiIon-accu en beveiligt deze bovendien tegen over- of onderschrijding van de toegestane accuspanning.
Dit deel van de printplaat kan ook worden gescheiden van het “hoofd” deel van de printplaat. Dit betekent dat het toetsenbord ook onafhankelijk van de installatielocatie van de USB-C-poort kan worden geïnstalleerd.
Over het algemeen zijn de volgende componenten op het ButtonBoard_V1.2 geïnstalleerd:
- ESP32 Wrover-B
- DS3232M RTC
- USB-C aansluiting inclusief programmeermogelijkheid voor de ingebouwde ESP32
- Micro SD-kaartsleuf
- Aansluitmogelijkheid voor een LDR voor helderheidsmeting
- Spanningsdeler voor het meten van de accu- of voedingsspanning
- ADXL345 versnellingsmeter
- 3x QWIIC-I2C uitbreidingspoort
- LiPo/LiIon laadcircuit gebaseerd op de MCP73831, FS8205 en DW01-P
- 12x knoppen aan de bovenkant van de print aangesloten via een PCF8575
- 4x zijknoppen ook aangesloten via de PCF8575
- 24x WS2812 2x2mm LED's naast de knoppen
- Onderdelen van printplaten kunnen worden gescheiden en afzonderlijk worden geïnstalleerd
Ik heb de printplaat gekregen van de printplaatfabrikant PCBWay.com kunnen worden gemaakt, die ze mij kosteloos ter beschikking heeft gesteld. Bij deze nogmaals hartelijk dank voor de goede service en samenwerking. 🙂
Hieronder ziet u enkele foto's van de voltooide printplaat en (bijna) alle mogelijke componenten. Helaas zijn sommige sensoren door het huidige tekort aan chips erg duur of slecht verkrijgbaar, daarom heb ik ze niet geïnstalleerd.
Veiligheidsinstructies
Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/
Affiliate links / reclame links
De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂
Eisen
Voor de constructie moet je SMD-soldeertaken beheersen. In de volgende artikelen vindt u tips hoe u dit kunt doen.
- Elektronica - Mijn vriend de soldeerbout
- Elektronica – Soldeer THT-componenten met de hand
- Elektronica – Soldeer SMD-componenten met de hand
Vereist gereedschap:
PCB-productie: Hier vindt u alle informatie die u nodig heeft om de printplaten te vervaardigen:
De structuur
In eerdere projecten heb ik op dit punt individuele afbeeldingen ingevoegd om te laten zien welke componenten waar op de printplaat moeten worden gesoldeerd.
Een nog betere manier om een overzicht te krijgen van welke componenten waar op de printplaat horen, staat in de volgende paragraaf. Dankzij het werk van OpenScope-project u kunt zeer nuttige HTML-bestanden genereren. Hiermee kun je direct zien welke componenten waar op de print moeten komen.
Het overzicht van de ButtonBoard-printplaat vindt u hier: buttonBoard_v1.2_bom
U kunt het huidige bestand ook vinden in de GIT-repository onder de volgende link:
https://github.com/Nerdiyde/buttonBoard/blob/main/PCB/buttonBoard_v1.2_bom.html
(Houd er rekening mee dat u het HTML-bestand moet downloaden om het te kunnen bekijken. Dit is niet rechtstreeks vanuit de GIT-repository mogelijk.)
programma-firmware
De eerste versie van de firmware voor het aansturen van de sensoren en het uitlezen van de knoppen op de ButtonBoard PCB is nog in ontwikkeling. U kunt de huidige status van de GIT-opslagplaats downloaden. U vindt de firmware onder de volgende link.
Veel plezier met het project
Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂
PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂