Fehlersuche bei Funk-Temperatursensoren

  • 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

  • - hast du einen oder mehrere Sensoren zusammengelötet?
    - bei keinem empfängst du etwas?
    - hast du eine LED angeschlossen? Blinkt sie beim Senden?
    - Wie hast du geflasht?
    - Am Raspi hast du alles richtig eingestellt, laut Anleitung?

  • 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/hausauto…en-teil-5-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?

    Edited once, last by kolja ().

  • 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:
    [Blocked Image: http://cdn.raspberry.tips/2014/11/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.

    Edited once, last by kolja ().

  • 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



    Quote

    Die Anleitung basiert auf den Infos von Meingraf und Nathan.


    pah! wie unfähig :stumm:

  • 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:
    [Blocked Image: http://www11.pic-upload.de/thumb/16.12.14/s7qxfxhk8dz.jpg]

    Edited once, last by kolja ().