Langstrecken-Arduino-Sensornetzwerk - 1Wire-Protokoll oder RS422?

Ich habe einige Sensoren, von denen ich jeweils - eine Spannung lesen - in der Lage sein muss, sie einzuschalten. (Sie werden mit einer 220-V-Wechselstromversorgung betrieben).

Die zurückzulegende Entfernung beträgt etwa 40 Meter.

Ich möchte nicht zu viele Drähte verwenden, um dies zu erreichen.

Folgende Lösungen habe ich in Betracht gezogen: - 1-Wire-Protokoll - es ist ziemlich einfach, aber einige Leute haben einige Probleme gemeldet;

  • rs422, funktioniert gut über große Entfernungen, aber es könnte eine teure Lösung sein.

Falls ich mich für das 1-Wire-Protokoll entschieden habe, wie würde ich meine Sensoren an eine 1-Wire-Schnittstelle anschließen?

Wenn RS422 nicht zu kompliziert und umfangreich ist, würde ich mich für diese Option entscheiden, da ich in Betracht ziehen könnte, das Netzwerk in Zukunft auf etwa 200-250 Meter zu erweitern.

Wie würde ich meine Sensoren an eine RS422-Schnittstelle anschließen? Wie würde ich meinen Arduino dazu bringen, mit RS22 zu sprechen? Haben Sie RS422-Chips getestet? Ich habe einige davon online gesehen, bin mir aber nicht sicher, welche ich wählen soll.

Wäre es zu kompliziert, ein RS22-Kabel selbst herzustellen? Ich habe bei ebay geschaut und nur Drähte gefunden, die nicht lang genug und zu ausladend sind.

Wie teuer ist „zu“ teuer?
Ich würde RS485 statt RS422 oder One-Wire wählen. Sie können jedes zweiadrige abgeschirmte Kabel verwenden, Sie brauchen nichts Besonderes. Die Schnittstelle zu RS485 erfolgt normalerweise über UART (MAX485-Chip oder ähnliches). Halten Sie es der Einfachheit halber halbduplex. Haben Sie eine kleine MCU mit jedem Sensor, um ihn mit dem Netzwerk zu verbinden (ATTiny, PIC16 usw.).
Ich kann 1-Draht für 40m Entfernung nicht empfehlen. 1-Wire war für die billige Kurzstreckenkommunikation gedacht. Trotzdem war ich überrascht, diesen Anwendungshinweis von Maxim zu finden: Richtlinien für zuverlässige lange 1-Wire-Netzwerke .
@Majenko-notGoogle Was sind die Vorteile von RS485 gegenüber RS422?
@geraldCelente Siehe meine Antwort.
@IgnacioVazquez-Abrams Über zwanzig Dollar für ein 40-Meter-Kabel.

Antworten (1)

Ich persönlich würde mich weder für RS422 noch für 1-Wire entscheiden.

RS422 ist wirklich eine Punkt-zu-Punkt-Verbindung, wie RS232 (und wird normalerweise verwendet, um RS232 zu erweitern), und 1-Draht ist wirklich nur für lokale Verbindungen innerhalb einer Leiterplatte.

Stattdessen sollten Sie RS485 verwenden.

RS485 ist wie RS422 (RS232 mit differentieller Signalisierung), außer dass es als Punkt-zu-Mehrpunkt oder vollständig Peer-to-Peer ausgelegt ist.

Die Kommunikation erfolgt normalerweise halbduplex (wenn auch nicht immer, aber es ist am einfachsten, sie halbduplex zu halten), und Sie würden normalerweise einen MAX485-Chip (oder einen ähnlichen) Chip verwenden, um die UART-Verbindung eines Mikrocontrollers in RS485 umzuwandeln. Ein einzelner GPIO-Pin wird verwendet, um in den Sendemodus zu wechseln, wenn Sie Daten über das Netzwerk senden möchten, und ansonsten befindet er sich im konstanten Empfangsmodus und wartet auf das Eintreffen von Daten.

Sie benötigen für jeden Sensor einen kleinen Mikrocontroller, um ihn mit dem Bus zu verbinden - etwas Einfaches wie einen ATTiny oder einen PIC16 - vorzugsweise etwas mit einem Hardware-UART und natürlich alle Einrichtungen, die Sie für die Kommunikation mit Ihrem Sensor benötigen.

Sie würden dann ein Protokoll schreiben (oder ein vorhandenes verwenden), wodurch der Arduino eine Nachricht mit einer "Adress" -Kennung zusammen mit einem Befehl auf den Bus sendet und der mit der entsprechenden Adresse programmierte Sensor auf diesen Befehl reagiert. möglicherweise dann das Zurücksenden von Daten an das Arduino (ein typisches "Call-Response" -Protokoll).

Für die Verkabelung benötigen Sie nichts Besonderes. Ein einfaches zweiadriges abgeschirmtes serielles Kabel ist in Ordnung, obwohl dies als übertrieben angesehen werden kann - wenn es in einer Umgebung nicht zu laut ist, würde jedes zweiadrige Kabel ausreichen. Das Beste ist natürlich Twisted Pair, und das Beste von absoluter Spitzenqualität ist geschirmtes Twisted Pair. Eine gute Wahl ist ein CAT5-Ethernet-Kabel. Es ist billig, wird in 305-m-Rollen geliefert und hat 4 verdrillte Paare. Sie benötigen natürlich nur eines dieser Paare, sodass die anderen drei für andere Dinge verwendet werden können - zum Beispiel zum Tragen von Strom.

Wenn Sie kein Twisted Pair verwenden (empfohlen) werden, warum sollten Sie sich dann mit der differenziellen Signalisierung beschäftigen?
Stimme @markt zu - Twisted Pair ist besser als abgeschirmt. Außerdem verwenden FWIW, RS422 und RS485 im Wesentlichen dieselbe Hardware (MAX485 und Familie), nur physisch anders verdrahtet.
Ganz richtig, ich hatte TP vergessen.