In deze tutorial uitleggen we hoe te geven van de Raspberry PI sensor temperatuur, de vochtigheid en de helderheid. We kunnen gemakkelijk draaien rond onze frambozen in een weerstation.
Hardwarevereisten:
- Temperatuur en vochtigheid sensor SHT21 I2C. Alternatief, kunt u het gebruiken van een 1-draads temperatuursensor
- Helderheid sensor YL-40 I2C
- 4 kabels
- SPI Display ILI9341 (320x240px TFT kleur)
- (Optioneel) ITC-102 HAT Board. Dit forum maakt ons gemakkelijk het werk van verbinding alle apparaten voor dit project, en ook kunnen we een RTC-klok.
Als alternatief voor SHT21 apparaat opnemen van vochtigheid en temperatuursensor, het kan worden gebruikt voor een 1-wire temperatuursonde. Broncode ontwikkeld in deze tutorial zoeken naar een 1-wire-sonde moet niet gedetecteerd door de SHT21.
De applicatie die we hebben ontwikkeld is voor Python, dus het is noodzakelijk te installeren vanaf de repository. Deze tutorial is geboekt met het besturingssysteem Raspbian. Als met een installatie om zal de nieuwste versies van de pakketten die u wilt installeren eerst voert u de volgende stappen uit:
sudo apt-get update
En als u wilt uitvoeren van een upgrade van reeds geïnstalleerde pakketten u uitvoeren:
sudo apt-get - y upgrade
Als u nog niet hebt geïnstalleerd u Python (Python 2 versie) moet worden uitgevoerd:
sudo ad rem-worden installeren python-dev
1. Schakel I2C
We hebben om te controleren dat de I2C bus is ingeschakeld door sensoren worden gebruikt. Als dat niet het geval is, moeten we om te schakelen. De configuratie-assistent van de deze manier uitgevoerd.
sudo raspi-config
RTC Config 1 afbeelding
Selecteer optie 9: geavanceerde opties. Kies vervolgens de optie A7: I2C.
RTC Config 2 afbeelding
Vervolgens worden u gevraagd als wij willen I2C inschakelen. Kies Ja.
RTC Config 3 afbeelding
Uitstappen raspi-config. In de volgende worden herstart van het systeem i2c-modules geladen door gebrek.
2. Installeer i2c-tools
Dit is een hulpprogramma voor het beheer van de I2C.
sudo ad rem-worden installeren i2c-tools
Wanneer het installatieproces is voltooid, typt u:
i2cdetect -y 1
Met deze opdracht scant alle apparaten aangesloten op I2C bus. De tweede parameter betekent de ID van de BUS, we moeten gebruiken 1 voor Raspberry PI B +, B (rev 2) en A +, voor het oude model B (rev 1) gebruiken we 0 zoals bus ID. Zullen we iets dergelijks
0 1 2 3 4 5 6 7 8 9 een b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- 6f
70: -- -- -- -- -- -- -- --
U moet controleren apparaat in positie 6F is gebleken. Dit betekent RTC hebben geconstateerd.
3. module laden bij het opstarten
Bewerken van het bestand rc.local
sudo nano /etc/rc.local
en voeg de volgende lijnen net voor de exit 0
# I2C apparaten
modprobe i2c-dev
Als het project wij verrichten met een sonde Voeg 1-wire we verder de volgende regels in dit bestand:
# De temperatuursensor
modprobe w1-gpio pullup = 1
modprobe w1-therm strong_pullup = 1
Uitstappen van de editor wijzigingen opslaan en opnieuw starten met behulp van systeem
sudo reboot
Nu installeren we de controller voor het beheren van YL-40 (helderheid sensor) van repositories:
sudo ad rem-worden installeren python-smbus
Als succes, als we opnieuw proberen
i2cdetect -y 1
We moeten krijgen:
0 1 2 3 4 5 6 7 8 9 een b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- UU
70: -- -- -- -- -- -- -- --
UU tekens betekent dat apparaat op deze positie is in gebruik.
4. SPI Display installatie te tonen van de sensorgegevens
Om te werken voor de eerste keer het scherm kunt u volgen naar de opvoeden met behulp van 2.2″ LCD SPI in Python met Raspberry Pi
5. downloaden van de broncode als we eenmaal alles werkt: Python voor de toepassing, I2C voor sensoren en SPI voor weergave, we hebben gewoon downloaden van de broncode te beschikken op de volgende link:http://ingeniapp.com/sources/weather_station/
of gewoon
wget http://ingeniapp.com/sources/weather_station/iRP102-weather-station.zip
unzip iRP102-weer-station.zip
CD iRP102--weerstation
sudo python weer-station.py
vanuit shell.
6. toepassingsbeschrijving modules
gy21.py: Module voor het lezen van de I2C-sensoren (temperatuur en vochtigheid). +
Functie vochtigheid waarde op te halen:
def read_humidity(self):
Functie temperatuur waarde op te halen:
def read_temperature(self):
Functie om de helderheidswaarde:
def read_ain()
weather_station.py: toepassing van de Main. Het is belangrijk te onthouden dat u de weergave kunt en sensoren geïmporteerde modules worden moeten:
importeren van Adafruit_ILI9341 als TFT
importeren van RPi.GPIO als RPGPIO
importeren van Adafruit_GPIO. SPI als SPI
gy21 importeren
importeren van smbus SMBus
Functie te tonen van temperatuur en vochtigheid waarden. De huidige datum en tijd worden ook weergegeven. Afhankelijk van de sensoren gedetecteerd tijdens het opstarten van de toepassing, kunt u de waarde van 1-wiretemperature-sonde nemen als SHT21 sensor niet connencted.
def show_time_temp():
We definiëren deze module als de hoofdtoepassing en de inhoud ervan bevatten de rode draad:
Als __name__ == "__main__":
Opmerking: wij toegevoegd een extra parameter met de naam 'bgcolor' in de 'def draw_rotated_text' (geschreven in de functie van het stuurprogramma weergeven) om de achtergrondkleur van de tekst wijzigen. Dus geven we de kleur waarop wij schrijven.
def draw_rotated_text (beeld, tekst, positie, hoek, lettertype, fill=(255,255,255), bgtext=(255,255,255,255)):