Sensor gesucht
-
Ich suche einen Sensor, den ist in fast jedem PC gibt und den ich einfach auslesen kann. Es geht um eine Beispielanwendung. Was für ein Sensor das ist, spielt gar keine Rolle, hauptsache er liefert Werte.
Welchen Sensor gibt es da und wie kann ich ihn aus c++ heraus ansprechen?
-
fabske schrieb:
Ich suche einen Sensor, den ist in fast jedem PC gibt und den ich einfach auslesen kann. Es geht um eine Beispielanwendung. Was für ein Sensor das ist, spielt gar keine Rolle, hauptsache er liefert Werte.
Welchen Sensor gibt es da und wie kann ich ihn aus c++ heraus ansprechen?Da kommste eh nicht ran ohne Bestriebssystemspezifisache Funktionen.
Ich würde den Sound-Eingang wählen. Da kannste dann zur Demo eine Solarzelle dranstecken und schauen, wie hell es hinter dem Rechner ist. Nee, geht nicht, der Soundeingang macht bestimmt die Gleichspannungsanteile weg.
-
Zeitsensor
. Der geht auch mit Standardmitteln. Wenn du jedoch nicht gerade ein paar schwarze Löcher zur Hand hast, ist das Ergebnis relativ langweilig.
-
Bei mir geht's so:
(natürlich haben nicht alle einen f71882 und linux)#include <iostream> #include <fstream> #include <unistd.h> using namespace std; int readIntFromFile(char const* fileName){ int result; ifstream(fileName)>>result; return result; } void writeIntToFile(int pwm,char const* fileName){ ofstream(fileName)<<pwm<<'\n'; } int main(){ int const mintemp=45,maxtemp=65; int const minpwm=115,maxpwm=255; int oldpwm=-1; int curpwm=-1; writeIntToFile(1,"/sys/devices/platform/f71882fg.656/pwm2_enable"); for(;;){ int temp=readIntFromFile("/sys/devices/platform/f71882fg.656/temp1_input")/1000; int pwm=(temp-mintemp)*(maxpwm-minpwm)/(maxtemp-mintemp)+minpwm; if(pwm<0) pwm=0; if(pwm>255) pwm=255; if(pwm>curpwm) curpwm=pwm; if(pwm<curpwm) --curpwm; if(curpwm!=oldpwm){ writeIntToFile(curpwm,"/sys/devices/platform/f71882fg.656/pwm2"); oldpwm=curpwm; cout<<temp<<' '<<curpwm<<'\n'<<flush; } usleep(1000000); } return 0; }
-
SeppJ schrieb:
Zeitsensor

Ich hab hier so eine Art Platte mit 105 kleinen Drucksensoren ...

-
Bashar schrieb:
SeppJ schrieb:
Zeitsensor

Ich hab hier so eine Art Platte mit 105 kleinen Drucksensoren ...

Ja, hab ich auch. Anhand der Anzahl der anschlagenden Drucksensoren kann man messen, wie bequem die Katze gerade draufliegt.
-
Gibt es denn im PC keine Temperatursensoren die man per Betriebssystem auslesen kann?
-
Vielleicht (ziemlich sicher) ein CPU-Temp-Sensor. Frag mich aber nicht, wie man den ausliest.
-
Bashar schrieb:
SeppJ schrieb:
Zeitsensor

Ich hab hier so eine Art Platte mit 105 kleinen Drucksensoren ...

Ich habe sogar so einen 2-Achsen-Beschleunigungssensor, der einen kleinen Pfeil auf dem Bildschirm herumflitzen lässt.

-
fabske schrieb:
Gibt es denn im PC keine Temperatursensoren die man per Betriebssystem auslesen kann?
Ja, aber dafür solltest du dich in das passende Betriebssystemforum verschieben lassen. Die Schnittstellen werden sicher nicht einheitlich sein.
-
fabske schrieb:
Ich suche einen Sensor, den ist in fast jedem PC gibt und den ich einfach auslesen kann. Es geht um eine Beispielanwendung. Was für ein Sensor das ist, spielt gar keine Rolle, hauptsache er liefert Werte.
Welchen Sensor gibt es da und wie kann ich ihn aus c++ heraus ansprechen?Hallo fabske,
lass Dich von den anderen nicht veralbern

Früher hat man dafür den COM-Port und davor den Druckerport (LPT1) hergenommen. Aber mit der Modernisierung der Rechner gibt es die ja kaum noch bei PCs.
Alternativ kann ich Dir den IOWarrior bieten - ist zwar ein externes Ding, welches an den USB-Port anzuschließen ist, aber billiger als eine eigene Digitale-IO-Card.Gruß
Werner
-
Vielleicht ist das http://www.alcpu.com/CoreTemp/developers.html ja was.
-
Werner Salomon schrieb:
fabske schrieb:
Ich suche einen Sensor, den ist in fast jedem PC gibt und den ich einfach auslesen kann. Es geht um eine Beispielanwendung. Was für ein Sensor das ist, spielt gar keine Rolle, hauptsache er liefert Werte.
Welchen Sensor gibt es da und wie kann ich ihn aus c++ heraus ansprechen?Hallo fabske,
lass Dich von den anderen nicht veralbern

Früher hat man dafür den COM-Port und davor den Druckerport (LPT1) hergenommen. Aber mit der Modernisierung der Rechner gibt es die ja kaum noch bei PCs.
Alternativ kann ich Dir den IOWarrior bieten - ist zwar ein externes Ding, welches an den USB-Port anzuschließen ist, aber billiger als eine eigene Digitale-IO-Card.Gruß
WernerIch glaube, ihr missversteht ihn bzw. die Aufgabe. Es geht doch um einen Sensor, den es in fast jedem PC gibt. Nicht um irgendeinen Sensor, den man an COM/LPT anschließt (den hat dann wahrscheinlich fast keiner
). Insofern finde ich Vorschläge wie z.B. Temperatur-Sensor der CPU oder Maus durchaus legitim und wahrscheinlich im Sinne der Aufgabe.Und btw, als Comport-Ersatz gibt's doch diese USB-to-Serial-Adapter. Ohne die Dinger wäre ich vermutlich arbeitslos.

-
_matze schrieb:
Und btw, als Comport-Ersatz gibt's doch diese USB-to-Serial-Adapter. Ohne die Dinger wäre ich vermutlich arbeitslos.

Mit dem CP2102 und einem anderen USB-to-serial-Converter (Bezeichnung fällt mir gerade nicht ein) hatte ich auch schon zu tun (Treiber für meine Self-Made-Plattform programmiert). Die Dinger werden gern in beliebigen Geräten eingesetzt, um eine einfache Kommunikation über USB mit PCs zu ermöglichen.
-
Richtig, ich suche einen Sensor der schon eingebaut ist! Irgendetwas was ich abfragen kann, von mir aus auch Mauseingaben. Mir ist es völlig egal, es soll nur variable Werte liefern die vielleicht sogar nachvollzogen werden können. Temperatur ändert sich jetzt net so schlagartig, aber mit ner hohen Auflösung wäre es auch ok.
Ich programmiere unter Linux.
-
Also ich denke ich brauche doch lm-sensors. Aber wo finde ich eine Hilfe wie ich diese lib benutze?
Alles was ich gefunden habe war diese nichtfunktionierende Code:
http://www.hackerboard.de/code-kitchen/43286-libsensors-dev-evtl-verstaendnisprobleme.htmlUnd eine kleine Erklärung:
http://lm-sensors.org/wiki/man/libsensors