Online temperatuur controleren w/Raspberry Pi (6 / 6 stap)

Stap 6: Software

De software heeft twee belangrijke componenten. Het eerste onderdeel is een gedeelde bibliotheek die afhangt van het monitorprogramma. Het is niet nodig om een gedeelde bibliotheek, natuurlijk, maar als u wilt uw eigen aangepaste code schrijven is het handig om de link naar het door de bibliotheek alleen op te geven op de opdrachtregel van de gcc te kunnen. De makefile voor de bibliotheek wordt geleverd met een installateur die de bibliotheek in de juiste plaats voor het monitorprogramma zal plaatsen.

De bibliotheek is zeer eenvoudig en bestaat uit slechts een handvol functies:
int SpiOpenPort (int spi_device, int modus, int snelheid);
int SpiClosePort (int spi_device);
int SpiWriteAndRead (int spi_device, unsigned char * data, int lengte);

De functie SpiOpenPort zal een spi-apparaat niet openen. De keuzes voor spi_device zijn 0 of 1 die komt met CE0 en CE1 voor het selecteren van chip overeen. De modus geeft de instelling voor SPI - leiden van de klok-rand, trailing edge van de klok, enz... De laatste parameter, snelheid, de gewenste snelheid vertegenwoordigt (in Hz) u wilt uw SPI om te communiceren op. Het onderliggende systeem zal proberen te koppelen aan het dichtstbijzijnde of het beste overeenkomen met de snelheid die u opgeeft.

Het monitorprogramma is niet veel moeilijker. Het gaat om het lezen van 2 bytes van het MAX144. Het lezen wordt uitgevoerd tweemaal zodat we altijd op CH2-gegevens (die moet worden kortgesloten aan CH1) worden bediend. We maken een twee-byte word met de eerste byte wordt de MSB en anderzijds de LSB. Wij vervolgens maskeren de 12e bit die aangeeft welke kanaal wij lezen, en ten slotte dat omzetten in een spanning van de resulterende waarde voor conversie naar een temperatuur. De conversie naar temperatuur houdt de lineaire functie (V * 100)-50 die de conversiefunctie tot temperatuur volgens het gegevensblad.

 double read_temperature() { double scale = 3.3/4096; double voltage; unsigned char data[2] = {0x00, 0x00}; int value;<br> SpiOpenPort(0,0,10000);<br> // read twice to get CH2 data<br> SpiWriteAndRead(0, data, 2);<br> SpiWriteAndRead(0, data, 2);<br><br> SpiClosePort(0); // convert to a 2 byte word MSB first<br> value = (((int)data[0] << 8) + (int)data[1]) & 0x0FFF;<br> voltage = value * scale;<br> return (voltage * 100) - 50;<br>} 

Na het lezen van de spanning die deze in de MySql tabel wordt ingevoegd. Voordat we kijken naar die code wel, hebben we een klein verschil in MySql aanbrengen en de database en tabel structuur kunt maken die nodig zijn voor de toepassing om goed te functioneren.

De bron van de bewaarplaats van github downloaden: https://github.com/scottmccain/tempmonitor

De benodigde tabellen maken en database met behulp van de volgende opdracht (Let op dit slechts is één keer worden gedaan):

 ? mysql -u root -p -e "create database Piservicedb; use Piservicedb; create table temperatures (id INT NOT NULL AUTO_INCREMENT, temperature double NOT NULL, timestamp DATETIME NOT NULL, PRIMARY KEY ( id ) )"; 

Wisseling woninggids voor naar de hoofdmap van het project:

CD tempmonitor

Zorg ervoor dat u het script uitvoerbaar markeren:

chmod + x./createdb.sh

Vervolgens het script uitvoeren:

./createdb.sh

Ga in uw referenties (u kan de gebruiker desgewenst wijzigen door het script wijzigen) en de database en tabelstructuur wordt gemaakt voor u.

Zodra dat is voltooid kunt u de vereiste library-bestanden bouwen door het uitvoeren van:
sudo bibliotheek maken

Dit zal bouwen en installeren van de vereiste bibliotheek en gedeelde object voor de temperatuur-monitor. Na dat u kunt bouwen en installeren van de monitorprogramma. Voordat u de broncode bouwen, er zijn echter een paar commando's die u moet uitvoeren voor de hand. De makefile, is afhankelijk van 2 variabelen van het milieu dat moeten worden ingesteld voordat de code zal compileren of naar behoren koppelen. De variabelen moeten worden vastgesteld met de volgende opdrachten:
[invoegen, opdracht instellen vars met mysql_config]

Tot slot kunt u bouwen en installeren van het programma met de volgende opdracht:
sudo make & & sudo maakt installeren

Dit zal de broncode voor het monitorprogramma bouwen en installeer het op een locatie waar cron het kan zien.

Vervolgens maken we een crontab om te beginnen met temperaturen van logboekregistratie op basis van getimede. Eerst de crontab editor te openen door de volgende opdracht uit te voeren:
sudo crontab -e

Zodra de editor is open scroll naar de onderkant van het bestand en voeg de volgende regel:

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

Sla uw wijzigingen op. Dit werkt het monitorprogramma elke 5 minuten om te registreren van de temperatuur. U kan de vermelding voor uw eigen behoeften aanpassen. Raadpleeg de cron man pagina's voor meer informatie.

Gefeliciteerd! Op dit moment moet je Raspberry Pi worden registreren temperaturen. U kunt dat controleren door te gaan in mysql en een query uitvoeren op de tabel van de temperaturen in de servicedb database. Daarna zal ik laten zien u een eenvoudige webservice en toepassing die ik opgeklopte de waarden uit de database wilt weergeven.

Gerelateerde Artikelen

Aquaponics: Online temperatuur en vochtigheid

Aquaponics: Online temperatuur en vochtigheid

voor andere projecten, zie onze belangrijkste site: www.iowa-aquaponics.com/arduino/** Update **U vindt een live demo van de online temperatuur en vochtigheid in actie hier:http://adacsprojects.appspot.com**Hoewel dit project is ontworpen met aquapon
ThingSpeak temperatuur Monitor met Raspberry Pi

ThingSpeak temperatuur Monitor met Raspberry Pi

In deze tutorial zullen we kijken hoe gegevens te sturen naar een online dienst zoals Thingspeak, en hoe gegevens worden weergegeven uit uw BrickPi op het web.We gebruiken een Dexter industrieën Thermometer voor het meten van de temperatuur in de kam
IoT 101 Project: Stream temperatuur van uw Raspberry Pi

IoT 101 Project: Stream temperatuur van uw Raspberry Pi

"Hello World!"-Dit is waarschijnlijk de output van het eerste programma dat u ooit heeft geschreven bij het leren hoe de code. Opzetten van een apparaat te streamen temperatuurinformatie is in snel tempo de feitelijke Internet of Things (IoT) 'H
Meten van de temperatuur met I2C Sensor LM75A op Raspberry Pi

Meten van de temperatuur met I2C Sensor LM75A op Raspberry Pi

In deze tutorial leert u hoe om te meten van de temperatuur met behulp van de sensor van de I2C die lm75a met elk model of de versie van de Raspberry Pi verbonden. De zelfstudie biedt ook 3 open bron codevoorbeelden geschreven in de programmeertaal C
Gemakkelijk Raspberry Pi Security Cam met automatische Web Upload

Gemakkelijk Raspberry Pi Security Cam met automatische Web Upload

Dit is een project dat ik super snel in onder een week of zo samengesteld. De reden dat ik moest dit instellen van de manier waarop die ik deed was om een basisbeveiliging systeem zo spoedig mogelijk om te controleren mijn garage via mijn mobiel appa
Hosten van uw website op Raspberry pi

Hosten van uw website op Raspberry pi

Raspberry pi is een low-cost ontwikkel bord door de raspberry foundation, voor deze tutorial ben ik met behulp van de distro geleverd door adafruit die kan gevonden worden op http://learn.adafruit.com/adafruit-raspberry-pi-educational-linux-distro/oc
Raspberry Pi kerstboom lichtshow

Raspberry Pi kerstboom lichtshow

Dit project omvat het gebruik van een Raspberry Pi te rijden 8 AC verkooppunten die zijn verbonden met kerstboom licht ingesteld. De AC-lichten zijn eenvoudig één kleur strengen van lichten, maar een meer dynamisch bereik om aan te geven de lichtshow
Draadloze Multi-Channel Voice-Controlled stopcontacten met Raspberry Pi

Draadloze Multi-Channel Voice-Controlled stopcontacten met Raspberry Pi

Update van 2/11/2014: dank aan iedereen die gestemd voor dit project in de Raspberry Pi-wedstrijd!Dit project is een combinatie van verschillende middelen van het verschil:Mijn single-outlet-vergrendelingsbeheerproject met Raspberry Pi en Python, oor
Op lijn temperatuur gegevens / grafiek

Op lijn temperatuur gegevens / grafiek

Maken van een online temperatuur controle systeem met behulp van de DallasDS18S20 & vrije softwareMet de installatie van zonne-warm water (geëvacueerd gesloten lussensysteem) wilde ik een visuele weergave van de temperatuur van zowel het zonnestelsel
Eenvoudige en intuïtieve web-interface voor je Raspberry Pi

Eenvoudige en intuïtieve web-interface voor je Raspberry Pi

De Raspberry Pi is een verbazend 35 dollar mini computer. Zo kunt u alles doen die u kon doen met een gewone Linux-computer (verbinding maken met het internet, het bekijken van video's, lancering van toepassingen,...) maar ook om te communiceren met
RASPBERRY PI nRF24L01 + Mini-Hat/Proto-Board

RASPBERRY PI nRF24L01 + Mini-Hat/Proto-Board

Ik wilde een gebruikersspecifieke nRF24L01 + Radio's toevoegen aan mijn Raspberry Pi's. Ik wilde de oplossing redelijk elegant en passen in mijn Pi gevallen zonder het verwijderen van de mogelijkheid van het toevoegen van een camera en andere accesso
10 minute gember melk Pudding

10 minute gember melk Pudding

dit spul is geweldig. Als u nooit hebt geprobeerd gember melk pudding, het is super glad, licht, en heeft de perfecte pittige bite. De textuur is bijna als zijdezachte tofoe... maar balk. Plus, duurt slechts twee ingrediënten---melk en gember (plus s
Geautomatiseerde koelventilator voor Pi

Geautomatiseerde koelventilator voor Pi

BeschrijvingEen eenvoudige ontwerpen aan controle een mini 5v fan met python, zonder de noodzaak van een breadbord, transistoren enz. Alles wat die u nodig hebt zijn een paar kabels en een 1-kanaals Relais. Ik had een 2-kanaals Relais die ik, aangezi
Arduino verbonden met Wifi met behulp van ESP8266 gecontroleerd door de BLYNK (met behulp van een Mac OS X)

Arduino verbonden met Wifi met behulp van ESP8266 gecontroleerd door de BLYNK (met behulp van een Mac OS X)

Hoewel er veel tutorials over het instellen van een nieuwe ESP8266 verbinden met wifi, kostte het nog steeds me dagen en een heleboel uren praten met de IT-afdeling aan het college eigenlijk mijn project opstaan en lopen. Hoop dat dit helpt kun je in