Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. nod-red serial kommunikation

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    nod-red serial kommunikation

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mike1976 last edited by

      Hallo,

      also wie fange ich am besten an.
      Habe ein waage auswertung die ein serielle schnitstelle für ein LED Anzeige hat.
      So nun will ich aber gerne über node-red das gewicht erfassen.

      Was habe ich bist jetzt probiert.
      Als erstes hatte ich es mit einem USB-RS232 adappter probiert aber da bekomme ich ausser time out
      keine werte.
      So nun habe ich das ganze über die UART des PI verbunden und es kommt auch was an.
      Nur werde ich daraus nicht schlau.

      Ob das überhaupt stimmen kann,
      Aktuell wird an der waage 0.0 angezeigt.

      Hat wer rat für mich.

      Buffer.PNG

      [{"id":"3c0183ef.c366ec","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"93517b22.6bd398","type":"serial request","z":"3c0183ef.c366ec","name":"","serial":"698d44e5.759acc","x":480,"y":540,"wires":[["b3efa487.c59878"]]},{"id":"b3efa487.c59878","type":"debug","z":"3c0183ef.c366ec","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":680,"y":540,"wires":[]},{"id":"db87cc3c.8efc9","type":"inject","z":"3c0183ef.c366ec","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":160,"y":540,"wires":[["93517b22.6bd398"]]},{"id":"698d44e5.759acc","type":"serial-port","z":"","serialport":"/dev/ttyAMA0","serialbaud":"600","databits":"8","parity":"even","stopbits":"1","waitfor":"","dtr":"none","rts":"none","cts":"none","dsr":"none","newline":"0","bin":"bin","out":"char","addchar":"","responsetimeout":"1000"}]
      

      RS232 Schnittstelle.pdf

      1 Reply Last reply Reply Quote 0
      • P
        peterfido last edited by peterfido

        Hallo,

        die Pinbelegung im PDF spricht für RS 232 Pegel. Diese verträgt der 3,3Volt UART des Raspi normal nicht so... Hast du einen Pegelwandler noch dazwischen?

        Die Geschwindigkeit auf 600 Baud stellen. Die Auswertung muss wohl manuell passieren, da unterschiedliche Bytes am Zeilenende auftreten. Das Startbyte ist fix und die Anzahl der Bytes auch. Eine Prüfsumme ist auch vorhanden. Somit sehe ich da kein großes Problem.

        Ansonsten ist das Protokoll in der PDF beschrieben. Wichtig ist erstmal, dass die Verbindung steht und der Raspi keine Spannungen bekommt, die er nicht verträgt.

        [
           {
               "id": "643715a7.56ebfc",
               "type": "tab",
               "label": "Flow 1",
               "disabled": false,
               "info": ""
           },
           {
               "id": "a5dbed00.06538",
               "type": "inject",
               "z": "643715a7.56ebfc",
               "name": "",
               "topic": "",
               "payload": "",
               "payloadType": "date",
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "x": 180,
               "y": 180,
               "wires": [
                   [
                       "194f9125.92fc0f"
                   ]
               ]
           },
           {
               "id": "194f9125.92fc0f",
               "type": "function",
               "z": "643715a7.56ebfc",
               "name": "",
               "func": "//var a = [0xc9,0x31,0x32,0x33,0x34,0x35,0x36,0x0,0x0,0xd9];\nvar a = [0xc9,0x54,0x20,0x20,0x20,0x30,0x30,0x0,0x0,0xdb];\nvar b = 0, c='', d=0, e=0;\n    for (var i = 0; i <= 6; i++) {\n        b += a[i];\n    }\n    var hexString = b.toString(16);\n    c = hexString.substring(1, 2);\n    d = parseInt(c, 16);\n    c = hexString.substring(2, 3);\n    e = parseInt(c, 16);\n    a[7] = 0x30 + d;\n    a[8] = 0x30 + e;\n    msg.payload = a;\nreturn msg;\n\n",
               "outputs": 1,
               "noerr": 0,
               "x": 370,
               "y": 180,
               "wires": [
                   [
                       "1f72e3e5.9f5eec",
                       "26a47523.0684aa"
                   ]
               ]
           },
           {
               "id": "1f72e3e5.9f5eec",
               "type": "debug",
               "z": "643715a7.56ebfc",
               "name": "",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "true",
               "targetType": "full",
               "x": 670,
               "y": 420,
               "wires": []
           },
           {
               "id": "26a47523.0684aa",
               "type": "function",
               "z": "643715a7.56ebfc",
               "name": "",
               "func": "var punkt = \".\";\n\nvar arr = msg.payload;\nmsg.payload=\"Fehler\";\nvar b = 0, c='', d=0, e=0, i=0;\nif (arr.length===10){\n    for ( i = 0; i <= 6; i++) {\n        b += arr[i];\n    }\n    var hexString = b.toString(16);\n    c = hexString.substring(1, 2);\n    d = parseInt(c, 16);\n    c = hexString.substring(2, 3);\n    e = parseInt(c, 16);\n    d = 0x30 + d;\n    e = 0x30 + e;\n    if(arr[0]===0xc9 && d===arr[7] && e===arr[8]){\n        var s = '';\n        e = arr[9]; \n        s = s + String.fromCharCode(arr[1]);\n        s = s + String.fromCharCode(arr[2]);\n        s = s + String.fromCharCode(arr[3]);\n        if(e > 219){\n            s = s + punkt;    \n        }\n        s = s + String.fromCharCode(arr[4]);\n        if(e===218 || e===221 || e===223){\n            s = s + punkt;    \n        }\n        s = s + String.fromCharCode(arr[5]);\n        if(e===219 || e > 221){\n            s = s + punkt;    \n        }       \n        s = s + String.fromCharCode(arr[6]);\n        msg.payload=s;\n    }\n}\nreturn msg;",
               "outputs": 1,
               "noerr": 0,
               "x": 790,
               "y": 180,
               "wires": [
                   [
                       "caac31e7.2acb5"
                   ]
               ]
           },
           {
               "id": "caac31e7.2acb5",
               "type": "debug",
               "z": "643715a7.56ebfc",
               "name": "",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "false",
               "x": 990,
               "y": 180,
               "wires": []
           },
           {
               "id": "a19963de.8edda",
               "type": "serial in",
               "z": "643715a7.56ebfc",
               "name": "",
               "serial": "de35828f.22ea",
               "x": 590,
               "y": 120,
               "wires": [
                   [
                       "26a47523.0684aa"
                   ]
               ]
           },
           {
               "id": "de35828f.22ea",
               "type": "serial-port",
               "z": "",
               "serialport": "/dev/ttyAMA0",
               "serialbaud": "600",
               "databits": "8",
               "parity": "even",
               "stopbits": "1",
               "waitfor": "0xC9",
               "dtr": "none",
               "rts": "none",
               "cts": "none",
               "dsr": "none",
               "newline": "10",
               "bin": "bin",
               "out": "count",
               "addchar": "",
               "responsetimeout": "1000"
           }
        ]
        

        1 Reply Last reply Reply Quote 0
        • P
          peterfido last edited by

          Kann sein, dass in meinem Beispiel oben das Minus nicht korrekt angezeigt wird. Mangels Waage kann ich allerdings nicht testen.

          1 Reply Last reply Reply Quote 0
          • M
            mike1976 last edited by

            Hallo,

            danke für deine Infos, bin ende nächster woche wieder bei der waage dann kann ich es testen.

            Habe mir das mit der uart fast gedacht.
            Habe nun einen usb-rs232 adapter bestellt und werde diesen verwenden. USB 2.0 zu RS232 (FT232RL)
            Oder kannst du mir einen anderen oder besseren empfehlen?

            https://www.amazon.de/DIGITUS-70156-Typ-Konverter-Verlängerungskabel/dp/B0030IT780?th=1

            Sobald ich getestet habe gebe ich bescheid. vielen dank für dein bemühen.

            lg mike

            P 1 Reply Last reply Reply Quote 0
            • P
              peterfido @mike1976 last edited by

              @mike1976
              Ich würde erstmal herausfinden, welche ( Spannungs-)Pegel da tatsächlich anliegen.
              Von den Werten her scheint dein Log oben zu passen. Möglich, dass also alles im grünen Bereich ist. Oder die Bauteile tolerieren, was sie bekommen, da der Strom nicht hoch genug ist um was zu "grillen"

              1 Reply Last reply Reply Quote 0
              • M
                mike1976 last edited by

                Hallo,

                danke für deine info.
                Leider bekomme ich vom hersteller keine näheren infos.
                Aber stimmt es das ich die spannugn ja auch an gnd > tx, bzw gnd > rx
                messen kann?

                danke dir

                lg

                1 Reply Last reply Reply Quote 0
                • P
                  peterfido last edited by

                  Hallo,
                  ja, das geht genau so. Einfach messen, welchen Pegel RX und TX zu GND haben.

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  533
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  node-red
                  2
                  7
                  714
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo