Inhoudsopgave:

Slimme wekker: 13 stappen
Slimme wekker: 13 stappen

Video: Slimme wekker: 13 stappen

Video: Slimme wekker: 13 stappen
Video: Zo haal je ALLES uit je iPhone 2024, November
Anonim
Slimme wekker
Slimme wekker

Hallo, mijn naam is Alexandra Christiaens en ik studeer Media- en Communicatietechnologie aan Howest in Kortrijk, België.

Als schoolopdracht moesten we een IoT-apparaat maken. We werden aangemoedigd om iets te maken dat een verschil zou maken in ons eigen leven of dat van mensen die we kennen. Ik vond het nogal moeilijk om een project te vinden en toen ik probeerde een passend project te zoeken, dacht ik vaak: “Hier ben ik te moe voor.” Dus uiteindelijk realiseerde ik me dat dit mijn project zou kunnen zijn: ik zou een slimme wekker maken die me zowel zou helpen om 's ochtends op te staan als om 's avonds op tijd naar bed te gaan. Omdat de vereisten voor deze opdracht dicteerden dat we een Raspberry Pi moesten gebruiken om alles op uit te voeren, besloot ik mijn apparaat "Sleepi" te noemen als een woordspeling.

Als je dit apparaat zelf wilt maken en een fatsoenlijke slaaproutine wilt krijgen zoals ik, bekijk dan deze handige gids die ik hieronder heb geschreven. Wil je meer weten over mij en andere projecten die ik heb gemaakt of ga maken, bekijk dan mijn portfolio.

Stap 1: Stap 1: Verzamelen van de componenten

Stap1: De componenten verzamelen
Stap1: De componenten verzamelen
Stap1: De componenten verzamelen
Stap1: De componenten verzamelen
Stap1: De componenten verzamelen
Stap1: De componenten verzamelen

Laten we er dus eerst voor zorgen dat we alles hebben wat we nodig hebben voordat we beginnen met bouwen. Ik heb een lijst gemaakt met de belangrijkste onderdelen. Hieronder vindt u een pdf met meer gedetailleerde info over de componenten.

- 1 x Raspberry Pi 3 model B

- 1 x (lege) microSD-kaart en adapter (ik heb een kaart van 16 GB, maar 8 GB is genoeg)

- 1 x 5V voeding voor Raspberry Pi

- 1 x ethernetkabel

- 2 x 9V batterijen

- 2 x 9V batterijclips

- 1 x GPIO 40-pins uitbreidingskaart en regenboogkabel

- 2 x BB830 soldeerloze plug-in breadbord

- 1 x Arduino Uno

- 1 x 0,56 inch 4*7 segment display

- 1x DS18B20 temperatuursensor

- 1 x TSL2561 helderheidssensor

- 1 x 1602A LCD-scherm

- 1 x niveau-omzetter

- 1 x SN74HC595N schuifregister

- 1 x roterende encoder

- 1 x potentiometer

- 1 x RGB-voedings-LED

- 1 x luidspreker

- 4 x 337B Transistors

- 1 x diode

- 1 x knop

- 3 x xl4005 31 LED-driver

- 7 x weerstanden (2 x 10k Ohm, 4 x 1k Ohm, 1 x 470 Ohm)

- Diverse startkabels (man naar man en man naar vrouw)

Optioneel:

- 1 x multiplex houten paneel (ik heb er een gebruikt met de volgende afmetingen en dat was meer dan genoeg: 860 mm x 860 mm x 5 mm)

- Diverse gereedschappen voor houtbewerking

- Acrylverf in een kleur die je mooi vindt

Stap 2: Stap 2: Schema's

Stap 2: Schema's
Stap 2: Schema's

Nadat ik alle componenten had verzameld, kon ik beginnen met het aansluiten van alles. Eerst heb ik een Fritzing-schema gemaakt om ervoor te zorgen dat ik geen componenten zou braden door ze verkeerd aan te sluiten. Na wat feedback van mijn docenten, heb ik enkele correcties aangebracht die resulteerden in het volgende schematische diagram en bedradingsschema:

De meeste GPIO-pinnen zijn uitwisselbaar, dus je kunt er een paar omwisselen als je wilt. Vergeet echter niet de pincodes in de code dienovereenkomstig te wijzigen.

Sommige elementen moeten echter op bepaalde pinnen worden aangesloten. Zorg ervoor dat de lichtsterktesensor is aangesloten op respectievelijk GPIO 23 (SDA) en GPIO 24 (SCL). In stap 5 leg ik uit waarom dit belangrijk is.

Stap 3: Stap 3: Raspberry Pi instellen

Nu is het tijd om onze Pi in te stellen:

1. Plaats uw microSD-kaart in de adapter en sluit deze aan op uw pc.

Als uw microSD-kaart niet leeg is, formatteer deze dan eerst via de door u gewenste methode.

2. Installeer de Raspbian OS-software van de Raspberry pi-website.

Download het ZIP-bestand en pak het uit naar een gewenste locatie.

3. Download de Win32-schijfmanager.

Klik op het mappictogram om de afbeelding te selecteren Selecteer uw microSD bij "Apparaat" Klik op "Schrijven"

Wanneer de afbeelding op uw MicroSD-kaart is geschreven, kunt u deze openen in Windows Verkenner.

Open het bestand "cmdline.txt" Voeg aan het einde van het bestand de volgende regel tekst toe: ip=169.254.10.1 Zorg ervoor dat alles op dezelfde regel staat. Bewaar het bestand.

Werp nu de MicroSD-kaart uit uw computer. Zorg ervoor dat de stroom van je Pi is uitgeschakeld en plaats de kaart in je Raspberry Pi.

Sluit een ethernetkabel aan op je Pi en je computer.

Zet stroom op je Pi met een 5, 2V voedingsadapter.

Stap 4: Stap 4: Raspberry Pi aansluiten

Stap 4: Raspberry Pi aansluiten
Stap 4: Raspberry Pi aansluiten

Verbinden

de Pi met onze computer, zullen we Putty gebruiken.

1. Installeer Putty en open het.

2. Vul het IP-adres en de poort in zoals weergegeven in de afbeelding en klik op ‘openen’.

3. Log in met de volgende standaardinstellingen:

A. Gebruikersnaam: pi

B. Wachtwoord: framboos

4. Om de wifi in te stellen:

A. Sudo nano /etc/wpa_supllicant/wpa_supllicant.conf

B. Voeg onderaan het bestand deze regels toe:

l. Netwerk = {

ii. ssid=”Vul de naam van uw draadloze netwerk in”

iii. psk=”Vul wachtwoord van uw draadloze netwerk in”

NS. }

C. Sluit het bestand en sla het op

5. Voer de volgende opdracht in om het IP-adres van uw Pi te achterhalen: ifconfig wlan0

6. Je kunt dit IP-adres nu in Putty gebruiken om een draadloze verbinding tot stand te brengen (zie hierboven).

Stap 5: Stap 5: Instellingen wijzigen met Raspi-config

Nu moeten we ervoor zorgen dat de Pi met al onze componenten kan communiceren.

We zullen enkele instellingen wijzigen in raspi-config

Open raspi-config met het commando:

sudo raspi-config

2. Selecteer 4 Lokalisatie-opties.

3. Selecteer I2 Wijzig tijdzone.

4. Wijzig de tijdzone in uw lokale tijdzone en voltooi om terug te gaan naar raspi-config.

5. Selecteer 5 interface-opties.

6. Selecteer P5 I2C.

7. Schakel I2C-communicatie in.

8. Selecteer 5 interface-opties

9. Selecteer P6 Serie

10. Schakel de login-shell uit.

11. Seriële communicatie inschakelen

Stap 6: Stap 6: Instellingen wijzigen in /boot/config.txt

Nu moeten we enkele dingen opnieuw configureren in het bestand /boot/config.txt

1. Open het bestand:

sudo nano /boot/config.txt

2. Onderaan zou je moeten zien:

enable_uart=1

Dit komt omdat we de seriële poort eerder hebben ingeschakeld.

3. Voeg de volgende twee regels toe:

dtoverlay=pi3-miniuart-bt

dtoverlay=i2c-gpio, bus=3

De Raspberry Pi 3 heeft 2 seriële poorten: een hardware seriële poort en een software seriële poort. Met de eerste opdracht wijzen we de seriële softwarepoort toe aan de Bluetooth-functie en wijzen we de seriële hardwarepoort toe aan de Rx- en Tx-pinnen die we zullen gebruiken om met de Arduino te communiceren.

De tweede regel activeert een software I²C-bus op de Pi. Dit komt omdat de hardware I²C-bus soms fouten geeft wanneer de op deze I²C-bus aangesloten sensor clock stretching gebruikt. De software I²C-bus wordt automatisch actief op GPIO 23 (SDA) en GPIO 4 (SCL). Daarom was het zo belangrijk om de lichtsterktesensor die I²C gebruikt om gegevens te verzenden, correct aan te sluiten.

Stap 7: Stap 7: Voeg de gebruiker toe aan de juiste groepen

Voeg ten slotte de gebruiker toe aan enkele groepen:

1. Controleer tot welke groepen uw huidige gebruiker behoort:

groepen uw_gebruikersnaam

2. Om alle functies te laten werken, moet de gebruiker tot de volgende groepen behoren:

adm dialout sudo invoer netdev gpio i2c spi ·

Voeg indien nodig de gebruiker toe aan de juiste groepen:

sudo adduser uw_gebruikersnaam groepsnaam

Stap 8: Stap 8: Database

Stap 8: Database
Stap 8: Database
Stap 8: Database
Stap 8: Database
Stap 8: Database
Stap 8: Database

Om de verschillende door de gebruiker ingestelde alarmtijden en de verschillende waarden van de sensoren te kunnen opslaan, moest ik een database maken. U kunt het databaseschema hierboven zien.

Voer de volgende stappen uit om de database aan de Raspberry Pi toe te voegen:

1. Maak een verbinding via Putty

2. Update MySQL

sudo apt-get update

sudo apt-get install mysql-server --fix-missing -y

sudo reboot

3. Beveilig MariaDB

sudo mysql_secore_installation

4. Log in op MariaDB

sudo mysql -u root

5. De database heeft momenteel geen gebruikers. We gebruiken deze code om een gebruiker aan te maken, je hoeft alleen de gebruiker en het wachtwoord in te vullen:

VERLENEN ALLE PRIVILEGES OP *.* AAN 'fill_in_your_chosen_username'@'%'

GEDENTIFICEERD DOOR 'fill_in_your_chosen_password' MET SUBSIDIEOPTIE;

SPOEL VOORRECHTEN; UITGANG;

6. Download de database van Github.

7. Installeer een werkbank.

8. Maak een connectie in workbench met je pi en voer het bestand uit.

Stap 9: Stap 9: Python-code

1. Download en bewaar de Python-bestanden van Github.

2. Download en open Pycharm.

3. Maak een tolk- en implementatieconfiguratie die geschikt is voor uw Raspberry Pi.

4. Bewerk het bestand mainCode1.py in Pycharm en wijzig de pincodes en database-instellingen naar uw persoonlijke instellingen uit de vorige stappen.

Stap 10: Stap 10: Voer de Python-code automatisch uit

Stap 10: voer de Python-code automatisch uit
Stap 10: voer de Python-code automatisch uit

1. Maak een Putty-verbinding met je Pi.

2. Open het bestand /etc/rc.local:

sudo nano /etc/rc.local

3. Voeg voor het afsluiten de volgende regels toe:

slaap 60

python3 /path_from_root_to_your_pythonfile/name_of_your_pythonfile.py

Stap 11: Stap 11: Arduino-code

1. Download en bewaar het.ino-bestand van Github.

2. Verbind je Arduino met je laptop via USB.

3. Koppel de Rx- en Tx-kabels los die de Arduino verbinden met de Raspberry Pi.

4. Open het bestand en upload het naar de Arduino.

5. Koppel de Arduino los van uw laptop en sluit de Rx- en Tx-kabels weer correct aan.

6. Geef de Arduino stroom. Het 4*7 segment display zou nu 12:34. moeten weergeven

Stap 12: Stap 12: Webserver

Stap 12: Webserver
Stap 12: Webserver

1. Installeer apache:

sudo apt installeer apache2 -y

2. Word eigenaar van de /var/www/html directory:

sudo chown pi /var/www/html

3. Ga naar de map:

cd /var/www/html

4. Controleer of je de eigenaar bent in plaats van root:

ls -al

5. Download en open Filezilla

6. Maak een verbinding met je pi zoals op de afbeelding te zien is. (gebruik 169.254.10.1 en een ethernetkabel of maak verbinding via wifi)

A. Ga naar de map /var/www/html

B. De standaard index.html-pagina verwijderen

C. Verplaats alle frontend-bestanden naar deze map

Stap 13: Stap 13: De buitenkant bouwen

Stap 13: De buitenkant bouwen
Stap 13: De buitenkant bouwen
Stap 13: De buitenkant bouwen
Stap 13: De buitenkant bouwen
Stap 13: De buitenkant bouwen
Stap 13: De buitenkant bouwen

Je kunt de buitenkant van de wekker maken zoals je wilt! Ik heb een doos gemaakt voor mijn wekker met een multiplex houten paneel met een breedte van 5 mm. Als je iets soortgelijks wilt maken, zijn dit de stappen voor die doos:

1. Teken de volgende vormen op het multiplexpaneel:

Zijkanten: 2 x vierkant (180 mm x 180 mm)

Boven en onder: 2 x rechthoek (180 mm x 300 mm)

Voor- en achterkant: 2 x rechthoek (170 mm x 300 mm)

2. Zaag en schuur elke vorm vierkant en rechthoek

3. Pak wat extra hout en maak plankjes van 20 mm hoog en 20 mm breed.

4. Schroef de plankjes aan de binnenkant (onder, voor en achter) van de multiplex zoals te zien op de foto's.

5. Bepaal waar u de juiste gaten wilt maken voor het LCD-scherm, 4*7 segment display, luidspreker, lichtsterktesensor, RGB LED, roterende encoder en knop.

6. Meet elk onderdeel dat u aan de buitenkant wilt laten zien en teken de juiste afmetingen op het multiplex.

7. Knip de benodigde stukken uit.

8. Bevestig enkele scharnieren aan de buitenkant van de doos, zodat de boven- en achterkant met elkaar worden verbonden.

9. Bevestig een magneet aan de binnenkant van de voorkant en een metalen plaatje aan de binnenkant van de bovenkant.

10. Schroef of lijm alles waar je maar wilt.

11. Zet de doos in elkaar door alle buitenkanten aan elkaar te schroeven (behalve de bovenkant).

Je kunt 3 en 4 overslaan als je kleinere schroeven gebruikt (ik gebruikte 12 mm schroeven). Het gebruik van kleinere schroeven vermindert de stabiliteit van de doos echter enigszins.

Aanbevolen: