Breezer

by runeclaeys in Circuits > Raspberry Pi

637 Views, 3 Favorites, 0 Comments

Breezer

IMG_20170618_194706076.jpg

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

9200000065795688.jpg
13689-01.jpg
DS18B20_cable.jpg

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

IMG_20170618_194646321_HDR.jpg

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.PNG

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

BReezer.png

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:

  1. coderen van de "ventilator"
  2. 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

IMG_20170618_151036321.jpg
IMG_20170618_161242799_HDR.jpg
IMG_20170618_170820423.jpg
IMG_20170618_194601990.jpg

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?

Breezer - Automatic Cooling Fan - Raspberry Pi Project (updated)

  1. Plug de 2 voedingskabels in op het net.
  2. Verbind de netwerkkabel met de pc waar de website op weergegeven moet worden.
  3. Geef het apparaat eventjes de tijd om op te starten.
  4. Van zodra de temperatuur een constante waarde heeft bereken, kunt u de gewenste temperatuur instellen met de knoppen waar respectievelijk - en + opstaat.
  5. De stand van de ventilator kan worden geregeld met de drie meest rechtse knoppen.
  6. Om de website te raadplegen surf naar runeclaeys.local:8080
  7. Maak een account aan.
  8. Voeg een apparaat toe, geef het een willekeurige naam (vb. Bureau ventilator), Serial number = test123 en geef het tenslotte een afbeelding naar keuze mee.
  9. Om de temperatuur te bekijken klik op het apparaat.
  10. Profiel updaten of uitloggen kan gedaan worden door rechtsboven op profile te klikken.