ShIoTiny und die umliegende Welt: Anschließen von Sensoren an Binäreingänge, Kontaktsprung und andere Probleme


Wichtige Punkte oder worum es in diesem Artikel geht


Ein weiterer Artikel über ShIoTiny - eine visuell programmierbare Steuerung, die auf dem ESP8266- Chip basiert. Der Artikel beschreibt die Funktionen zum Anschließen von Sensoren verschiedener Typen an die Binäreingänge des ShIoTiny- Controllers. Darüber hinaus gibt es Antworten auf eine Reihe beliebter Fragen von Lesern früherer Artikel in der Reihe.


Vorherige Serienartikel


ShIoTiny: kleine Automatisierung, das Internet der Dinge oder „sechs Monate vor den Ferien“


ShIoTiny: Knoten, Links und Ereignisse oder Funktionen von Zeichenprogrammen


ShIoTiny: Nassraumlüftung (Beispielprojekt)


Projektseite


Binäre Firmware, Controller-Schaltung und Dokumentation


Intro oder Antworten auf Fragen


Alle meine Artikel zum Thema ShIoTiny , mit Ausnahme des ersten, wurden aus Fragen von Lesern geboren, die riskierten, meine Firmware auszuprobieren .


Tatsache ist, dass ich keine Gelegenheit habe, im Detail und auf einmal zu antworten. Ein Hobby ist ein Hobby und es ist selten, dass jemand so viel Zeit darauf verwendet wie Arbeit, Hausaufgaben oder Kinder. Ich kann es auch nicht. Und die Fragen aus den Briefen können im Wesentlichen auf mehrere reduziert werden. Daher ist es einfacher, einen Artikel zu schreiben, der mehrere Themen im Detail behandelt, als ein Dutzend Briefe zu schreiben.


Viele Fragen betreffen das Anschließen von Sensoren verschiedener Typen und das Arbeiten mit ihnen. Dies ist nicht überraschend: Die Arbeit mit Ausgangsrelais ist recht einfach. Und was sie einfach nicht an die Eingänge anschließen wollen! Es gibt viele Möglichkeiten. Dieser Artikel ist diesem Artikel gewidmet und wird höchstwahrscheinlich dem folgenden Thema gewidmet sein: einem sehr breiten Thema - dem Anschluss von Sensoren.


Bevor ich jedoch zur Biografie der wundervollen Welt der Sensoren übergehe, werde ich mir erlauben, den Habr als Medium zu verwenden, um die beliebtesten Fragen zu beantworten, die sie mir in Briefen stellen.


Antworten auf die beliebtesten Fragen der Leser


Die wahrscheinlich beliebteste Frage lautet: " Warum unterstützen Sie PWM / DS1821 / RTC nicht ... und so weiter?" ". Ich antworte. Denn als ich ShIoTiny entworfen habe, habe ich es nicht gebraucht. PWM kann einfach nirgendwo auf das ShIoTiny- Board gestellt werden. Es sind keine Beine mehr vorhanden, um RTC anzuschließen. Usw. Aber wenn sich das Projekt erfolgreich genug entwickelt, werde ich ein anderes Gerät mit der gleichen Programmierideologie, aber mit einem anderen Satz von Peripheriegeräten herstellen. Natürlich werde ich einige zusätzliche Chips in ShIoTiny unterstützen, da ich beispielsweise erst gestern den Temperatursensor DS1820 / 22 unterstützt habe . Aber du kannst die Unermesslichkeit nicht annehmen und das Unbearbeitete schieben. Der Controller-Speicher ist wie meine Zeit nicht unbegrenzt.


Die nächstbeliebteste Frage lautet: „ Planen Sie die Massenproduktion von ShIoTiny? ". Ich werde im Detail antworten. Im Moment habe ich noch ein paar Boards und wenn jemand interessiert ist - schreibe, ich werde senden. Wenn sie bis dahin bleiben, natürlich. Serienmäßig (dh 50-100 Stück) habe ich im Moment nicht vor, es zu veröffentlichen. Es gibt einfach keine solche Nachfrage, und 50 Boards rauszulassen ist für ein Hobby nicht so einfach und wird mich viel kosten. Es wird viele geben, die eine Bereitschaftsgebühr erhalten möchten - die Situation kann sich ändern. Wenn also nicht alles, dann hängt vieles von der Meinung und dem Wunsch der Gesellschaft ab.


Eine andere Frage wurde sehr oft gestellt: „ Woher bekommt man die Quelle? ". Ich antworte. Nirgendwo sonst. Aus irgendeinem Grund kann ich sie noch nicht veröffentlichen und weiß nicht, ob ich dies in absehbarer Zukunft tun kann.


Und schließlich Fragen zu MQTT- und UDP-Multicast . Ich hoffe, einen separaten Artikel zu diesen Themen zu verfassen, da es viele Funktionen gibt. Etwas über MQTT ist im vorherigen Artikel über das Lüftungssystem, aber alles wird dort allgemein beschrieben. Und doch - lesen Sie die Anweisungen. Es gibt viele Antworten, obwohl dies noch ein Entwurf ist.


Dies schließt mit populären Fragen und befasst sich schließlich mit dem, wofür dieser Artikel geschrieben wurde - der erstaunlichen, schönen, beängstigenden und mysteriösen Welt der Sensoren.


Sensor - was ist das und warum?


Jede Inschrift in einer unbekannten Sprache ist nur ein komplexes Muster für jemanden, der noch nie Buchstaben oder Hieroglyphen gesehen hat. Es gibt keine Bilder für Blinde. Für Gehörlose Musik. Warum bin ich Und die Tatsache, dass Information eine bedingte Anzeige eines Objekts oder Phänomens auf einem materiellen Medium ist. Informationen ohne materielles Medium existieren nicht. Sowie Informationen existieren nicht ohne jemanden, der sie verstehen kann.


Wenn wir also möchten, dass unser ShIoTiny nicht „blind“, „taub“ und „Analphabet“ ist, müssen wir ihn lehren, Informationen über die Welt um ihn herum „ wahrzunehmen “ und „zu verstehen “ und auf dieser Grundlage bestimmte Entscheidungen zu treffen, um das zu verwalten, was benötigt wird uns Ausrüstung.


Informationen über die Welt existieren in einer Vielzahl von Darstellungen und auf verschiedenen Materialträgern: Luftschwingungen - Schall und Photonenfluss - Licht; die Konzentration von Wasserdampf in der Luft und die Temperatur der Erde; das Vorhandensein oder Fehlen von Masse und ihre Größe. Usw. All dies kann uns die für die Entscheidungsfindung notwendigen Informationen liefern.


Unser Mikrocontroller ESP8266 - die Basis von ShIoTiny - versteht jedoch nur zwei Arten von Informationen - digitale Binärsignale von 0 V bis 3 V und analoge Signale im Bereich von 0 V bis 1 V.


Daher benötigen wir „ Übersetzer “ von der Sprache eines bestimmten physikalischen Phänomens oder einer bestimmten physikalischen Größe in die Sprache der elektrischen Signale, die für den Mikrocontroller ESP8266 verständlich sind. Solche " Übersetzer " werden Sensoren genannt .


Genau genommen ist der Sensor in unserem Fall ein technisches Werkzeug, das Informationen über die Umgebung in elektrische Signale umwandelt, die für die elektronischen Komponenten des ShIoTiny- Controllers verständlich sind.


Sensoren sind unterschiedlich. Es gibt Tausende und Dunkelheit. Aber wenn Sie anfangen zu verstehen, dann ist nicht alles so beängstigend. Erstens interessieren uns nur Sensoren, die am Ausgang ein elektrisches Signal erzeugen. Zweitens beschränken wir uns nur auf gängige Sensortypen. Und drittens gibt es in der Praxis nicht so viele Arten von Signalen, die von Sensoren erzeugt werden.


Von Anfang an ist alles klar. Es ist physikalisch unmöglich, einen Sensor direkt an ShIoTiny anzuschließen , der Informationen in mechanischer, hydraulischer oder pneumatischer Form liefert.


Mit "zweitens" ist auch alles klar. Es ist unwahrscheinlich, dass jemand bestimmte schnelle Partikeldetektoren oder pH-Meter in einem geschmolzenen radioaktiven Lithium an ShIoTiny anschließt . Nun, wenn jemand das tut, denke ich, dass seine Qualifikationen viel höher sind als meine und er diesen Artikel höchstwahrscheinlich nicht brauchen wird. Aber die Temperatur von Wasser oder Luft, der Druck von Luft oder Wasser, Feuchtigkeit, Licht, Flüssigkeitsstand oder der Zustand der Tür (offen-geschlossen) - all dies kann sehr gut mit dem ShIoTiny-Regler in Haushaltssteuerungssystemen gemessen werden.


Wir werden uns mit dem "dritten" befassen. Welche elektrischen Signale werden normalerweise von gängigen Sensortypen ausgegeben? Drei Haupttypen von Signalen an den Ausgängen der Sensoren können unterschieden werden:


Binäre Signale Das heißt, Signale, die nur zwei Ebenen haben - logische 0 oder logische 1. Elektrische Parameter sind nicht wichtig - sie können immer in die gewünschten Ebenen umgewandelt werden.


Analoge Signale . Das heißt, Strom oder Spannung variieren je nach gemessenem Parameter in einem bestimmten Wertebereich.


Digitale Signale . Hierbei handelt es sich um Sensoren, die über ein bestimmtes Protokoll mit Mikrocontrollern kommunizieren.


Hier finden Sie möglicherweise alle Optionen, die mit ShIoTiny verbunden werden können . Natürlich gibt es auch Sensoren mit einem Frequenzausgang, einem Phasenausgang und Sensoren mit allen Arten von exotischen Ausgangssignalen. Da es jedoch unmöglich ist , sie direkt mit ShIoTiny zu verbinden , werden wir jetzt nicht darüber sprechen.


Binäreingänge ShIoTiny


Beginnen wir mit dem Einfachsten - mit den ShIoTiny-Binäreingängen . Sie werden durch Input1 , Input2 und Input3 angezeigt . Da diese Eingänge absolut identisch sind, betrachten wir den Eingang Input1 . Alles, was über diesen Eingang gesagt wird, gilt auch für die beiden anderen Binäreingänge - Eingang2 und Eingang3 .


Die binäre ShIoTiny- Eingangsschaltung ist in der Abbildung dargestellt. Machen Sie sofort eine Reservierung, die Schaltung mit einem kleinen Fehler - es war notwendig, einen 10K- Widerstand an einen 1K- Widerstand anzuschließen. Dies hat jedoch keinen Einfluss auf den Betrieb des Geräts und ist wunderbar. Warum gibt es so viele Elemente in einer binären Eingangsschaltung? Eine solche Frage wurde mir auch gestellt. Ich werde versuchen, es zu beantworten.


Bild


Die Binäreingabe in ShIoTiny funktioniert bei „ trockenen “ und „ nassen “ Kontakten. Zusätzlich bietet die Schaltung einen Überspannungsschutz ( dh wenn beispielsweise 5 Volt anstelle von 3 Volt an Eingang 1 gelangen).


Binäreingangsschutz


Der Überspannungsschutz , der an allen Binäreingängen von ShIoTiny durchgeführt wird , schützt den Controller natürlich nicht vor einem Burnout, wenn an seinen Eingang eine Spannung von ~ 220 V angelegt wird. Aber vom Erreichen der Eingänge Input1,2,3 + 5V oder sogar +12V - dieser Schutz spart vollständig.


Ein solcher Schutz funktioniert sehr einfach und kann nicht nur mit dem ESP8266 , sondern auch mit anderen Mikrocontrollern angewendet werden.


Berücksichtigen Sie zwei Schutzoptionen : Wenn Sie eine Spannung von +5 V und -5 V an den Neutralleiter ( Masse ) des Eingangs Eingang1 anlegen .


Wenn die Spannung am Eingang Eingang1 normal ist, sind die Schutzdioden D1 und D2 geschlossen, da sie in die entgegengesetzte Richtung eingeschaltet sind.


Sobald die Spannung an Eingang 1 + 3 V überschreitet (z. B. haben wir Eingang 1 mit + 5 V kurzgeschlossen ), öffnet die D1- Diode und zieht den Eingang des GPIO- Controllers auf + 3 V, wodurch verhindert wird, dass die Spannung am GPIO ESP8266 über 3 V ansteigt. Tatsächlich ist die Spannung etwas höher als 3 V (3,2 V oder 3,3 V) - dies ist jedoch nicht wichtig. Der Eingang des Mikrocontrollers brennt nicht und dies ist wichtig.


Sobald die Spannung am Eingang 1 negativ wird (z. B. haben wir den Eingang auf -5 V kurzgeschlossen ), öffnet die D2- Diode und zieht den Eingang 1 auf Masse 0 V , ohne dass die Spannung am GPIO ESP8266- Eingang unter 0 V fällt. Tatsächlich ist die Spannung etwas niedriger als 0 V (-0,2 V oder -0,3 V ) - aber dies ist wiederum nicht wichtig. Der Mikrocontroller-Eingang brennt nicht.


Der Widerstand 1K ist ein Strombegrenzer, so dass während des Schutzbetriebs kein Kurzschluss auftritt. Die Ströme durch sie sind klein. Wenn wir in unserem Beispiel beispielsweise Eingang 1 + 5 V an den Eingang anlegen, beträgt der Strom durch den 1K- Widerstand etwa 2 mA . Bei einer negativen Spannung von -5 V am Eingangseingang1 beträgt der Strom durch den 1K- Widerstand ca. 5 mA .


Wenn jemand nicht versteht, warum sich die Dioden öffnen und schließen, empfehle ich, das Buch "Electronics Step by Step" von R. A. Svorenya zu lesen . Im Internet ist es zum Beispiel hier . Ich rate besonders Anfängern - die Sprache dieses Buches ist einfach und es gibt viele Beispiele.


Was sind die Kontakte


Also, mit dem Schutz aussortiert. Kommen wir zu einem weiteren grundlegenden Thema - dem Verbinden des ShIoTiny-Binäreingangs mit Binärsensoren .


Wie bereits erwähnt, sind binäre Sensoren Sensoren, deren Ausgang zwei Zustände hat - null und eins. Das ist aber logisch. Physikalisch gibt es zwei Optionen für die binären Sensorausgänge: " Trockenkontakt " und " Nasskontakt ". Überlegen Sie, was es ist und womit es gegessen wird.


Ein „ trockener Kontakt “ ist ein Kontakt, der keine eigene Spannungsquelle hat. Das heißt, nur zwei beliebige Metallleiter, die miteinander kurzgeschlossen und geöffnet werden können. Diese Definition umfasst die Masse der Sensoren - Tasten, Schalter, Schwimmersensoren für den Flüssigkeitsstand, Reedschalter (Magnetfeldsensoren) usw. Bei Stromkreisen werden normalerweise offenetrockene Kontakte “ normalerweise wie in der Abbildung gezeigt angezeigt.


Bild


Normalerweise geöffnet - dies bedeutet offen, wenn kein externer Einfluss vorliegt - die Taste wird nicht gedrückt, der Schalter ist nicht eingeschaltet, der Reed-Schalter hat keinen Magneten in der Nähe ...


Es gibt auch normalerweise geschlossene " trockene Kontakte ". Bei Stromkreisen werden sie normalerweise wie in der Abbildung gezeigt angezeigt.


Bild


Im Gegensatz zu normalerweise offenen, normalerweise geschlossenen " trockenen Kontakten " ohne äußere Einflüsse sind geschlossen.


Sowohl diese als auch andere " trockene Kontakte " können sicher an die Eingänge Input1,2,3 Controller ShIoTiny angeschlossen werden . Sensoren mit einem Trockenkontaktausgang werden wie in der Abbildung gezeigt an die ShIoTiny-Binäreingänge angeschlossen .


Bild


Wenn der „ Trockenkontakt “ von Eingang 1 geschlossen ist, wird eine Spannung von ungefähr Null Volt an den Reglereingang angelegt (genauer gesagt 0,3 Volt aufgrund eines Fehlers in der Schaltung), da der „ Trockenkontakt “ den Reglereingang über einen durch 1K- und 10K- Widerstände gebildeten Teiler gegen Masse schließt. In diesem Fall setzt der Knoten Input1 die Ausgabe des Geräts.


Wenn umgekehrt der Trockenkontakt von Eingang1 offen ist, werden dem Reglereingang ungefähr drei Volt zugeführt, da der Reglereingang über einen 10K- Widerstand auf die Versorgungsspannung gezogen wird. In diesem Fall setzt der Knoten Input1 an seinem Ausgang Null.


All diese detaillierte Beschreibung ist für Neugierige. In der unteren Zeile haben wir Folgendes: Wenn wir einen Sensor mit einem Ausgang vom Typ „ Trockenkontakt “ an Eingang 1 angeschlossen haben , ist der Ausgang des Knotens Eingang1 bei geöffnetem Kontakt Null, und wenn der Kontakt geschlossen ist, ist der Ausgang desselben Knotens Eins. Ähnliches gilt für Eingänge und Knoten Input2 und Input3 .


Gehen wir weiter zu nassen Kontakten .


Ein " nasser Kontakt " ist ein Kontakt, der in mindestens einer seiner Positionen eine eigene Spannungsquelle hat. Zum Beispiel der Ausgang einer anderen Steuerung oder Logikschaltung; Glühbirnen-Stromleitung und so weiter. Hier gibt es möglicherweise viele Optionen. Aber fast alle von ihnen ermöglichen direkt oder mit Hilfe mehrerer Details den Abgleich der Binäreingänge Input1,2,3 mit dem Geräteausgang - „ Wet Contact “.


Beginnen wir mit dem einfachsten - Anpassen des Eingangs Input1 an den Ausgang des Sensors oder Mikroschaltkreistyps " Open Collector " oder " Open Drain ".


In unserem Fall ist diese Schaltung sogar völlig analog zum Anschließen eines Sensors mit einem Trockenkontaktausgang . Nur die Rolle des Kontakts übernimmt der Transistor.


Das Schema einer solchen Verbindung ist in der Abbildung dargestellt. Das Konzept des Begriffs „ offener Kollektor “ oder „ offener Drain “ besteht im Wesentlichen darin, dass der Emitter (oder die Source ) des Ausgangstransistors mit der „ Masse “ (häufig direkt im Mikrokreis) und der Kollektor (oder Drain ) mit dem „Schenkel“ des Mikrokreises und mehr verbunden ist zu nichts.


Wie dieses Schema funktioniert, ist für einen Anfänger verständlich (kein imaginäres Gas, sondern eine Person!). Sobald sich der Transistor im Mikrokreis öffnet, schließt er den Eingang Eingang1 gegen Masse und alles funktioniert analog zu einem „ trockenen “ Kontakt.



Leider haben nicht alle Mikrochips und Sensoren eine so wunderbare Leistung mit offenem Kollektor oder Drain. Viele, wenn nicht die meisten Chips und Sensoren haben einen aktiven Ausgang. Dies bedeutet, dass wenn wir eine logische Einheit am Ausgang haben, der Ausgang auf die Versorgungsspannung „hochgezogen“ wird und wenn der Ausgang eine logische Null ist, der Ausgang auf Masse „hochgezogen“ wird. Die Ausgabe eines solchen Chips ist in der folgenden Abbildung dargestellt. Natürlich ist alles vereinfacht.



Was sollen wir tun, wenn der Mikrokreis oder Sensor, den wir an Eingang 1 anschließen möchten, einen so aktiven Ausgang hat?


Hier gibt es zwei Möglichkeiten, die vom Wert der Versorgungsspannung der Mikroschaltung oder des Vcc- Sensors abhängen.


Wenn die Versorgungsspannung des Chips oder des Vcc- Sensors mit der des ESP8266 übereinstimmt ( dh 3 Volt), können Sie diesen Ausgang einfach mit dem Eingang Input1 verbinden , der in der vorherigen Abbildung dargestellt ist.


Was aber, wenn die Stromversorgung des Sensors oder der Mikroschaltung + 5V oder + 12V beträgt? In unserem Fall können Sie dies ganz einfach tun, indem Sie die Schottky-Diode einschalten, wie in der folgenden Abbildung gezeigt.



Und noch eine Nuance: Alle Schaltkreise mit einem „ nassen “ Kontakt geben uns ein inverses Signal . Das heißt, wenn sich die Logikeinheit am Ausgang des Sensors oder der Mikroschaltung befindet, setzt der Eingang1- Knoten den Ausgang auf Null. Umgekehrt. Dies wird jedoch programmgesteuert korrigiert - setzen Sie einfach den Wechselrichterknoten in die Schaltung ein. All dies ist in der Abbildung dargestellt.


Bild


Das sind in der Tat alle grundlegenden Dinge, die Sie über den Anschluss von Sensoren an die Binäreingänge Input1,2,3 wissen müssen .


Natürlich gibt es theoretisch auch andere Möglichkeiten, aber ich habe die einfachsten und gebräuchlichsten Möglichkeiten aufgezeigt, Sensoren mit Trockenkontaktausgängen und aktiven Niederspannungsausgängen zu verbinden.


Nervenkitzel des Kontakts


Kontakte zittern. Nicht aus Angst vor dem Schöpfer des Geräts, sondern aus der Tatsache, dass sie belastbar sind. Wenn Sie die Taste drücken, können die Kontakte 5-7 Mal geschlossen werden, bevor sie stabil geschlossen werden. Das gleiche Phänomen tritt auf, wenn die Tasten losgelassen werden. Und dieses Phänomen nennt man " Kontaktsprung ".


Kontaktsprung ist der Fluch aller mechanischen Kontaktsensoren - Schalter, Knöpfe, Reedschalter und so weiter. Das unangenehme Geschwätz ist, dass es falsche Klicks oder falsche Freigaben einer Schaltfläche oder eines Kontakts verursacht.


Es gibt verschiedene Möglichkeiten, mit diesem unangenehmen Phänomen umzugehen. Die wahrscheinlich älteste Art zu kämpfen ist der Auslöser . Bei dieser Methode wird eine Taste mit einem Schaltkontakt und einem normalen RS-Trigger verwendet, die gemäß dem in der Abbildung gezeigten Schema eingeschaltet werden.


Bild


Wie funktioniert es Sehr einfach. Ein Trigger hat zwei Zustände. Während die Taste für den Eingang R des Triggers geschlossen ist, wird der Ausgang Q des Triggers auf Null gesetzt.


Wir haben den Knopf gedrückt - bis der mittlere Kontakt des Knopfes den Boden berührt - nichts ändert sich, der Ausgang des Triggers ist Null. Sobald der mittlere Kontakt der Taste den unteren Kontakt derselben Taste berührt und den Eingang des Triggers S gegen Masse geschlossen hat, erscheint einer am Ausgang des Triggers. Und diese Einheit bleibt, während Kontakte "klappern". Um den Triggerausgang wieder auf Null zu stellen, muss der Triggereingang R gegen Masse kurzgeschlossen werden! Dieses Schema funktioniert genauso, wenn Sie die Schaltfläche loslassen.


Können wir auf ShIoTiny eine solche Schaltung machen ? Ja, kein Problem! In der Abbildung ist es gezeigt.


Bild


Aber zwei ihrer drei Eingänge für einen Sensor ausgeben ?! Außerdem haben nicht alle Sensoren einen Schaltkontakt!


Nein, wir werden den anderen genialen Theoretiker V.I. Uljanow!


Die zweite und heute wahrscheinlich häufigste Art, mit Kontaktsprung umzugehen, ist ein Softwarefilter .


Was steckt hinter diesen klugen Worten? Und wieder - nichts kompliziertes. Stellen Sie sich vor, wir werden nicht auf „kurze“ Änderungen im Kontaktstatus reagieren. Wenn wir zum Beispiel Null von der Taste ablesen, dann platzen wir kurz (sagen wir, die Dauer beträgt weniger als 0,3 Sekunden) wir werden hämmern Hör auf zu reagieren. Und nur wenn wir eine Taste für 0,3 Sekunden haben, wird kontinuierlich eine Einheit ausgegeben - wir werden darauf reagieren. Das Gleiche gilt, wenn Sie den Status einer Schaltfläche von eins auf null ändern.


Das heißt, im Wesentlichen werden wir den Übergangsprozess durch Herausfiltern kurzer Impulse bestehen. . RS-!


? ShIoTiny -, .


Bild


Delay0/1 , 0.4 .


, . , , .


Fazit


, — , , .


Im nächsten Artikel untersuchen wir den Anschluss von Sensoren mit einem analogen Ausgangssignal an den ADC- Eingang .


Wie immer Vorschläge, Wünsche, Fragen, Tippfehler usw. per E-Mail: shiotiny@yandex.ru

Source: https://habr.com/ru/post/de466231/


All Articles