Breezer
Project 1 - eindopdracht: Breezer
Reden: Raspberry pi device maken voor het vak Project 1. Richting NMCT - Howest Kortrijk.
Mijn idee: Een geautomatiseerde ventilator die boven een gewenst ingegeven temperatuur automatisch aanslaat. De ventilator kan worden ingesteld op 3 verschillende standen/snelheden. Op de bijhorende website kunnen meerdere "Breezers" worden toegevoegd aan één account, zo kunt u de temperatuur in verschillende ruimtes in u huis of kantoor makkelijk weergeven.
Na heel wat schakelwerk en trial en error coderen, is het mij gelukt eenwerkende geautomatiseerde ventilator te maken. Om zelf eentje te maken volg deze instructables
Materialen Verzamelen/ Aanschaffen
Elektronica: (zie BOM in bijlage)
- Breadboard
- Rapsberry pi + GPIO Breakout Board + 40 Pin Ribbon Cable
- 20 tal female-male jumper kabels
- 3 Weerstanden 10 kΩ
- 8 Weerstanden 330 Ω
- 5 knoppen
- 1 serial lcd display 2x16
- 1 diode
- 1 Transistor (bc337 php 335)
- Ventilator (oude CPU koeler)
- 9V voeding
- 3 ledjes
- 5V voeding + netwerk kabel (raspberry pi)
- DS18B20 - Temperatuur sensor
Behuizing:
- Karton en papier
- lijm
- Plakband
Downloads
Fritzing, Database En Code
Fritzing (schakelen)
Foto 1: Maak deze schakeling na, let op plaatsing van diode. GPIO 4 - pin wordt voorbehouden voor de i2c sensor, de temperatuursensor.
Database
Foto 2: 3 tabellen: gebruikers, apparaten en tussen tabel gebruikersapparaten. Deze tussentabel is nodig want een gebruiker kan meerder apparaten bezitten. Maar een apparaat kan worden bekeken/in bezit zijn door meerdere gebruikers.
Code (Github)
Link: GITHUB - PROJECT 1 - BREEZER. Website.py en Device.py dienen beide te worden uitgevoerd om de temperatuur van het apparaat te kunnen bekijken op de website.
Echter kunnen beide python bestanden afzonderlijk worden uitgevoerd. Met andere woorden het apparaat kan gebruikt worden zonder dat een account moet worden aangemaakt. En de website kan worden geraadpleegt zonder dat het apparaat moet ingeschakeld zijn.
Fritzing
Fritzing - Schakelen van het apparaat
Om het apparaat te laten werken is het van belang de schakeling correct te maken. Een slechte/verkeerde schakeling kan voor kortsluiting zorgen bij de raspberry pi, met alle gevolgen vandien.
LCD schakelen
We opteren voor 4bit codering aangezien we zo 4 GPIO poorten extra vrijhouden. Hoe schakelen?
- VSS = GND
- VDD = 5V
- V0 = Weerstand naar keuze (of regelbare weerstand)
- RS = GPIO
- RW = GND
- E = GPIO
- R0-R3 = Niet aansluiten
- R4-R7 = GPIO
- A = 5V
- K = GND
DS18b20 - temperatuursensor schakelen
Deze sensor werkt via de 1-wire bus van de Raspberry Pi, 1 wire is standaard niet ingeschakeld op de RPi. Volgende tutorial toont hoe dit kan worden gedaan: 1-Wire.
- Rode draad = 3V3
- Zwarte draad = GND
- Gele draad = GPIO 4 (1-wire)
- Gele draad en rode draad dienen te worden verbonden via een weerstand van 4.7kΩ. Ik maakte gebruik van 2 parallelle weerstanden van 10kΩ.
Knoppen schakelen
We zullen de knoppen coderen als een pullup. Uit veiligheid voor de Raspberry pi zullen we tussen te GND een weerstand van 330 Ω schakelen. De knoppen worden verbonden met een GPIO pin.
Ledjes schakelen
Ledjes worden ook verbonden met een GPIO pin en verbonden met de GND via een weerstand van 330 Ω.
DC motor / FAN schakelen
De dc motor werkt op 9V of 12V. Hier maakte ik gebruik van 9V. Omdat de ventilator zal worden aangestuurd via PWM, is het van belang deze ook te verbinden met een GPIO pin. GPIO pinnen hebben een output van 3V3 terwijl de ventilator 9V nodig heeft. We maken hier gebruik van een transistor en een diode.
Diode:
- parallel schakelen met de DC motor.
Transistor:
- Base via een weerstand van 1 kΩ verbinden met een GPIO pin
- Collector verbinden met de GND van de dc motor en diode in parallel
- De Emitor verbinden met de GND
9V voeding:
- Plus verbinden met de plus van de DC motor
- Min verbinden met de Emitor
Database
De gebruikte database bestaat uit 3 tabellen. Gebruikers, apparaten en gebruikersapparaten als tussen tabel.
Gebruikers:
In deze tabel worden de gegevens van de geregistreerde accounts opgeslagen. Naam, voornaam, email adres en wachtwoord. (indien het lukt wachtwoord encrypteren.)
apparaten:
In deze tabel komt de naam van het apparaat, het serial nummer, de temperatuur en de snelheid van de fan.
gebruikersapparaten:
tussen tabel om gebruikers en apparaten te linken met elkaar.
Github - Code
Het coderen is onderverdeeld in 2 stappen:
- coderen van de "ventilator"
- coderen van de website
Beide werden gecodeerd met python via Pycharm v.3.3. De code kan worden gedownload en bekeken op Github.
Github link: https://github.com/RuneClaeys/project1
Coderen ventilator aandachtspunten:
lcd code en temperatuursensor code in aparte klassen schrijven.
Aparte functie voor declareren van GPIO pinnen.
Lcd display in 4 bitmodus coderen
Temperatuursensor 1 wire moet nog op de pi worden geactiveerd + device adres ophalen.
Coderen van de website
Coderen met Flask module.
Aparte database klasse aanmaken.
Raspberry pi local host = 0.0.0.0:8080
Behuizing Maken
1. Knip uit karton een T-vormige figuur (afmetingen figuur 1)
2. Breng eventuele decoratie aan. Knip de bevestiging gaten voor kabels knoppen en lcd scherm.(foto 2)
3. Breng de schakeling in het apparaat en stop kabels door de voorziene gaatjes. maak ook een eventuele Rapsberry pi houder (afmetingen breedte = 4 cm, lengte = 17 cm) plooien op 1.5 cm en op 4 cm aan beide kanten. (foto 3)
4. Bevestig de ventilator, knoppen lcd en ledjes en plooi het karton samen. lijm het vast aan de zijkanten. Het deksel kan worden toe gelijmd of met een velcro worden vastgemaakt. (foto 4)
Hoe Te Gebruiken?
- Plug de 2 voedingskabels in op het net.
- Verbind de netwerkkabel met de pc waar de website op weergegeven moet worden.
- Geef het apparaat eventjes de tijd om op te starten.
- Van zodra de temperatuur een constante waarde heeft bereken, kunt u de gewenste temperatuur instellen met de knoppen waar respectievelijk - en + opstaat.
- De stand van de ventilator kan worden geregeld met de drie meest rechtse knoppen.
- Om de website te raadplegen surf naar runeclaeys.local:8080
- Maak een account aan.
- Voeg een apparaat toe, geef het een willekeurige naam (vb. Bureau ventilator), Serial number = test123 en geef het tenslotte een afbeelding naar keuze mee.
- Om de temperatuur te bekijken klik op het apparaat.
- Profiel updaten of uitloggen kan gedaan worden door rechtsboven op profile te klikken.