Benachrichtigungssystem mit mehreren Endgeräten, um Anrufe zwischen Räumen zu tätigen

TL, DR: Wie implementiert man ein Benachrichtigungssystem mit mehreren Endgeräten, das es ermöglicht, von jedem Endgerät zu jedem anderen Endgerät zu telefonieren? Die Haupteinschränkungen bestehen darin, keine programmierbaren Chips/MCUs (nur Allzweck- und spezialisierte harte Logik) zu verwenden, kabelgebundene Kommunikation anstelle von drahtloser Kommunikation zu verwenden, kein separates Kabel zwischen zwei Terminals zu haben und überall eine einzige Stromquelle anstelle von Batterien zu haben. Es muss keine Sprache oder Text übertragen werden, sondern nur gezielte Benachrichtigungen im Stil „Türklingel zwischen zwei beliebigen Räumen“. Der Empfänger muss wissen, wer die Benachrichtigung gesendet hat.

Das ist meine erste Frage zur Electrical Engineering SE. Ich bin Bastler in der Elektronik. Ich betrachte mich als Anfänger.

Ich möchte in meinem Haus eine Art Benachrichtigungssystem implementieren, um Anrufe zwischen Räumen zu tätigen, entweder indem ich es selbst entwerfe oder indem ich ein vorhandenes Design finde. Grundidee ist, dass es mehrere Endgeräte (im Folgenden „Terminals“ genannt) A, B, C, D, … an unterschiedlichen Orten gibt. Jedes Terminal hat eine separate Taste für jedes andere Terminal (also hat Terminal A zum Beispiel die Tasten „B“, „C“, „D“ usw.), separate LEDs für jedes andere Terminal (daher hat Terminal A LEDs „B “, „C“, „D“ usw.) und eine Klingel (wie eine gewöhnliche elektrische Türklingel). Die Tasten werden verwendet, um Anrufe zu tätigen, und die LEDs zeigen den Anrufer an.

Wie es funktionieren soll

Angenommen, Alice (die sich derzeit in der Nähe von Terminal A befindet) möchte Bob anrufen (der sich derzeit in der Nähe von Terminal B befindet). Dann drückt Alice die Taste „B“ am Endgerät A. Daraufhin leuchtet die mit „A“ gekennzeichnete LED am Endgerät B auf und die Glocke am Endgerät B läutet. Die Terminals C, D usw. bleiben ruhig. Bob hört die Glocke und sieht die LED und geht zu Terminal A, um nachzusehen/zu fragen, was passiert ist.

Weitere Ausarbeitung

Es wird höchstens 16 Terminals und mindestens 5 Terminals geben.

Anstelle mehrerer LEDs kann es an jedem Terminal eine oder zwei Sieben-Segment-Anzeigen geben, um die ID des Anrufers anzuzeigen.

Optional wird es auch die Schaltfläche „alle anderen Endgeräte gleichzeitig anrufen“ geben, zB um B, C, D usw. von A gleichzeitig anzurufen. Dies (sowie andere optionale Funktionen) hängt weitgehend davon ab, ob es die Dinge vereinfacht oder verkompliziert.

Drähte

Alle Terminals werden von einer einzigen Stromversorgung versorgt (anstatt Batterien in jedem Terminal zu haben), daher gehen mindestens zwei Drähte durch alle Terminals (Vcc und GND). Je nach Schaltplan wird möglicherweise ein drittes Stromkabel benötigt. Ferner wird aus mehreren Gründen, einschließlich mangelnder Erfahrung mit Funkfrequenzen, eine drahtbasierte Niederfrequenzkommunikation gegenüber einer drahtlosen Hochfrequenzkommunikation bevorzugt. Bis zu 8 zusätzliche Kabel für die Kommunikation (dh ohne Stromkabel) sollten akzeptabel sein, wobei alle Kabel an einem einzigen Punkt zusammenlaufen (am Ort der Stromquelle). Alternativ könnte es ein zusätzliches Vermittlungsgerät geben, das mit jedem Endgerät verbunden ist.

Gleichzeitige Anrufe

Es kann zu Problemen kommen, wenn zwei Anrufe gleichzeitig von verschiedenen Endgeräten getätigt werden. Dies kann abgemildert werden, indem die Anschlüsse B, C, D gesperrt werden, sobald der Anschluss A aktiviert ist, und sie wieder entriegelt werden, sobald A deaktiviert ist. Auf jeden Fall kann dieses Problem vollständig ignoriert werden, vorausgesetzt, dass keine Kombination gleichzeitiger Anrufe die Schaltung zerstört.

Design

Ich habe eine (noch grobe, noch keine schematische) Vorstellung davon, wie das obige Projekt mit Allzweck-Hartlogik (Gatter, Zähler, Encoder, Decoder) durchgeführt werden kann. Jedes Endgerät könnte zwei Bursts von Impulsen senden, wobei ein Burst den Anrufer kodiert, ein anderer Burst den Empfänger kodiert. Ein oder zwei Kommunikationskabel könnten ausreichen. Dies scheint nicht trivial, aber machbar zu sein. Vielleicht muss ich jemanden finden, der meine Schaltpläne überprüft, bevor ich versuche, sie zu implementieren.

Ich habe jedoch das starke Gefühl, dass dieses oder ein ähnliches Problem bereits gelöst und in einigen spezialisierten integrierten Schaltkreisen oder elektronischen Modulen implementiert ist, die mit minimalen/moderaten Ergänzungen einfach eingesteckt werden können. Ich bin mir jedoch nicht sicher, wie ich nach einer solchen Lösung suchen soll und ob die Kosten für mich tragbar sind. Meine Versuche mit „Multidirektionale Türklingel“, „Heimbenachrichtigungssystem“ und mehreren anderen Abfragen ergaben nichts Relevantes.

Eventuell könnten Fernbedienungen in Endgeräte (Rufteil) umfunktioniert werden, mit unterschiedlichen Befehlen für verschiedene Empfänger und unterschiedlichen Protokollen für verschiedene Anrufer, aber dann muss entweder jeder Empfänger alle Anrufer verstehen können (mehrere Empfangsmodule in jedem Endgerät?), oder da müssen mindestens 20 verschiedene Befehle von der Fernbedienung unterstützt werden (um 5 Terminals abzudecken) bis 240 verschiedene unterstützte Befehle (um 16 Terminals abzudecken). Ich habe die Idee mit Fernbedienungen jedoch nicht näher untersucht.

Fragen)

Können Sie auf eine bestehende Lösung mit mehreren „Peer“-Endgeräten verweisen, die hauptsächlich für einfache Nicht-Sprachbenachrichtigungen gedacht ist? Oder irgendwelche Ideen, wie dies umgesetzt werden könnte? Oder zu bestehenden Orten im Web, wo dasselbe unter anderem Namen / in anderem Rahmen diskutiert wird? Gibt es bereits Lösungen für andere Probleme (z. B. Fernbedienungen), die für diesen Zweck angepasst werden könnten?

Bitte beachten Sie, dass ich keine Antworten akzeptieren werde, die programmierbare Chips / Mikrocontroller / alles, was programmiert werden muss, vorschlagen, auch wenn dies den Rest der Schaltung wirklich vereinfachen würde. (Ich sage nicht, dass solche Antworten völlig nutzlos sind, da andere Leute mit anderen Fähigkeiten möglicherweise das gleiche Problem haben! Außerdem sind ein paar Jumper oder Mikroschalter in jedem Endgerät, um Terminals eindeutige IDs zuzuweisen, akzeptabel, obwohl dies möglich ist als „Programmierung“ angesehen werden.)

Wenn nichts anderes, werde ich versuchen, Tore und Zähler zu verwenden. Auch wenn sich das Ganze für mich zum jetzigen Zeitpunkt als undurchführbar erweisen sollte, bin ich dennoch froh zu wissen, welche Möglichkeiten es gibt.

Jeder Beitrag ist willkommen!

Das ist schwer zu lesen.
@MarkoBuršič: Warum? Zu lang, schlechte Formatierung, schlechte Sprache, falsche Terminologie? Englisch ist nicht meine Muttersprache.
Zu lang. Wir kümmern uns nicht wirklich um Ihren Hintergrund, frühere Projekte und wie sie gebaut wurden. Weder Ihre Marktforschung. Geben Sie die Zusammenfassung Ihrer Frage vorzugsweise am Anfang an und erweitern Sie sie dann, wenn dies wirklich erforderlich ist. Und stellen Sie sicher, dass die Frage auch beantwortet werden kann, ohne mehr als eine halbe Seite Text zu schreiben. Und wir empfehlen keine Produkte.
Ich versuche nur, den Text zu kürzen. Meine „Marktforschung“ bestand eigentlich darin, meine Familie zu fragen, was sie davon hält. Trotzdem entfernt.

Antworten (1)

Interessant. Natürlich würde jeder vernünftige Mensch dafür einen Mikrocontroller wie Arduino verwenden . Aber wenn Sie wirklich eine "harte Logik" -Lösung wollen, würde ich vorschlagen, sie auf einem eigenständigen UART-Chip zu basieren - vorausgesetzt, sie sind noch verfügbar. Hier ist ein funktionales Blockdiagramm, das das Konzept erklärt.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

U12 ist ein DIP-Schalter, der verwendet wird, um das jeweilige Endgerät zu identifizieren (Quellen-ID).

U2 ist ein "Keypad Encoder"-Chip, der die Tastennummer (Ziel-ID) zusammen mit einem "gültigen" Strobe ausgibt, der anzeigt, dass eine Taste gedrückt wird. Sie haben nie angegeben, wie lange die Anzeige bestehen bleiben soll, also gehe ich davon aus, dass es nur so lange ist, wie die Taste gedrückt wird. Daher sendet jeder Tastendruck zwei Nachrichten, eine beim Drücken der Taste und eine beim Drücken der Taste. Die Key-Up-Nachricht sendet die eigene ID des Terminals als Ziel-ID, die die Empfänger als "Anzeige ausschalten" interpretieren werden.

U3 ist ein Multiplexer, der den Tastenfeldausgang für Tastendruck und die eigene ID des Terminals für Tastendruck auswählt, und U4 wandelt die Flanken des "gültigen" Signals in Strobes für den UART-Sender um.

Der UART-Sender serialisiert die beiden 4-Bit-Codes als 8-Bit-Byte, die dann aus den Empfängern aller Endgeräte kommen. Wenn die Ziel-ID mit der eigenen ID des Terminals übereinstimmt (bestimmt durch U7), dann wird die Anzeige freigegeben und zeigt die Quellen-ID aus der Nachricht. Wenn die Ziel-ID mit der Quellen-ID in der Nachricht übereinstimmt (bestimmt durch U11), dann wird die Anzeige ausgeschaltet. Das Flip-Flop U10 merkt sich den Zustand der Anzeige und U8 fungiert als Decoder für die Anzeige (U9), die entweder einzelne LEDs oder 7-Segment-Anzeigen sein können.

Das mit „Bus oder Hub“ gekennzeichnete Kästchen stellt die Verbindungen zwischen allen Endgeräten dar. Sie könnten RS-232 als Signalisierungsschnittstelle verwenden. In diesem Fall benötigen Sie einen Hub, der alle Sendersignale zusammenfasst und an alle Empfänger weiterleitet. Oder Sie verwenden RS-485 als Signalisierungsschnittstelle, wodurch Sie einfach alle Terminals zusammen mit der Stromverteilung per Bus verbinden können.

Das Hinzufügen des Merkmals "Alle anrufen" würde am einfachsten hinzugefügt, indem diesem Merkmal eine der Ziel-IDs (z. B. 0xF) zugeordnet wird. Sie könnten nur 15 Terminals haben, aber es wäre nur ein wenig zusätzliche Logik auf dem Empfänger erforderlich, um zu prüfen, ob diese spezifische ID eingeht, um die Anzeige zu aktivieren.

Jede der in diesem Diagramm gezeigten Boxen ist als einzelner Chip verfügbar (SSI/MSI TTL plus UART).

Wird Zeit brauchen, um Ihre Antwort zu verdauen. Es scheint, dass es nicht schwer ist, die Logik so zu ändern, dass die Anzeige mehrere Sekunden lang bestehen bleibt, und dann ist es so oder so in Ordnung. Danke für's schreiben.
Ich sehe, wie man Schaltpläne von allem links vom UART (U5 und U6) erstellt, habe aber Probleme mit dem Rest. Soweit ich weiß, hat U5 8 Datenpins, 1 Strobe-Pin, Pins, die zum Bus gehen, und vielleicht Pins zum Einstellen von Parametern. U6 hat Pin(s) vom Bus, 8 Datenpins und Pins zum Einstellen von Parametern. Ich habe ein HD-6402-Datenblatt gefunden, das nur die Schnittstelle mit RS-232 (Hub erforderlich) zeigt und in lokalen Geschäften (sowie anderen eigenständigen UARTs) nicht verfügbar zu sein scheint. Habe auch keine realen Beispielschaltpläne mit eigenständigen UARTs gefunden. Vielleicht werfe ich UART einfach weg und verwende mehr Drähte, um parallel zu übertragen ...
Das würde viele Drähte erfordern: 9 zum Senden und 9 zum Empfangen (8 Daten + Strobe). Es könnte möglich sein, den UART durch einige einfache Schieberegister zu ersetzen, wenn ein gemeinsamer Takt an alle Terminals verteilt wird. Ich werde es mir überlegen.
Danke; Ich interessiere mich für einen möglichen Ersatz für UART und werde auf mögliche Updates warten. Wenn ich nichts verpasse, kann man über dieselben 9 Adern telefonieren und empfangen. Beim Anruf werden zwei 4-Bit-IDs und ein "gültig"-Signal gesendet. Auf der Empfangsseite wird das "gültige" Signal mit dem Ausgang von U7 UND-verknüpft, um die Anzeige und die Glocke zu aktivieren. Zwei gleichzeitige Anrufe (obwohl unwahrscheinlich) führen zu einem falschen Anruf. Außerdem ist es möglich, nur 8 Drähte zu verwenden, da mindestens einer der 8 Drähte während des Anrufs garantiert auf hohem Pegel ist (außer Anrufer = Empfänger = 0), was als "gültiges" Signal interpretiert werden kann.