Online temperatur övervaka w/Raspberry Pi (6 / 6 steg)

Steg 6: programvara

Programmet har två viktiga komponenter. Den första komponenten är ett delat bibliotek som monitor programmet beror på. Det är inte nödvändigt att göra ett delat bibliotek, naturligtvis, men om du vill skriva din egen anpassad kod är det bra att kunna länka till den genom att bara ange biblioteket på kommandoraden gcc. Makefile för biblioteket kommer med ett installationsprogram som kommer att placera biblioteket i rätt plats för programmet monitor.

Biblioteket är mycket enkel och består av bara en handfull funktioner:
int SpiOpenPort (int spi_device, int läge, int hastighet);
int SpiClosePort (int spi_device);
int SpiWriteAndRead (int spi_device, unsigned char * data, int längd);

Funktionen SpiOpenPort öppnas en spi-enhet. Val för spi_device är 0 eller 1 som motsvarar CE0 och CE1 för chip Välj. Läget anger SPI läge - ledande klocka kant, avslutande klocka edge, etc... Den sista parametern, hastighet, representerar önskad hastighet (i Hz) du vill ha din SPI att kommunicera på. Det underliggande systemet försöker matcha till närmaste eller bästa matchen för den hastighet du anger.

Monitor-programmet är inte mycket svårare. Det handlar om läsning 2 byte från MAX144. Läs utförs två gånger så vi är alltid opererad CH2 data (vilket bör vara kortsluten till CH1). Vi skapar ett två byte ord med den första byten som MSB och andra LSB. Vi sedan mask den 12: e lite som anger vilken kanal som vi läser, och slutligen konvertera det till ett resulterande spänningen värde för konvertering till en temperatur. Konvertering till temperatur innebär den linjära funktionen (V * 100)-50 som är omvandlingen funktion till temperatur enligt databladet.

dubbel read_temperature() {
dubbel skala = 3,3/4096;
dubbel spänning;
unsigned char data [2] = {0x00, 0x00};
int värde; < br >
SpiOpenPort(0,0,10000); < br >
Läs två gånger för att få CH2 data < br > SpiWriteAndRead (0, uppgifter, 2). < br > SpiWriteAndRead (0, data, 2); < br >< br > SpiClosePort(0);

konvertera till en 2 byte word MSB första < br > värde = (((int) data [0] << 8) + (int)data[1]) & 0x0FFF; < br > spänning = värde * skala; < br > återvända (spänning * 100)-50; < br >}

Efter att ha läst spänningen infogas det i tabellen MySql. Innan vi tittar på att koden ändå, vi har att göra en liten skillnad till MySql och skapa databas och tabell struktur som krävs för att programmet ska fungera korrekt.

Ladda ner källkoden från github databasen: https://github.com/scottmccain/tempmonitor

Skapa de nödvändiga tabeller och databas med hjälp av följande kommando (observera detta måste bara göras en gång):

? MySQL -u root -p -e "skapa databas Piservicedb; Använd Piservicedb; Skapa tabell temperaturer (id heltal inte NULL AUTO_INCREMENT, temperatur dubbel inte NULL, timestamp DATETIME inte NULL, PRIMÄRNYCKEL (id)) ";

Ändra katalog till projektet roten:

CD tempmonitor

Kontrollera att du markerar skriptet körbart:

chmod + x./createdb.sh

Sedan köra skriptet:

./createdb.sh

Ange i dina autentiseringsuppgifter (du kan ändra användaren om du vill genom att ändra skriptet) och databas och tabellstrukturen kommer att skapas för dig.

När det är klar kan du skapa biblioteksfiler som krävs genom att köra:
sudo göra bibliotek

Detta kommer att bygga och installera nödvändiga bibliotek och delade objekt för temperatur monitor. Efter det kan du bygga och installera programmet monitor. Innan du kör bygga källkoden, men det finns ett par kommandon måste du köra innan handen. Makefile beror på 2 miljövariabler som måste anges innan koden kommer att sammanställa eller länka ordentligt. Variablerna bör anges med följande kommandon:
[infoga kommando för att ange vars med mysql_config]

Slutligen kan du bygga och installera programmet med följande kommando:
sudo göra & & sudo göra installera

Detta kommer att bygga källkoden för monitor programmet och installera det på en plats där cron kan se den.

Nästa kommer att vi skapa en crontab post starta loggning temperaturer på en tidsinställd grund. Först öppna crontab redigeraren genom att köra följande kommando:
sudo crontab -e

När redaktören är öppna rullar till slutet av filen och infoga följande rad:

* / 5 **** /opt/bin/monitor

Spara dina ändringar. Detta kör programmet monitor var 5 minuter om du vill logga temperaturen. Du kan justera transaktionen för dina egna behov. Vänligen hänvisa till cron man-sidorna för mer information.

Grattis! På denna punkt bör din Raspberry Pi logga temperaturer. Du kan kontrollera genom att gå till mysql och köra en fråga mot tabellen temperaturer i databasen servicedb. Nästa kommer jag visa dig en enkel webbtjänst och ansökan jag piskade upp visar värden från databasen.

Se Steg
Relaterade Ämnen

Hemma temperaturövervakning med Raspberry Pi och Thingspeak (med BMP180)

Det är en ålder av IoT.Each dagen mer och fler människor ansluter sig till molnet. Så verkade det som göra orätt att temperatur/tryck givare och en raspberry pi B + (en nästan 1GHz pumpas upp odjuret) som låg runt tabellen dator. De behövs för att ko...

Kretsloppsodling: Online temperatur och fuktighet

för andra projekt, se vår huvudsakliga webbplats: www.iowa-aquaponics.com/arduino/** Uppdatering **Du kan hitta en live demo av online temperaturen och luftfuktigheten i action här:http://adacsprojects.appspot.com**Detta projekt är utformat med krets...

Online temperaturövervakning genom att använda Arduino + Ethernet Shield

Hej, idag jag ska Visa du kille hur man gör arduino temperaturövervakning online, detta exempel är webbaserade-det betyder att du kan ansluta från var som helst, Combine AJAX och PHP tillsammans som kan ge temperaturdata mestadels realtime utan uppda...

Läs temperatur med DS18B20 | Raspberry Pi 2

Hej!Detta är min första instructable projekt, så det inte blir så professionellt som andra!Vi använder DS18B20 temperatursensor för att få temperaturen i ditt rum.Njut!Steg 1: leverera Du behöver:Sensorn själv DS18B20http://www.ebay.com/ITM/waterproo...

Raspberry Pi Torrent, Samba och DLNA med 3 + hårddiskar

det finns många Raspberry Pi guider där ute som hjälper dig att förvandla din Pi till en server med stöd för dataöverföring torrents och dela filer via Samba och DLNA. Men de alla har en stor brist: stödja endast en hårddisk. I detta instructables hj...

På linje temperatur Data / Brskurser

Skapa en online temperaturövervakningssystem använder DallasDS18S20 & fri programvaraMed installationen av solar varmvatten (evakuerade slutet kretslopp) ville jag ha en visuell representation av visning av temperaturen i både solsystemet och tempera...

Raspberry Pi - VNC & SSH

Idag, ska jag visa dig hur du använder Raspberry Pi styrelsen utan att använda en HDMI-monitor. Detta kallas allmänt som SSH tillgång Raspberry Pi utan att använda HDMI-kortplats se skrivbordet på Raspberry Pi.Behovet av lista:1. raspberry Pi (jag an...

Bygga en bärbar Linux eller Android-enhet för att vara stolt av!

Hej!Jag har några saker att nämna innan vi börjar:Detta är inte en färdig Instructable. Jag har arbetat som konsekvent på detta projekt som en heltid high school student kan sedan jag fick reda på denna tävling, men tyvärr jag bara några dagar kort.D...

Tobak jäsning / bota kammare för cigarrer

tobak är en ålder gammal, ännu fantastiska växt, som har blivit alltmer populärt bland hobby under den senaste tiden!Kanske det är en distraktion från dagliga påfrestningar och gör en flykt till enklare tider. För vissa är tobaksodling en absolut bes...

ARDUINO sol LADDNINGSREGULATORN (Version 2.0)

[Spela Video]För ett år sedan började jag bygga min egen solsystemet för att ge kraft till mitt hus. Jag gjorde inledningsvis en LM317 baserade laddningsregulatorn och en energimätare för övervakning av systemet. Slutligen gjorde jag PWM laddningsreg...

Kretsloppsodling: Arduino Email & Text Messaging

bakgrundMed alla hyllade fördelarna med kretsloppsodling, finns det flera nackdelar och de ligger främst i behov av elektricitet. Vanligtvis finns minst en pump, men om du använder också växa lampor, varmvattenberedare och annan elektronik, kommer du...

Övervaka dina barns online-elektronik användning med SmartThings och en Raspberry Pi

Detta är en idé jag har om att använda Raspberry Pi för att fungera som en konstant checker av vad elektroniska apparater är registrerade på hem wifi-nätverk, som sedan uppdateras också hemautomation navet (i detta fall SmartThings).Hemautomation nav...

Raspberry Pi temperatur & luftfuktighet Network Monitor

Observera att det är en Git repo för kod på:https://github.com/jervine/RPI-Temp-humid-MonitorOm du vill ha de senaste korrigeringarna eller skulle vilja bidra. Tack Jonny Ervine!Jag hade vissa problem med Kingston SD-kort, men SanDisk korten jag anvä...

Temperatur och luftfuktighet övervakning med SHT25 och Raspberry Pi

Vi har nyligen arbetat med olika projekt som krävs för temperatur och luftfuktighet övervakning och sedan insåg vi att dessa två parametrar faktiskt spela en nyckelroll i att ha en uppskattning av den arbetande effektiviteten i ett system. Både på de...

Raspberry Pi - HIH6130 I2C luftfuktighet & temperatur Sensor Java Tutorial

HIH6130 är en luftfuktighet och temperatursensor med digital utgång. Dessa sensorer ger en noggrannhet ±4% RH. Med branschledande långsiktig stabilitet temperaturkompenserad true digital I2C, branschledande tillförlitlighet, energieffektivitet och Ul...

Raspberry Pi - HIH6130 I2C luftfuktighet & temperatur Sensor Python Tutorial

HIH6130 är en luftfuktighet och temperatursensor med digital utgång. Dessa sensorer ger en noggrannhet ±4% RH. Med branschledande långsiktig stabilitet temperaturkompenserad true digital I2C, branschledande tillförlitlighet, energieffektivitet och Ul...

Raspberry Pi - TCN75A temperatur Sensor Java Tutorial

TCN75A är en två-tråd seriell temperatursensor med temperatur-till-digital-omvandlare. Det har blandats med användaren programmerbara register som ger flexibilitet för temperaturkännande program. Med registret inställningarna kan användare konfigurer...

Raspberry Pi - TCN75A temperatur Sensor Python Tutorial

TCN75A är en två-tråd seriell temperatursensor med temperatur-till-digital-omvandlare. Det har blandats med användaren programmerbara register som ger flexibilitet för temperaturkännande program. Med registret inställningarna kan användare konfigurer...

Raspberry Pi - TMP100 temperatur Sensor Java Tutorial

TMP100 hög noggrannhet, Low-Power, Digital temperatur Sensor I2C MINI modul. TMP100 är idealisk för utökade Temperaturmätning. Denna enhet erbjuder en noggrannhet på ±1 ° C utan att kalibrering eller extern komponent signal konditionering. Här är dem...