Fehlersuche bei Funk-Temperatursensoren

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Nabend

    Ich koppele meine Fragen mal aus dem Entwicklungsthread aus.


    Jetzt sind wir auch fertig mit löten und programmieren, aber es kommt kein Signal an.
    Wie können wir mit der Fehlersuche beginnen?

    Alle Lötarbeiten habe ich nochmal kontrolliert und dabei tatsächlich einen Fehler gefunden.
    Doch leider geht immer noch nichts.

    Nach der Eingabe von "cat /dev/ttyAMA0" passiert leider nichts...

    Gibt es eine systematische Vorgehensweise,
    wie ich auf den Fehler stoßen könnte?

    Danke im Voraus

    Kolja

    P.S.
    Wenn jemand Lust&Zeit hat uns bei dem Projekt* zu helfen würden wir uns sehr freuen.
    In der Nähe von Kassel könnte man sich ja auch mal treffen.


    *Energiemonitoring in Kindergärten

  • Nabend

    Danke für die Frage.

    Also ich habe einen Sender (DS18B20) und einen Empfänger zusammengelötet.
    Beide mit jeweils einem RFM12B.

    Ich empfange nichts, aber ich bekomme auch kein UART Ausgabe am Empfänger.
    Wie hier unter "Fehlersuche am Empfänger" beschrieben ist.
    http://raspberry.tips/hausautomatisi…inbetriebnahme/

    Eine LED habe ich nur am Empfänger,
    diese glimmt pulsierend im Sekundentakt.

    Geflasht habe ich über den Pi nach Anleitung.
    Da gab es keine Fehlermeldung.

    Am RasPi frage ich nur über UART aus, ohne ein Ergebnis zu bekommen...

    In der Hoffnung auf weitere Hinweise

    Kolja


    edit:
    Wir haben nur den ATM auf nem Breadboard an den Pi angeschlossen.
    Der Sollte uns jetzt ja ein "SETUP" in der Ausgabe sehen können.
    Tun wir aber nicht...

    "double check the wiring" haben wir mehrfach gemacht.

    Wie können wir noch überprüfen, ob das flashen funktioniert hat?

    Einmal editiert, zuletzt von kolja (14. Dezember 2014 um 21:07)

  • Eine LED habe ich nur am Empfänger,
    diese glimmt pulsierend im Sekundentakt.

    Bist du sicher das du auf dem Empfänger Receive_PI.ino geflasht hast? Wenn ja, und die LED in dem Takt blingt dessen SENDDELAY Wert du im Sender eingestellt hast, dann empfängt der auch was.


    Wir haben nur den ATM auf nem Breadboard an den Pi angeschlossen.
    Der Sollte uns jetzt ja ein "SETUP" in der Ausgabe sehen können.
    Tun wir aber nicht...

    Was ist ein ATM? :D

    Bist du sicher das er beim setup() etwas ausgeben sollte? In meinem Sketch ist das nämlich nicht vorgesehen!
    Also bitte mal deinen aktuell verwendeten Sketch posten damit man kontrollieren kann ob du das auch richtig gemacht hast!

    Stell sicher das du exakt den Schritten von UART Freischalten gefolgt bist und anschließend den ganzen PI auch neu gestartet hast!

    Temporär eine LED am Sender anzubringen sollte aber i.d.R. auch kein Problem sein, eine Grüne würde sich dafür zB anbieten.


    Zum testen kannst du halt auch einfach einen 0815 Sketch auf den Empfänger flashen, nur um zu sehen ob UART funktioniert:

    Der Receiver sendet über TX und der PI empfängt das über RX

    Pinbelegung passend zu den Sketches:

    Code
    Receiver ATtiny     RaspberryPI
    ------------------|---------------
    rxPin 7 (D7, PA3)   TXD (GPIO-14 pin#8)
    txPin 3 (D3, PA7)   RXD (GPIO-15 pin#10)

    Zusätzlich natürlich noch 3V3 oder 5V (am besten wäre letzteres da dort mehr Ampere zur Verfügung stehen) und GND zur Stromversorgung.


    //EDIT:

    " `Serial`was not declared in this scope " Fehler behoben... Serial -> mySerial

  • also meine ersten Microcontrollererfahrungen habe ich auch mit diesem projekt gesammelt....

    Verbau mal eine LED auch am Sender, und stell im Sender-Sketch eine kürzere Zeit ein so 4 Sek zum Beispiel..Blinkt die korrekt sollte das flashen funktioniert haben...

    - hast den bootloader auch installiert pro ATM?
    - hast die korrekte 8MHz eingestellt?
    - beim Sender könntest du einen fixwert zum senden einstellen somit kannst dann auschliessen, dass dein DHT22 vielelicht kaputt ist...

  • Leider bekomme ich mit deinem Sketch einen Error:
    `Serial`was not declared in this scope

    Hab auch schon hier im Forum gesucht, bin aber nur auf deine Frage in dem Entwicklungsthread gestoßen.

    Kolja

    edit:

    Hab mal dein Sketch mit der Ergänzung aus dem Link verglichen:
    setup.png

    Ihr macht so ziemlich das Selbe.

    Die UART Einstellungen am Pi habe ich nochmal überprüft.
    Dann in ich exakt nach der Anleitung vorgegangen:
    Board ausgewählt, Programmer (on-board), Bootloader gebrannt, Sketch geladen, Verify, Upload using Programmer.
    Verkabelt ist wie hier:
    http://www7.pic-upload.de/05.02.14/v6oatwqbz6r.png
    Also wie du angegeben hast.

    Jetzt müsste ja "Setup" ausgegeben werden.

    Einmal editiert, zuletzt von kolja (16. Dezember 2014 um 00:27)

  • So, alles nach Anleitung gemacht und UART abgefragt mit folgendem Ergebnis:
    e78pt2eu.jpg

    Warum nicht :s

    @ds
    Danke, das macht mir Mut.
    Aber wie bekomme ich dann die Ausgabe hin?

    Einmal editiert, zuletzt von kolja (16. Dezember 2014 um 00:35)

  • Aber wie bekomme ich dann die Ausgabe hin?

    Ganz oben initialisiert man die Classe und weißt einen Namen zu sowie übergibt die Pins: SoftwareSerial mySerial(rxPin, txPin);
    Wenn man also nachfolgend die SoftwareSerial Schnittstelle/Befehle verwenden möchte muss man das über mySerial machen.
    Bevor man darüber was ausgeben kann muss diese aber erst tatsächlich gestartet werden: mySerial.begin(9600);
    Erst danach kann man darüber ausgaben machen!
    Ohne anschließenden Zeilenumbruch: mySerial.print("bla");
    Mit anschließenden Zeilenumbruch: mySerial.println("bla");


    ich weiß nicht genau was du mit


    Hab mal dein Sketch mit der Ergänzung aus dem Link verglichen:
    [...]
    Ihr macht so ziemlich das Selbe.

    ..meinst :huh: Ich sehe nicht welchen Link zu meinst oder wo das derart in meinen Sketches vorkommen soll :huh: Keiner der Sender-Sketches hat SoftwareSerial drin.

    so ziemlich das Selbe ist nicht das Selbe :lol:

  • Tja, das ist ja auch nicht von mir ... Da hat irgendwer mein Projekt kopiert und ungetesteten Mist dazu gepfuscht :mad_GREEN:

    Auf sowas würde ich nicht achten... Da sehe ich spontan auch noch andere Fehler


    Zitat

    Die Anleitung basiert auf den Infos von Meingraf und Nathan.

    pah! wie unfähig :stumm:

  • Habe das / den Sketch jetzt so geändert:

    u5rqbjzp.jpg

    Leider mit dem selben Ergebnis, es funktioniert nix...

    Wenn der ATtiny defekt wäre,
    würde mir das doch beim flashen mitgeteilt werden, oder?

    So langsam falle ich hier vom Glauben ab :(

    Einmal editiert, zuletzt von kolja (16. Dezember 2014 um 02:42)

  • Du kannst/musst nicht nur setup() mySerial eintragen... Was du machen musst und was dafür nötig ist hab ich dir doch nicht nur anhand eines vollständigen Sketches gezeigt sondern oben auch noch mal beschrieben?!? Wieso machst du das nicht einfach mit dem Test-Sketch?


    Bitte beschreibe mal mit Eigenen Worten so detailliert wie möglich wie genau Du vorgehst um den ATtiny zu flashen (von Anfang an! Also Jeden einzelnen Schritt!)

  • Moin meigrafd

    Danke erstmal für deine Geduld!

    So wie ich dreamshader verstanden hatte, sollte einfach print() hinter das begin().
    Und so tat ich es...
    Ebenso dein Test-Sketch, auch in der korrigierten Version.
    Ohne Erfolg...

    Jetzt mal alle Infos die ich habe:

    Der Pi hängt über ein Lankabel an der Fritzbox, ich steuere ihn mit putty und tightvnc. (beide als root)
    Der AT84 ist völlig nackt auf einem Breadboard.
    Wenn ich ihn flashe, mache ich den Pi aus, verkabele das Ganze wie hier:
    http://www7.pic-upload.de/09.12.13/5m92lh3xfbn.png
    Pi wieder an, putty vnc starten, vnc AdruinoIDE öffnen.
    Board auswählen, bzw. überprüfen dass es noch angewählt ist (AT84@8MHz)
    Programmer wie Board (GPIO)
    Bootloader brennen (muss nicht jedesmal, schadet hoffentlich nicht)
    Sketch per c&p aus dem Forum hier kopieren
    verify -> ohne Fehler (bis auf den "serial")
    upload über programmer
    Pi runterfahren
    Kabel umstecken wie hier:
    http://www7.pic-upload.de/05.02.14/v6oatwqbz6r.png
    Anschalten, putty starten (root)
    stty 9600 -F /dev/ttyAMA0
    cat /dev/ttyAMA0
    beide per c&p
    nach dem zweiten Befehl gibt es eine leere Zeile in der Console
    und nix passiert mehr
    dann mit Strg+C abbrechen


    Ich hoffe ich hab nix vergessen....

    Gruß Kolja

  • Hallo Kolja,
    also da hast Du mich schon richtig verstanden. Wenn Du den sketch abänderst und erst das Serial.begin(BAUD) und anschliessend dann der Serial.print("SETUP") machst, dann wird SETUP ausgegeben.

    Ich bin ein absoluter Fan von selbst erstellten Fritzing-Skizzen der eigenen Verdrahtung.
    Ein Link auf ein Tutorial bringt nichts, weil davon auszugehen ist, dass die Verschaltung in diesem korrekt ist. Meist liegt der Fehler in der nachgebauten Schaltung ... und dieser ist so nicht zu finden. Ausserdem fällt einem ein falscher Anschluss meist selbst auf, wenn man seine Schaltung abzeichnet.
    Trotzdem fällt mir eins zu Deiner Verschaltung ein:
    Hast Du beachtet, dass die Leiterbahnen an den Stellen mit dem roten X unterbrochen werden müssen?
    Hast Du sichergestellt, dass Rx des Tiny auf Tx des RPi und vice versa geht?

    cu,
    -ds-


  • Hallo Kolja,
    also da hast Du mich schon richtig verstanden. Wenn Du den sketch abänderst und erst das Serial.begin(BAUD) und anschliessend dann der Serial.print("SETUP") machst, dann wird SETUP ausgegeben.

    ...jein...

    Hier geht es um Software-Serial, nicht um Hardware-Serial. Das sind 2 unterschiedliche Dinge!
    Serial.print("SETUP") ist die Hardware-Serial wohingegen mySerial.print("SETUP") SoftwareSerial wäre sofern man das vorher auch so deklariert (man kanns aber auch "bla" nennen, whatever...)

    Für SoftwareSerial sind die Anforderungen so wie ich es in Beitrag#5 gezeigt habe, nicht weniger:
    Oben #include <SoftwareSerial.h>
    danach geht auch SoftwareSerial mySerial(-1, 3); da rx hierfür nicht benötigt wird
    danach mySerial.begin(9600);
    und erst jetzt geht mySerial.print("SETUP")

    Lässt man einer der Zeilen weg oder falsche Reihenfolge, funktioniert nichts!!


    verify -> ohne Fehler (bis auf den "serial")

    Wie, bis auf den serial? Wenn du Fehlermeldungen kriegst dann poste das mal bitte!


  • ...
    Lässt man einer der Zeilen weg oder falsche Reihenfolge, funktioniert nichts!!
    ...


    da hast Du natürlich wahr ...
    Das ist irgendwie an mir vorbeigezogen, dass das eine SoftSerial-Verbindung sein soll ... ohne Pins kein Output ... logisch.
    Auf was man alles achten muss ;) ...
    cu,
    -ds-

  • Nabend

    Hast Du beachtet, dass die Leiterbahnen an den Stellen mit dem roten X unterbrochen werden müssen?
    Hast Du sichergestellt, dass Rx des Tiny auf Tx des RPi und vice versa geht?

    Ja und Ja
    Sogar mit dem Multimeter gescheckt

    Mit dem Fehler meinte ich deinen Sketch,
    bevor du ihn korrigiert hast.
    `Serial`was not declared in this scope

    Was ich versucht habe zu überprüfen, ist die Datei, die in deinem Sketch aufgerufen (include) wird.
    Aber wo finde ich die SoftwareSerial.h ?

    Gruß Kolja

    Hier mal ein Foto:
    s7qxfxhk8dz.jpg

    Einmal editiert, zuletzt von kolja (16. Dezember 2014 um 17:47)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!