Voor dit Raspberry Pi-project zullen we onze hoofden onderdompelen in het Internet of Things (IoT). We bepalen de temperatuur van ons huis met behulp van een kosteneffectieve sensor en duwen die gegevens naar de cloud en gebruiken deze om een ​​grafiek te vullen.

De sensor die we gebruiken is een Dallas DS18B20. Deze kunnen relatief goedkoop worden opgehaald, maar een eenvoudige oplossing is om de CamJam EduKit 2 te kopen, want deze bevat een waterdichte Dallas DS18B20.

Wat je nodig zult hebben

  • Elke Raspberry Pi A + B + of Pi 2
  • Het nieuwste Raspbian OS
  • Een DS18B20-sensor (onderdeel van de Cam Jam EduKit 2)
  • broodplank
  • Man-vrouw-overslagkabels
  • 4.7kohm weerstand
  • WI-FI dongle
  • Een www.initialstate.com-account
  • Download de code

Het project bouwen

Monteer de hardware en bevestig deze aan je Pi volgens het schema (zie hieronder).

We hechten de DS18B20 aan een breadboard en leveren stroom aan de datapin via een 4,7 kOhm-weerstand.

Vervolgens stellen we de sensor in en daar is een handig werkblad van Cam Jam voor. Om door te gaan heeft u een Initial State-account en uw API-sleutel nodig, die u kunt vinden in uw accountinstellingen.

Om het Initial State streamer type te installeren:

\ curl -sSL https://get.initialstate.com/python -o - | sudo bash

We starten onze code door bibliotheken te importeren om met het besturingssysteem en de tijd te werken en onze gegevens naar de cloud te streamen:

import os, glob, time

van ISStreamer.Streamer import Streamer

Vervolgens laden we de kernelmodules voor de sensor met modprobe , we verpakken de Bash-opdrachten in een os.system () functie voor Python en vertel onze code waar het bestand te vinden is voor het opslaan van de temperatuurgegevens:

os.system ('modprobe w1-gpio')

os.system ('modprobe w1-therm')

base_dir = '/ sys / bus / w1 / devices /'

device_folder = glob.glob (base_dir + '28 * ') [0]

device_file = device_folder + '/ w1_slave'

Vervolgens creëren we een functie voor het aflezen van de inhoud van het bestand waarin de onbewerkte temperatuurgegevens worden opgeslagen en de gegevens als een variabele worden opgeslagen.

Nu lezen we de gegevens en verwerken deze tot iets bruikbaars. We bewaren de informatie en strippen de rest van de gegevens voordat de gegevens naar een temperatuur worden geconverteerd.

Onze laatste sectie is een lus die constant de temperatuur controleert, conversies uitvoert en de gegevens elke minuut naar de beginstatus streamt.

Sla de code op en klik op Uitvoeren> Module uitvoeren om te starten.

Oorspronkelijke toestand

In dit project hebben we temperatuurgegevens naar de cloud verzonden met behulp van de service Initial State. Met deze service kunnen gebruikers gegevens uit meerdere bronnen tegelijk plotten en manipuleren.

We hebben de gratis laag gebruikt in deze zelfstudie, die onze gegevens 24 uur bewaard voordat deze wordt verwijderd. Er zijn andere niveaus die onbeperkte data kunnen vasthouden voor een onbeperkt aantal sensoren.

Voor ons project hebben we één sensorinvoer gebruikt, een DS18B20, maar dankzij de Raspberry Pi en zijn GPIO kunnen we veel meer sensoren gebruiken om gegevens over ons huis te verzamelen, bijvoorbeeld in een andere tutorial hebben we een reed-schakelaar gebruikt. Dit kan ook worden gebruikt in de beginstatus, zodat we gegevens kunnen weergeven wanneer deuren worden geopend.

Met behulp van deze service kunnen we gegevens over ons huis interpreteren. Zulke dingen als riet schakelen vensters in; temperatuursensoren in kamers; een klem op onze elektrische meter en lichtsensoren buiten kunnen worden gebruikt om gegevens te verschaffen over hoe energiezuinig ons huis is en deze gegevens kunnen gedurende vele maanden worden weergegeven om ons gebruik tijdens de seizoenen te tonen.

Deze gegevens kunnen worden gebruikt met een centrale verwarming om uw huis automatisch te bedienen met behulp van een bescheiden Raspberry Pi.