Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Pixie was een project dat is ontwikkeld met de bedoeling om de planten die we thuis hebben interactiever te maken, aangezien voor de meeste mensen een van de uitdagingen van het hebben van een plant in huis is om te weten hoe ze ervoor moeten zorgen, hoe vaak we water geven, wanneer en hoeveel zon is genoeg, enz. Terwijl sensoren werken om plantgegevens te verkrijgen, geeft een LED-display, opzettelijk gepixeld (vandaar de naam Pixie), basisuitdrukkingen weer die de staat van de plant aangeven, zoals vreugde terwijl deze wordt bewaterd of verdriet als de temperatuur te hoog is, geeft dit aan dat het naar een koelere plaats moet worden gebracht. Om de ervaring nog interessanter te maken, zijn andere sensoren zoals aanwezigheid, aanraking en helderheid toegevoegd, wat zich vertaalt in andere uitdrukkingen waardoor het lijkt alsof je nu een virtueel huisdier hebt om voor te zorgen.
Het project heeft verschillende parameters waar het mogelijk is om de limieten en behoeften van elk geval aan te passen, rekening houdend met de diversiteit van planten en sensoren van verschillende merken. Zoals we weten, zijn er planten die meer zon of water nodig hebben, terwijl anderen met minder middelen kunnen leven, zoals cactussen bijvoorbeeld, in dit soort gevallen is het hebben van parameters een must. In dit artikel zal ik de werking en een overzicht presenteren over het bouwen van een Pixie met een beetje kennis van elektronica, componenten die gemakkelijk op de markt te vinden zijn en een 3D-geprinte behuizing.
Hoewel het een volledig functioneel project is, zijn er mogelijkheden voor aanpassingen en verbeteringen die aan het einde van het artikel worden gepresenteerd. Ik beantwoord graag elke vraag over het project hier in de opmerkingen of rechtstreeks op mijn e-mail of Twitter-account.
Benodigdheden
Alle componenten zijn gemakkelijk te vinden in gespecialiseerde winkels of websites.
-
1 MCU ESP32 (ESP8266 kan worden gebruikt of zelfs een Arduino Nano als u geen gegevens via internet wilt verzenden)
Ik heb dit model gebruikt voor het project
- 1 LDR 5 mm GL5528
- 1 PIR-element D203S of vergelijkbaar (het is dezelfde sensor die wordt gebruikt in SR501- of SR505-modules)
- 1 DHT11 Temperatuursensor
-
1 Bodemvochtsensor
Gebruik liever een capacitieve bodemsensor in plaats van een resistieve, deze video legt goed uit waarom
-
1 Led Matrix 8x8 met geïntegreerde MAX7219
Ik heb dit model gebruikt, maar het kan vergelijkbaar zijn
- 1 Weerstand 4,7 kΩ 1/4w
- 1 Weerstand 47 kΩ 1/4w
- 1 Weerstand 10 kΩ 1/4w
anderen
- 3D-printer
- Soldeerbout
- Snij tang
- Draden voor circuitaansluiting
- USB-kabel voor voeding
Stap 1: Circuit
Het circuit is in de afbeelding hierboven te zien met een breadboard, maar om in de behuizing te worden geplaatst, moeten verbindingen direct worden gesoldeerd om minder ruimte in beslag te nemen. De kwestie van de gebruikte ruimte was een belangrijk punt van het project, ik probeerde het gebied dat Pixie zou innemen zo veel mogelijk te verkleinen. Hoewel de behuizing klein is geworden, is het nog steeds mogelijk om verder te verkleinen, vooral door hiervoor een exclusieve PCB te ontwikkelen.
Aanwezigheidsdetectie werd gedaan met slechts één PIR-element in plaats van een complete module zoals SR501 of SR505, omdat de geïntegreerde timer en het brede activeringsbereik van meer dan vijf meter niet nodig waren. Met alleen het PIR-element nam de gevoeligheid af en gebeurt de aanwezigheidsdetectie via software. Meer details over de verbinding zijn hier te zien.
Een ander terugkerend probleem in elektronische projecten is de batterij, er waren enkele mogelijkheden voor dit project, zoals een 9v-batterij of een oplaadbare. Hoewel het praktischer was, zou er extra ruimte nodig zijn in de behuizing en uiteindelijk liet ik de USB-uitgang van de MCU vrij, zodat de gebruiker beslist hoe de stroomvoorziening zal zijn en het gemakkelijker wordt om de schets te uploaden.
Stap 2: 3D-ontwerp en printen
Samen met het circuit werd een behuizing voor de Pixie-componenten ontwikkeld en afgedrukt op een Ender 3 Pro met behulp van PLA. De STL-bestanden zijn hier opgenomen.
Tijdens het ontwerp van deze koffer waren enkele concepten aanwezig:
- Omdat de plantpot normaal op een tafel staat, is het display iets gekanteld geplaatst om het kijkgebied niet te verliezen
- Ontworpen om het gebruik van afdruksteunen te vermijden
- Stimuleert de uitwisseling van onderdelen voor andere kleuren om het product persoonlijker, uitwisselbaarder en passender te maken
- De temperatuursensor met opening voor externe omgeving om een meer correcte meting mogelijk te maken
-
Gezien de verschillende potmaten kan de installatie van Pixie in de plant op twee manieren gebeuren
- Door een roede die aan de aarde is bevestigd; of
- Een riem gebruiken die om de plantpot wordt gewikkeld
Verbeterpunten
Hoewel functioneel, zijn er enkele punten in het ontwerp die moeten worden aangepast, zoals de grootte van de muren die zijn gedefinieerd om materiaalverlies te voorkomen en het printen tijdens prototyping met 1 mm te versnellen.
De fittingen moeten worden verbeterd door de ontwerppatronen toe te passen in 3D-printen, waarschijnlijk zal het nodig zijn om de maat van de stick en de standaardfitting aan te passen om de stukken correct te klikken.
Stap 3: Coderen
Als programmeur kan ik zeggen dat het het leukste deel van het werken was, nadenken over hoe de code te structureren en organiseren, een paar uur planning vergde en het resultaat was behoorlijk bevredigend. Het feit dat de meeste sensoren een analoge ingang gebruiken, genereerde een aparte behandeling van de code om te proberen een nauwkeuriger uitlezing te verkrijgen door valse positieven zoveel mogelijk te negeren. Het bovenstaande diagram is gemaakt met de belangrijkste codeblokken en illustreert de kernfunctionaliteit, voor meer details raad ik aan om de code te bekijken op
Er zijn verschillende punten die kunnen worden gewijzigd waarmee u Pixie naar wens kunt aanpassen. Onder hen kan ik benadrukken:
- Sensor leesfrequentie
- Time-out van expressies
- Max en min temperatuur, verlichting en grondlimieten, evenals de drempel van sensoren
- Lichtintensiteit van elke uitdrukking weergeven
- Tijd tussen frames van elke uitdrukking
- De animaties zijn gescheiden van de code, zodat u ze desgewenst kunt wijzigen
Triggers
Het was noodzakelijk om een manier te implementeren om te detecteren wanneer een actie in realtime plaatsvond op basis van de laatste metingen. Dit was nodig in drie bekende gevallen, drenken, aanwezigheid en aanraking, deze gebeurtenissen zouden moeten worden geactiveerd zodra een aanzienlijke variatie van de sensor wordt gedetecteerd en hiervoor is een andere implementatie gebruikt. Een voorbeeld hiervan is de aanwezigheidssensor, aangezien alleen het PIR-element werd gebruikt in de analoge ingang, de gelezen waarden variëren vaak en er was een logica nodig om aan te geven of er wel of geen aanwezigheid is, terwijl de temperatuursensor op zijn beurt een zeer lage variatie en alleen de standaardaflezing van de waarden ervan is voldoende om het gedrag van de Pixie aan te passen.
Stap 4: Projecteer volgende stappen
- Word een IoT-apparaat en begin met het verzenden van gegevens naar een platform via MQTT
- Een app voor het aanpassen van parameters en misschien de uitdrukkingen
- Laat de aanraking werken door de plant aan te raken. Ik vond een geweldig voorbeeld van een Touche-achtig project op Instructables
- Inclusief een batterij
- Ontwerp een PCB
- Print de complete vaas niet alleen de behuizing van de Pixie
- Voeg een piëzo toe aan het project om geluiden af te spelen in overeenstemming met de uitdrukkingen
- Breid het "geheugen" van de Pixie uit met historische gegevens (te lang zonder aanwezigheid te detecteren kan een trieste uitdrukking genereren)
- UV-sensor om een blootstelling aan de zon nauwkeuriger te detecteren