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




Wichtige Punkte oder worum es in diesem Artikel geht


Da die Interessen der Menschen unterschiedlich sind und die Menschen wenig Zeit haben, dann kurz über den Inhalt des Artikels.


Dieser Artikel gibt einen Überblick über das Controller-Projekt mit einem Mindestpreis und der Möglichkeit der visuellen Programmierung über einen WEB-Browser.


Da dies ein Übersichtsartikel ist, der zeigen soll, "was Sie aus einem Penny-Controller herausholen können", sollten Sie nicht nach tiefen Wahrheiten und detaillierten Algorithmen suchen.


Die Motivation, Ideen und Ergebnisse des Aufbaus eines Controllers auf Basis des ESP8266 WiFI-Chips werden berücksichtigt.


Warnung


Ich wollte diesen Artikel nicht schreiben. Ich bin überhaupt kein Fan von Artikeln. Es ist notwendig zu denken und darüber hinaus - viel. Überlegen, wie man schreibt, damit die Anzahl der Missverständnisse minimiert wird. Zu überlegen, wie man nicht bis zum Äußersten geht. Und vieles mehr zum Nachdenken.
Aber Freunde sagten, da meine Bemühungen auf dem Gebiet des Internet der Dinge und anderer kleiner Automatisierungen für sie interessant sind, können sie für andere für die breite Öffentlichkeit interessant sein. Wohin geht das Publikum, das daran interessiert ist? Natürlich auf einem habr. Und hier bin ich. Alter Leser und neuer Schriftsteller.

Für Fehler, Ungenauigkeiten, Tippfehler, nicht moderne Präsentationsstile usw., die dem Leser möglicherweise nicht gefallen, übernehme ich keine Verantwortung. Lesen Sie auf eigenes Risiko.

Ich warne auch sofort, dass ich nicht erklären werde, was MQTT, WiFi und UDP Multicast und andere Dinge, die nicht direkt mit dem Thema zusammenhängen. Einige Links befinden sich am Ende des Artikels.


Die Geburt einer Idee oder einiger Texte


Nun, das Leben ist keine einfache Sache, und Seine Majestät Chance spielt dabei eine wichtige Rolle. Daher möchte ich mitteilen, wie zufällige Ereignisse, multipliziert mit regelmäßiger Faulheit, zu einem ziemlich interessanten Controller-Design auf der Basis von ESP8266 geführt haben.


Alles begann eher beiläufig: Ich wollte ein Kontrollsystem für das Wasserversorgungssystem bauen und die Gartenbeete auf dem Land bewässern.


Aber ungefähr, da ich mich nur im Urlaub, vor dem es noch mehr als sechs Monate dauerte, voll und ganz mit Rohrkranen beschäftigen kann, beschränkte sich alles auf die Diskussion bei der Arbeit mit Kollegen und Freunden-Kameraden in einem informellen Rahmen.


Das Thema „Kleine Automatisierung“ oder, wie es in „Diese Ihre Schulhacker-Hacker-Schulkinder“ üblich ist - das Thema IoT - das Internet der Dinge - war für mich schon lange interessant. Lange vor dem Aufkommen des Internet als solches weit verbreitet.


Schon in meiner Kindheit wollte ich, dass die Dinge etwas „selbst“ tun. Und es ist wünschenswert, dass ich sie irgendwie aus der Ferne kontrollieren kann. Aber zu dieser Zeit (den 80ern, dem Beginn der 90er des letzten Jahrtausends) war dies schwierig. Das Internet war nirgendwo auf der Welt weit verbreitet, da es nirgendwo Handys, Tablets und sogar LCD-Displays und USB-Sticks gab. Also musste ich mich auf "Lichtschalter am Klatschen" und die einfachsten Funkfernbedienungen beschränken. Aber für diese Zeit und dieses Alter war es schön und interessant.


Aber das ist die Vergangenheit. Nonche im Hof ​​des 21. Jahrhunderts. Und jeder hat ein Smartphone in der Tasche, das Internet ist fast überall dort, wo es notwendig und nicht notwendig ist, und die Datenbank der verfügbaren elektronischen Komponenten ist jetzt so, dass der gewöhnliche Bewohner des Planeten Erde vor 15 Jahren nicht einmal davon geträumt hat.


Nachdem ich mich entschlossen hatte, einen Controller für Wasserangelegenheiten im Land zu formen, wandte ich mich dem ESP8266-Chip zu.
Zunächst einmal ist dieser Chip billig. Und wenn ein Controller nicht ausreicht, können Sie zwei, drei oder fünf setzen. Zweitens hat es WiFi an Bord. Das heißt, Sie können beobachten, was über das Internet passiert, und sogar den Prozess von jedem Smartphone aus steuern. Natürlich benötigen Sie einen Zugangspunkt mit Internetzugang, aber dies ist kein Problem. Wie auch immer, es ist fast überall oder wird es auch sein, einschließlich - und in meinem Landhaus.


Nachdem ich in die wunderbare Welt der Projekte für ESP8266 eingetaucht war, stellte ich überrascht fest, dass Projekte auf diesem Chip trotz der unglaublichen Fähigkeiten dieses Chips mit seltenen Ausnahmen in zwei Typen unterteilt sind: Dies sind äußerst primitive Programme wie „Klicken Sie auf die Rollen eines Smartphones und sehen Sie sich den Status an Temperatursensor über das Internet “; oder gute und solide Interpreten von JavaScript oder Lua, aber leider verbrauchen sie fast den gesamten Speicher und erlauben Ihnen nicht, etwas Ernstes zu tun.


Meine erste Idee war so einfach wie verdammt - ein einfaches Pumpensteuerungsprogramm zu schreiben, das auf dem Zustand der Sensoren basiert, und das ist alles. Aber wie ein zerfetztes Kalach, wenn es darum geht, verschiedene Systeme einzuführen, wurde mir klar, dass ich definitiv nicht alle Biegungen des Algorithmus vorhersehen kann, die ich während des Aufbaus des Wasserversorgungs- und Bewässerungssystems begradigen möchte oder muss.


D das Programm auf dem Land in einer dunklen Scheune auszuarbeiten - ist nicht sehr praktisch. Und du musst.
Was ist der Ausweg? Das erste, was mir in den Sinn kam, war natürlich, den Algorithmus anpassbar zu machen. Einer meiner Kollegen gab viele Ratschläge - was und wie zu konfigurieren ist. Damit hackte er meine erste Idee im Keim ab. Dank ihm. Wenn er nicht vor meinen Augen die Anzahl der Parameter bereitgestellt hätte, die ich konfigurieren müsste, würde ich diese Option wahrscheinlich nicht ablehnen: Erstellen Sie eine Seite mit den Algorithmuseinstellungen.


Aber ein erschreckendes Bild der Anzahl der Abstimmungsparameter und sogar der gegenseitigen Beeinflussung hat mich ernüchtert. Wieder einmal wurde mir klar, dass nichts vorhersehbar war ...


Ich werde sofort reservieren: Ich bin faul. Sehr faul! Ich bin ehrlich gesagt faul, das Programm jedes Mal neu zu schreiben. Daher stellte sich die Aufgabe: Wie kann ein Algorithmus schnell und einfach eingestellt werden, vorzugsweise ohne Programmierung? Darüber hinaus wird dieser Algorithmus ziemlich kompliziert sein; wird viele Parameter haben; Es wird für meinen Fall individuell und für andere ungeeignet sein. Und ich möchte das Gerät wirklich mehr oder weniger universell machen ...


Da es noch ungefähr sechs Monate vor den Ferien und allen Rohrleitungen war, beschloss ich, mir Zeit zu nehmen, um zu überlegen: Wie kann ich es bequem und schön machen? Wie programmiere ich ohne Programmierung? Wie kann man auf eine Billion Parameter verzichten, die beim Einrichten geändert werden können?


Wie immer war schon alles vor uns ausgedacht: Mir wurde klar, dass ich einen Algorithmus in Form von Aktionsquadraten zeichnen und diese mit Kommunikationsleitungen verbinden möchte, die zeigen, woher und woher die Daten fliegen. Nun, ich möchte in der Lage sein, einige seiner einzelnen Parameter zu konfigurieren.


Das Einstellen des Algorithmus und das Zeichnen mit Quadraten ist nicht neu. Solche Systeme waren in den 80er Jahren; Es gibt ein sehr beliebtes NodeRed-System, das allen bekannt ist, die bereits in die Welt der kleinen Automatisierung / des Internet der Dinge eingetreten sind.


Das ist aber Pech: Solche Systeme sind für „große PCs“ ausgelegt. Im schlimmsten Fall auf dem Raspberry PI. Aber überhaupt nicht auf dem ESP8266, der nur wenige zehn Kilobyte RAM hat und kein Betriebssystem hat!


Wie soll ich sein? Und es gibt nur zwei Möglichkeiten: Ein Programm auf einen "großen PC" oder Laptop zu schreiben und zu zeichnen und es dann in irgendeiner Form auf ESP8266 zu übertragen oder zu versuchen, das Unerwünschte in den ESP8266-Controller selbst zu "stopfen".


Daher war das maximale Programm, das ich hatte, folgendes: Um Ihren Controller zu programmieren, sollte nichts anderes als ein Laptop mit einem WEB-Browser erforderlich sein! Das heißt, ein Laptop mit einem WEB-Browser und meinem Controller - dies sollte ausreichen, um Steuerungsprogramme vollständig zu konfigurieren und zu schreiben und zu zeichnen.


Und wie sich herausstellte, war es durchaus möglich, dies zu realisieren!
Ich werde Sie nicht mit allen Details der Projektentwicklung langweilen. Ich kann nur sagen, dass es auf der Grundlage der Wörter, die mir während des Entwicklungsprozesses in den Sinn kamen, möglich wäre, ein separates „ Wörterbuch der Obszönität elektronischer Arbeitnehmer “ zusammenzustellen. Aber alles ist zurück. Genauer gesagt, nicht alle, aber die erste, schwierigste Phase, wenn es nicht klar ist - wird Ihre Idee sein zu leben oder ist es nur Unsinn des Wallachs in einer Mondnacht.


Ich werde das Ergebnis dessen teilen, was herauskam und als "ShIoTiny Controller" bezeichnet wird .


Und was ist passiert?


Die Hardware des ShIoTiny-Controllers ist Standard und einfach: drei Eingänge für Trockenkontaktsensoren (Tasten, Reedschalter, sie sind auch Wasserstandssensoren im Tank), ein ADC-Eingang, ein Eingang zum Anschließen eines Temperatur- und Feuchtigkeitssensors wie DHT22 oder ähnlichem . Und schließlich drei Ausgänge in Form von Schaltrelais für 220V, 1 Ampere. Auf dem Relais steht 10A, aber ich bin ein Realist und werde sie nicht durch die 10A-Verstärkerplatine lassen. Und um die Starter der Pumpen und 1 Ampere zu steuern, reicht es aus. All dies wird von einer Stromquelle mit einer Spannung von 5 bis 9 Volt gespeist.


Natürlich habe ich den Temperatursensor genau wie „Schaub was“ hinzugefügt, aber beim ADC gab es Hoffnungen, die Spannung des Netzes zu messen. Ist es nicht genug


Natürlich sind alle Eingänge außer dem Eingang zum Anschließen von DHT22 vor Widerständen und Dioden geschützt: Ich hatte keine Lust, ESP8266 zu brennen, und Dioden und Widerstände kosten nur wenige Cent.


Ein Foto des fertigen Produkts ist am Anfang des Artikels zu sehen. Ich habe mehrere dieser Bretter bestellt - was ist, wenn ich sie verbrenne oder die Wege und Beine abschneiden muss?
Aber zum Glück - musste nicht.


Das Produkt ist natürlich Schönheit und Größe. Der Einfachheit halber ist das Folgende ein Zeichnungsdiagramm der Verbindung von Sensoren und Aktuatoren zu den Platinensimulatoren.





Anstelle von Füllstandsensoren - Tasten Eingang1..3 anstelle von Startern - LEDs, die an das Relais Relais1..3 angeschlossen sind. Nun, ein variabler Widerstand am ADC zur Simulation der Eingangsspannung.
Wenn das Relais ausgeschaltet ist, leuchtet die rote LED. Und wenn eingeschaltet - grün. Also habe ich auf dem Tisch debuggt.


Darüber hinaus befinden sich links auf der Platine ein Stromanschluss und rechts zwei Servicetasten: Reset und AP. Nun, ein DIP-Schalter, der das Gerät in den Programmiermodus versetzt. Der Programmieranschluss ESP8266 über USB-UART-Adapter ist ebenfalls erhältlich.


Einige Erklärungen zu den Schaltflächen. Was ist Zurücksetzen - und so ist es klar. Die AP- Taste wird jedoch benötigt, um ShIoTiny in den Open Access Point-Modus (Konfigurationsmodus oder Konfigurationsmodus) zu versetzen. Warum wird das benötigt? Nun, Sie haben beispielsweise die Netzwerkeinstellungen durcheinander gebracht und möchten sie ändern. Drücken Sie die AP-Taste einige Sekunden lang (bis die schöne blaue LED aufleuchtet). Nehmen Sie dann Ihr Smartphone oder Ihren Laptop, schalten Sie WLAN ein und sehen Sie dort einen offenen Zugangspunkt mit dem Namen esp_8266_xxxx und stellen Sie eine Verbindung her. Gehen Sie dann zum Browser Ihres Smartphones oder Laptops und geben Sie die Adressleiste ein: 192.168.4.1. Wenn alles in Ordnung ist, werden Sie zur ShIoTiny-Controller-Seite weitergeleitet und können diese auf neue Weise konfigurieren.


Wie wir sehen, ist Hardware nichts Kompliziertes. Daher über den Software-Teil .


In allen Implementierungssprüngen werde ich aber dann beschreiben. Eines Tages. Und heute werde ich die Software nur "außerhalb" betrachten, dh aus der Sicht des Benutzers - ich selbst oder ein anderer, der das Risiko eingegangen ist, mein Handwerk zu benutzen (es gibt solche Stuntmen).


Aus Sicht des Benutzers ist das Gerät ein HTTP-Server, auf den über WLAN zugegriffen werden kann. Alle Einstellungen, Programmierungen usw. werden mit einem WEB-Browser vorgenommen.


Und so gingen wir zur Controller-Seite. Was sehen wir? Und wir sehen die Registerkarte „Steuerung und Status“, die den aktuellen Status der verwendeten Geräte anzeigt: Eingänge, Ausgänge, ADC, DHT22. Zusätzlich werden die Verbindungsparameter zum Zugangspunkt angezeigt (wenn wir im Modus einer WiFi-Station arbeiten); Zugangspunkteinstellungen (wenn wir im WiFi-Zugangspunktmodus arbeiten) oder beides. Außerdem werden die Verbindungsparameter mit dem MQTT-Broker angezeigt, wenn das MQTT-Protokoll verwendet wird.





Zu sehen, nichts Besonderes und Interessantes. Es gibt nichts zu drücken! Obwohl ... Es gibt zwei weitere Registerkarten! Netzwerkeinstellungen konfigurieren Netzwerk- und Editor-Diagrammschemata ElDraw .


Sie haben es erraten, Networking baut ein Netzwerk auf, aber nicht nur das. Es hat ein paar weitere interessante Parameter. Klicken Sie auf der Registerkarte " Netzwerk " auf "Stöbern" und sehen Sie dort ungefähr, was in der Abbildung dargestellt ist.
Konfigurieren des Zugangspunktnamens und des Kennworts für jeden der Modi - WiFi-Stationen und WiFi-Zugangspunkte. Alles scheint klar zu sein. Neben dem Zweck der Schaltfläche "WLAN scannen" ist sie vollständig transparent.
Die Dropdown-Liste "ShIoTiny-Modus" muss jedoch präzisiert werden . Tatsache ist, dass ich mich nicht entscheiden konnte, in welchem ​​Modus ich bequemer arbeiten würde. Und daher für 5 Betriebsarten des Gerätes vorgesehen.





Wir listen diese Betriebsarten kurz auf.


Konfigurationsmodus - Konfigurationsmodus. Dies ist der Open Access Point-Modus mit einer festen Adresse 192.168.4.1 und dem Namen esp_8266_xxxx.


Stationsmodus - Der Modus der WiFi-Station, die mit Ihrem Zugangspunkt verbunden ist.


AP-Modus - geschlossener Zugangspunktmodus. Sie legen den Namen und das Passwort selbst fest.


Der AP + Station-Modus ist die gleichzeitige Einbeziehung des AP-Modus + Station-Modus.


Einzelmodus - Arbeiten ohne Verbindung zum Netzwerk. Ein einsamer Controller mit seinem hohen Anteil ...


In jedem Modus, mit Ausnahme des Konfigurationsmodus , können Sie die WEB-Seite blockieren, indem Sie das Kontrollkästchen "Web im Stationsmodus sperren " aktivieren. Dies ist ein Typ aus Sicherheitsgründen.


Die Einstellungen sind MQTT-offensichtlich: Server, Port, Passwort, offene Verbindung oder SSL . Ich werde hier nicht im Detail darauf eingehen.


Zusätzlich zu allem anderen kann der ShIoTiny-Controller Pakete in einem speziellen Format für Multicast senden und empfangen. Die Einstellungen sind ebenfalls offensichtlich: Gruppenadresse und Port.
Wenn Sie alle Nuancen der Einstellungen beschreiben, erhalten Sie natürlich einen separaten Artikel, der jedoch nicht in meinen Plänen enthalten ist.


Auf der Registerkarte Netzwerk ist also alles mehr oder weniger klar. Kommen wir zum Hauptmerkmal des Controllers - dem ElDraw- Programmeditor.


Wenn Sie auf die Registerkarte ElDraw tippen, sehen Sie Folgendes. Wenn das Gerät keinen geladenen Stromkreis hat, ist das Stromkreisfeld natürlich leer.





Links befindet sich eine Palette von Elementen oder Knoten (Knoten).
Rechts ein Diagrammfeld oder einfach ein „Diagramm“.
Von oben - Schaltflächen zum Laden und Entladen auf die Festplatte und zum Gerät sowie Schaltflächen zum Bearbeiten.


Für diejenigen, die mit Redakteuren gearbeitet haben, ist das Management im Allgemeinen offensichtlich. Wir müssen dem Diagramm ein Element hinzufügen - nehmen Sie es mit der Maus und ziehen Sie es aus der Palette in das Diagramm. Es ist notwendig, das Element oder den Link aus dem Diagramm zu entfernen - stecken Sie mit der Maus darauf oder darauf und drücken Sie die ENTF- Taste. Wir müssen die Elemente verbinden - wir nehmen die Eingabe eines Elements und verbinden sie mit der Ausgabe eines anderen.


Es wird noch skaliert (UMSCHALT + Mausrad). Leider gibt es keine Möglichkeit, Elemente und Elementgruppen zu kopieren. Das stört aber nicht viel.


Außerdem kann aus logischen Gründen der Eingang eines Knotens nur mit einem Ausgang eines anderen Knotens verbunden werden. Die Knotenausgabe erfolgt jedoch mit mehreren Eingaben anderer Knoten. Die Eingaben befinden sich immer links von den Knoten. Die Ausgänge sind immer rechts.


Welche Fähigkeiten haben wir zur Implementierung von Algorithmen?
In Möglichkeiten - ziemlich umfangreich. Die Palette enthält Knoten, die die gesamte Hardware des ShIoTiny- Controllers darstellen: Eingänge, Relais, ADCs, DHT11 / 22.


Es gibt logische und arithmetische Knoten für die Datenverarbeitung.


Damit wir über das Internet mit dem Gerät arbeiten können, gibt es Knoten zum Abonnieren und Veröffentlichen von Parametern für den MQTT-Broker.


Wenn mehrere ShIoTiny-Controller Informationen miteinander austauschen sollen, können Sie die Knoten zum Senden und Empfangen von Parametern mithilfe des UDP-Multicast-Protokolls verwenden.


Zu diesem Rum gibt es Timer-Knoten; Ereignisverwaltungs-Steuerknoten.


Ich werde einige Beispiele geben. Möchten Sie beispielsweise, dass Temperatur- und Feuchtigkeitsdaten alle 30 Minuten auf einem MQTT-Server veröffentlicht werden? Einfacher geht es nicht. Zeichne so.





Nun Meme Button "Upload". Das ist alles!
Wenn Sie die Verbindung mit dem MQTT-Broker auf der Registerkarte Netzwerk korrekt konfiguriert haben, ist das alles!
Jede halbe Stunde wird die Temperatur auf dem Broker unter dem Thema / T und die Luftfeuchtigkeit unter dem Thema / H veröffentlicht. Oder, wenn Sie nach Ihren Themennamen fragen, dann unter ihnen.
Frage: Warum sind 18.000 30 Minuten? Weil alle Zeiten in Zehntelsekunden gemessen werden.


Jetzt möchten Sie dieser Schaltung die Möglichkeit hinzufügen, Relais1-Relais über das Internet und sogar für eine bestimmte Zeit einzuschalten? Kein Problem. Zeichne so.





Gegen fünf klicken Sie auf die Schaltfläche "Hochladen". Das ist alles! Zusätzlich zu der Tatsache, dass jede halbe Stunde Temperatur und Luftfeuchtigkeit auf dem MQTT-Broker veröffentlicht werden, ist es jetzt möglich, Relais 1-Relais einzuschalten. Ja, nicht nur einschalten, sondern genau 10 Minuten lang. Sie können das Relay aktivieren, indem Sie das Thema / r1cmd veröffentlichen, das auf 1 gesetzt ist. Der tatsächliche Status des Relays wird im Thema / r1status veröffentlicht.


Will ich nicht nur das Relais vorab einschalten, sondern auch ausschalten? Ja, wie du sagst. Die folgende Abbildung zeigt, wie es geht!





Ist das Prinzip klar? Sie zeichnen den Algorithmus einfach mit der Maus! Und schreibe ein paar Einstellungen: Zeit, Themenname und alles. Dies ist viel klarer als das Schreiben einer Reihe von Code.


Das Hervorheben von Links in verschiedenen Farben ist übrigens kein „Photoshop“ - dies ist eine der Funktionen des Editors. Sie können die Links nach Belieben einfärben, um nicht verwirrt zu werden.


Aber oh und das ist noch nicht alles! Um den Algorithmus zu debuggen, gibt es eine Schaltfläche "Monitorstart". So seltsam es auch scheinen mag, es schaltet den "Monitor" -Modus ein. In diesem Modus wird der Status aller Ausgänge aller Knoten regelmäßig vom ShIoTiny- Controller gelesen und auf der Schaltung angezeigt. Ungefähr wie in der Abbildung unten.





Das heißt, wir können in „fast Echtzeit“ sehen, was wir am Ein- und Ausgang jedes Knotens haben. Es hilft sehr, wenn etwas nicht klar ist.


Es gibt immer noch viele „Chips und Funktionen“, die ich beschreiben möchte, und mein Gewissen wird es Ihnen nicht erlauben, Ihre Zeit damit in einem Artikel zu verbringen. Die wichtigste realisierte Idee ist bereits klar: ein Minimum an konfigurierbaren Parametern - ein Maximum an Sichtbarkeit.


Fliege in die Salbe


Natürlich möchte ich, dass die Salbe keine Fliege enthält, aber die Welt ist nicht perfekt. Sowohl mein Editor als auch mein Controller sind nicht perfekt. Ich habe zwei Hauptmerkmale gefunden, die ich noch nicht beseitigen konnte.


Erstens treten manchmal Störungen während der Gruppenbewegung von Elementen auf. Dies beeinträchtigt die Arbeit jedoch nicht wesentlich. Eher eine Funktion als ein Fehler.


Und zweitens wird der Stromkreis unter bestimmten Bedingungen neu gestartet, nachdem er über die Schaltfläche „Hochladen“ in das Gerät geladen wurde. Dies beeinträchtigt das Leben nicht, aber die Editorseite muss aktualisiert werden.


Fazit


Ich hoffe, Ihnen gefällt die Idee, Algorithmen zu zeichnen, anstatt Programme zu schreiben. Auf diese Weise führen zufällige Gedanken, Ideen und Argumente manchmal zu tragfähigen Entwicklungen für sich.


Meiner Meinung nach ist das Volumen des Artikels jedoch allen vernünftigen Grenzen entwachsen. Also bin ich für heute fertig.
Ich möchte nur sagen, dass nur noch wenige Wochen bis zum Urlaub verbleiben, und ich bin ziemlich bereit, vom Debuggen des Controllers am Tisch zum Debuggen "vor Ort" überzugehen.
— : shiotiny@yandex.ru


, , , .


, .


,


ShIoTiny


ESP8266
Wifi
MQTT
UDP Multicast


Auf Wunsch der Arbeiter


().


https://github.com/shiotiny/ShIoTinyBin


: https://github.com/shiotiny/ShIoTinyBin/blob/master/bin/esp-07-shiotiny.bin


: https://github.com/shiotiny/ShIoTinyBin/blob/master/doc/esp-07-shiotiny.png


: https://github.com/shiotiny/ShIoTinyBin/blob/master/doc/ShIoT-esp8266-01_obzor.pdf


" " .

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


All Articles