Pages: [1]   Go Down
Author Topic: 433MHz Signal auslesen und portieren  (Read 245 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Forum,
ich habe vor einiger Zeit einmal auf einem Arduino eine Bibliothek  zum Auslesen von Wetterstationssignalen benutzt. Dieses funktionierte auch hervorragend. Jetzt bin ich jedoch am basteln und rumprobieren ob mir das ganze nicht auch auf dem Raspberry(ich weiß dass ist tendenziell das falsche Forum, ihr seid aber eindeutig in diesem Bereich fitter)  gelingt.
Dazu habe ich zwei grundlegende Fragen meinen aktuellen Code habe ich in Python geschrieben (siehe unten), ist Python überhaupt für soetwas geeignet oder ist es auch hier besser auf C zurück zugreifen?
Meine zweite Frage beschäftigt sich mit dem Prinzip:
Aktuell lese ich permanent den Zustands des Datenlesenden Pins aus und lasse mir die Zeit ausgeben, wie lange welcher Zustand gehalten wird. Auf Grund der Zeit wollte ich berechnen wie oft das Signal eigentlich gesendet wurde.
Warum mache ich das? Ich kann nicht immer nur Bibliotheken nehmen und diese gar nicht verstehen, also muss ich mir den Spaß sukzessive beibringen.
Hier einmal mein bisheriger Code:
 
Code:
GPIO.setup(11,GPIO.IN)
x = 0 #Zustand des Pins
n = 0 #Funktionswiederholungen
time0 = 0
time1 = 0
while 1:
        if GPIO.input(11) ==GPIO.HIGH:
                #print 1
                y = 1 #Hilfsvariable
                n = n + 1
                if x != y:
                        time0 = time.time() * 1000
                        print time0 - time1,
                        x = y
                        print n ,
                        print x,
                        n = 0
        else:
                y = 0
                n = n + 1
                if x !=y:
                        time1 = time.time() * 1000
                        print time1 - time0,
                        x = y
                        print n ,
                        print x,
                        n = 0
                #print 0

Vielen Dank für eure Hilfe.
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 59
Posts: 3071
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
ist Python überhaupt für soetwas geeignet
(ich weiß dass ist tendenziell das falsche Forum, ihr seid aber eindeutig in diesem Bereich fitter)
Das ist nicht nur für Raspi das falsche Forum, für Python bist du hier noch falscher.
Aber wenn Python so Sachen wie
     if GPIO.input(11) ==GPIO.HIGH:
machen kann, sollte der Rest doch erst recht gehen ...
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
da hast du natürlich vollkommen recht. Ich dachte mir nur, dass ihr eventuell auf dem Gebiet des Auslesens deutlich mehr Erfahrungen habt und der Meinung seid C "ist eh besser" . Und zweitens würde ich gerne wissen wollen ob mein Ansatz zum Auslesen richtig ist,sprich die Zeiten der einzelnen Phasen auszulesen und daraus  Rückschlüsse über die Anzahl der gesendeten 1 und 0 ziehe.
mfg
Balli
Logged

Wien
Online Online
Edison Member
*
Karma: 28
Posts: 1925
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

Dir muß aber schon klar sein, daß ein raspi komplett anders arbeitet als ein arduino. dort läuft ein betriebssystem, das Dir immer wieder dazwischenfunken wird, weil es grad was anderes macht. beim arduino kannst Du genau vorhersagen, wann was passiert, weil ja nur Dein programm läuft. beim raspi "erlaubt" Dir linux, gewisse prozessorzeit in anspruch zu nehmen, und das ist bei zeitkritischen anwendungen natürlich kontraproduktiv.

es ist möglich, auch WS2812er werden vom raspi gesteuert, aber das wird von absoluten linux-cracks gemacht. und wenn Du eine lösung von denen findest, bist Du wieder bei bibliotheken...

ich würde entweder einen raspi mit einem arduino kombinieren oder einen YUN nehmen, auch dort hast Du die trennung von AVR und linux.

gruß stefan
Logged

Cologne
Offline Offline
God Member
*****
Karma: 11
Posts: 512
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
ich würde dir empfehlen, den Funkempfänger mit einem Arduino zu bedienen, dann die Ergebnisse über Seriell an den Raspberry zu übergeben, der speichert die Werte in einer Datenbank und kann sie über seinen Webserver darstellen.
Ich bin selber gerade an einem solchen Projekt dran und verfolge genau dieses Konzept.

Gruß
Reinhard
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 238
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

HI,
vielen Dank für eure Antworten, die Umsetzung das ganze via Kombination zu machen, habe ich bereits realisiert, eben mit einer Bib dafür, doch ich dachte mir das muss doch auch anders gehen. Aber gut, dann mache ich das ganze eben wie gehabt. Falls das von Interesse ist, poste ich das ganze natürlich gerne (www.andylicht.de - die Seite befindet sich gerade im Aufbau, ich arbeite gerade all meine Projekte Schritt für Schritt auf, nur "leider" werden die Tage draußen immer länger)
mit besten Grüßen
Balli

p.s. ich habe damit im übrigen eine Terrariensteuerung realisiert.
Logged

Pages: [1]   Go Up
Jump to: