In 15 Minuten zum eigenen C++ Programm zum ausgeben der Systemtemperatur des Raspberry Pi Zero W – Teil 2

In der ersten Lektion haben wir in 15 Minuten gesehen wie wir checken können ob C++ auf dem Raspberry Pi installiert ist und haben unser 1. eigenes C++ Programm auf dem Pi mit der Kommandozeile erstellt, compiliert und ausgeführt.

In 15 Minuten zum eigenen C++ Programm zum ausgeben der Systemtemperatur des Raspberry Pi Zero W – Teil 2

Nun wollen wir auf dem Pi, in 15 Minuten die erste Klasse erstellen, da wir ja Objektorientiert programmieren wollen. Dazu erstellen wir mit dem vi ein einfache Klasse zum ausgeben der Temperatur des Pi.

Wir nennen die Klasse Temperatur. Damit wir nicht alles in einer Datei haben, erstellen wir für jedes Objekt eine eigene Datei. Also zuerst die Deklaration in der Temperatur.h:

#ifndef __TEMPERATUR_INCLUDE__
#define __TEMPERATUR_INCLUDE__
class Temperatur{
	public:
		void ausgeben();
};
#endif

Wir haben also eine Methode, ausgeben() deklariert. Damit diese Header Datei nicht mehrfach includet wird, definieren wir die __TEMPERATUR_INCLUDE__

So, jetzt noch die eigentliche C++ Datei Temperatur.cpp mit der Implementierung der Temperatur:

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

class Temperatur
{
public:
		Temperatur();
		~Temperatur();

		void ausgeben();
};

Temperatur::Temperatur(){
}
Temperatur::~Temperatur(){
}
void Temperatur::ausgeben(){

        system("cat /sys/class/thermal/thermal_zone*/temp >temp.txt");
	cout << ifstream("temp.txt").rdbuf();
}

Wir brauchen da noch zwei Import Dateien für das Aufrufen der system und ifstream Funktionen. Es ist eigentlich nicht so gut, Betriebssystem abhängige Funktionen aufzurufen. Aber wir bleiben auf dem Raspberry Pi. Und es geht hier nur um C++. Es wird die Temperatur, die in der temp Datei steht in eine neue Datei temp.txt geschrieben und dann mit read Buffer gelesen und ausgeben.

So nun noch das Hauptprogramm programm-2.cpp:

#include <iostream>
#include "Temperatur.h"

using namespace std;

#define PROGRAMM_VERSION 2

int main()
{
	cout << "www.wenzlaff.de" << endl;
	cout << "Programm Version " << PROGRAMM_VERSION << endl;

	Temperatur temperatur;
	temperatur.ausgeben();

	return 0;
}

Oben, mit der include Anweisung, binden wir die Deklaration der Temperatur.h Datei ein. In der main() Methode erzeugen wir eine Instanz und rufen die ausgeben() Methode auf.

So, jetzt compilieren wir die zwei Dateien. Aber dieses mal im Ansi Modus und mit allen Warnungen.

g++ -ansi -Wall -o start-prg-2 programm-2.cpp Temperatur.cpp

So, wenn es keine Fehler gab, führen wir das Programm mit

./start-prg-2

aus. Mit diesem Ergebnis:

www.wenzlaff.de
Programm Version 2
36318

Super, es wird jetzt die Temperatur ausgegben.

Hausaufgabe:

Dieser Wert muss noch durch 1000 geteilt werden um die Temperatur zu erhalten.

Wer postet die notwendigen Änderungen als erster? So das folgendes ausgegeben wir:

Temperatur 36,318 Grad Celsius

Entweder hier auf dem Blog, oder besser als Pull Request auf Github.

Ähnliche Artikel:

  1. In 15 Minuten zum eigenen C++ Programm auf dem Raspberry Pi Zero W – Teil 1
  2. Arduino Nano Programm und Video: Anzeige der 100 am meisten verwendeten Wörter in Englisch
  3. Raspberry Pi: COBOL in 5 Minuten installieren oder “Back to the Future”

wallpaper-1019588
Die Parallelwelt-Chroniken des Aristokraten: Neue Details zum Disc-Release bekannt
wallpaper-1019588
My Unique Skill Makes Me OP even at Level 1: Serie erscheint auf Disc
wallpaper-1019588
Twilight Out of Focus: Neues Promo-Video veröffentlicht
wallpaper-1019588
Wind Breaker: Neuigkeiten zum Cast + Visual