For dette Raspberry Pi-prosjektet, dunkker vi hodene våre i Tingets Internett (IoT). Vi bestemmer temperaturen i vårt hjem ved hjelp av en kostnadseffektiv sensor og skyver dataene til skyen og bruker den til å fylle ut en graf.

Sensoren vi bruker er en Dallas DS18B20. Disse kan hentes relativt billig, men en enkel løsning er å kjøpe CamJam EduKit 2, da den inneholder en vanntett Dallas DS18B20.

Hva du trenger

  • Eventuelle Raspberry Pi A + B + eller Pi 2
  • Den nyeste Raspbian OS
  • En DS18B20 sensor (del av Cam Jam EduKit 2)
  • bread~~POS=TRUNC
  • Mann til kvinnelige jumperkabler
  • 4.7kOhm motstand
  • WI-FI dongle
  • En www.initialstate.com konto
  • Last ned koden

Bygg prosjektet

Monter maskinvaren og fest til Pi som vist i diagrammet (se nedenfor).

Vi fester DS18B20 til et brødbrett og gir strøm til datapinnen via en 4.7kOhm motstand.

Deretter setter vi opp sensoren og det er et praktisk Cam Jam regneark for dette. For å fortsette trenger du en Initial State-konto og API-nøkkelen din, som du finner i kontoinnstillingene dine.

For å installere den innledende tilstanden streamer type:

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

Vi starter vår kode ved å importere biblioteker for å jobbe med operativsystemet, tiden og for å streame dataene våre til skyen:

importere os, glob, tid

fra ISStreamer.Streamer import Streamer

Deretter laster vi kjernemodulene for sensoren ved bruk modprobe , vi pakker inn Bash-kommandoene i en os.system () funksjon for Python og fortell koden vår hvor du finner filen for lagring av temperaturdataene:

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'

Deretter lager vi en funksjon for å håndtere lesing av innholdet i filen som lagrer de rå temperaturdataene og lagrer dataene som en variabel.

Nå leser vi dataene og behandler det til noe mer brukbart. Vi holder informasjonen og striper resten av dataene før du konverterer dataene til en temperatur.

Vår siste del er en sløyfe som kontinuerlig kontrollerer temperaturen, utfører konverteringer og streamer dataene til opprinnelig tilstand hvert minutt.

Lagre koden og klikk på Kjør> Kjør modul for å starte.

Opprinnelige tilstand

I dette prosjektet sendte vi temperaturdata til skyen ved hjelp av en tjeneste som heter Initial State. Denne tjenesten gjør at brukerne kan grafere og manipulere data fra flere kilder samtidig.

Vi brukte gratis nivå i denne opplæringen, som beholder våre data i 24 timer før du sletter den. Det finnes andre nivåer som kan beholde data på ubestemt tid for et ubegrenset antall sensorer.

For vårt prosjekt brukte vi en sensorinngang, en DS18B20, men takket være Raspberry Pi og GPIO kan vi bruke mange flere sensorer til å samle data om vårt hjem, for eksempel i en annen opplæring vi brukte en svingbryter. Også dette kan brukes med Initial State slik at vi kan vise data når dører åpnes.

Så å bruke denne tjenesten kan vi tolke data om vårt hjem. Slike ting som reed bytter på windows; temperatur sensorer i rom; en klemme på vår elektriske meter og lyssensorer utenfor kan brukes til å gi data om hvor energieffektiv vårt hjem er, og disse dataene kan grafes i mange måneder for å vise bruken vår over sesongene.

Disse dataene kan brukes med et sentralvarmesystem for å kontrollere hjemmet ditt automatisk ved hjelp av en ydmyk Raspberry Pi.