
Routine ist ein riesiges Feld für die Automatisierung. Wenn die Aufgabe viel Energie erfordert, Ausdauer erfordert und sich von Zeit zu Zeit wiederholt, ist dies ein sicheres Zeichen dafür, dass es sich lohnt, ein paar Schritte zu unternehmen, um diesen wiederholten Schmerz zu reduzieren. Und Sie können die Implementierung in eine gute Technofanchik verwandeln.
Heute werde ich über die Automatisierung des Warnsystems, Überwachung und Warnungen sprechen. Unter dem Schnitt verpasste ein polnischer Blinker im Jahr 1984 und kein einziges Feuer. Code und Montageanleitung sind enthalten.
Kürzlich bin ich 8 Jahre alt geworden. 8 Jahre, seit ich in 2GIS arbeite. Bei dieser Gelegenheit fragte ein Kamerad: „Wie hältst du dich so lange fest? Es gab keine Lust, etwas Neues auszuprobieren? “
Es entstand. Und entsteht immer noch. Und versuche es trotzdem. Ich versuche mich in neuen Rollen, Teams, Technologien. Warum nicht? Schließlich geht es bei der Arbeit nicht nur und nicht so sehr darum, „um 9:00 Uhr zu kommen, den Task-Manager zu öffnen und die nächste Aufgabe zu übernehmen, um 18:00 Uhr nach Hause zu gehen“ und nicht einmal um „Ah !!! Wir sind wieder DDoS'yat, lass uns request_limit hier drücken und hier werden wir IPs rasseln und hier ... Oh, wie ist es schon 3 Uhr morgens? " Das ist alles falsch. Bei der Arbeit geht es um das Team, Beziehungen, Abendveranstaltungen in der Küche. Immerhin über interessante Aufgaben und ein angenehmes Wohnumfeld. Alles tötet Gleichgültigkeit und Routine. Ich weiß nicht, wie ich mit dem ersten arbeiten soll, ich habe es selbst nicht bemerkt, aber ich werde Ihnen von dem zweiten erzählen.
Heute werden wir abseits der ausgetretenen Pfade gehen: eine Ampel im Büro und eine weitere ; und automatisieren Sie Warnungen, Überwachung und Warnungen. Aber um die nächste Ampel für den Build-Server zu machen - es ging. Wir haben viele Builds, Filialen und Tests, aber es besteht kein Wunsch, das Lager der Verkehrspolizei für ein Dutzend Ampeln auszurauben. Wir werden die "Feuer" visualisieren!
Standardüberwachungssystem

Hier ist ein typischer Bildschirm, der in unserem Büro hängt. In 95% der Fälle zeigt es, wie lebendig unser Projekt ist und was damit passiert. Parallel dazu gibt es in Slack einen Kanal mit Benachrichtigungen über Releases und Bugs.
Um das gesamte Team nicht abzulenken, wird für eine Woche ein Dienstoffizier ernannt, der als Freigabemeister fungiert und sich selbst in Brand setzt, wenn etwas Schreckliches passiert. Seine Aufgabe ist es, herauszufinden, was passiert ist, und es entweder selbst zu reparieren oder jemanden zu finden, der es repariert.
Wir verwenden diesen Monitor auch für tägliche Besprechungen - wir öffnen das Kanban-Board in Jira und los geht's.
Was ist los?
Der Dienststatus bricht keine Arbeitsaufgaben ab. Wenn die für die Brände verantwortliche Person zu weit in die Hallen seines Geistes gewandert ist, ist das Ergebnis möglicherweise weniger betriebsbereit als erforderlich. Dies führte zu der Idee, dass wir für ein vollkommenes Glück eine wichtigere Warnung benötigen als endlose Benachrichtigungen von Slack.
Automatisieren Sie es!
Die Idee wurde stärker, als im Avito ein ausgezeichneter polnischer Vintage-Blinker von 1984 entdeckt wurde. Wenn irgendwo ein Feuer brennt, lass das Ding an! Das Ding wurde sogar in fast funktionierendem Zustand versprochen. 500 Rubel und sie ist in meinem Rucksack. Fügen wir ihr also ein bisschen IoT-Hype und Arduino-Skizzen hinzu.

Aktionsplan
Der Plan war einfach und brillant! Wir nehmen ein 12 Volt Netzteil, fügen einen Sonoff SV - esp8266 mit einem Relais und alle notwendigen Umreifungen und Strom von 12 Volt hinzu. Wir blinken so etwas wie http://wifi-iot.ru/ , wir fangen ein blinkendes Licht ein - Gewinn! Wir haben ein Gerät, das über WLAN mit einer REST-API und weiteren 1000 Funktionen verbunden ist.
Über Ausgaben

Netzkabel mit einem Flachstecker vom Radio einer Großmutter oder vom nächstgelegenen Markt für Radioprodukte - 60 Rubel
Stromversorgung 12V 10W mit Aliexpress oder allen gleichen Radioprodukten - 260 Rubel
Sonoff SV - $ 4.85 + Versand
Blinker Vintage - unbezahlbar (500 Rubel)
Unternehmens-Wi-Fi-Stellungnahme
Für solch mutige Aktionen sagte Unternehmens-WLAN mit EAP-PEAP-Zertifikaten und anderen beängstigenden Worten: "Sie werden nicht bestehen!".

Sie können die Ärmel hochkrempeln, https://github.com/esp8266/Arduino/issues/1032 googeln, ein neues SDK nehmen und alles schnell selbst schreiben. Aber dann verwandelt sich die Technofanch in ein langes Graben und Debaggen. Ich werde diese Option bis zur Veröffentlichung von Version 2.0 verschieben, verbessert und behoben.
Weiche Produkte
Nehmen Sie den geliebten Olartamonov Arduino, eine Streuung dessen, was seit N Jahren in Schubladen verstaubt ist, und sammeln Sie ein Frankenstein-Monster. Ein Lager mit Heimteilen wird ausreichen, um die Lebensfähigkeit von MVP zu überprüfen und nach dem Debuggen der schönen und glänzenden Version 2.0 wegzuwerfen.

Die Lösung ist ungeschickt: Arduino stellt über Ethernet eine Verbindung zum Netzwerk her, empfängt IP über DHCP, wartet auf HTTP-Anforderungen und blinkt „LED“. Jeder am Abend kann eine solche Lösung aus der Arduino IDE für Beispiele zusammenstellen (aber niemals, hören, niemals benutzen! Das ist die Hölle).
Was ist zu verwenden?Für diejenigen, die immer noch weinen, stechen, aber immer noch einen Kaktus essen, empfehle ich, auf mindestens PlatformIO (auf Atom oder VSCode installiert) zu wechseln, aber es ist besser, es überhaupt nicht zu verwenden, sondern einen Kurs mit Vorlesungen über STM32 oder etwas Nützlicheres zu lesen. Und ich, so gebissen wie ein Kind von Arduinisten, werde meine schmutzige Tat beenden :)
Der Code wird auf Github veröffentlicht , es gibt keine Autorisierung, keine verzweigte API und keine schönen HTML-Seiten. Nur MVP, nur Hardcore! Die Verwendung erfolgt auf eigenes Risiko, warnte ich.
Feste Produkte
Wenn die Software geschrieben ist, ist es Zeit, ein blinkendes Licht zu starten. Unten finden Sie ein Diagramm, das das Verständnis des Geräts erleichtern soll.
Warten:

Realität:

Ersetzen Sie Sonoff SV durch:
Arduino UNO + wiznet w5100 + Relais
Verbindung durch Stifte:
DIGITAL 10 - SS
DIGITAL 11 - MOSI
DIGITAL 12 - MISO
DIGITAL 13 - SCK
GND - GND
5V - 5V
Wir verbinden das Relais noch einfacher: den Signalstift an DIGITAL 4, das Stromkabel an den Blinker, den wir in die Lücke an C (gemeinsam) und NC (normalerweise geschlossen) einhaken.
Achtung!
Weitere Informationen finden Sie in der Dokumentation zu Ihren Geräten. Es ist keine Tatsache, dass Sie beim Anschließen einer Ethernet-Karte an 5 Volt beim Testen keinen lustigen Rauch bekommen! In meinem Fall ist alles normal und das Modul ist für eine Leistung von 5 Volt ausgelegt.
Kunststoffprodukte
Eine Ankündigung auf Avito besagte, dass der Blinker fast betriebsbereit war. Im Laufe der Jahre ist nur ein Detail darin gestorben - das Zahnrad, das den Reflektor dreht.

Wir atmen aus, nehmen Fusion360 in die Hand, simulieren eine neue und drucken sie auf einem Office-3D-Drucker.
Modellierungsprozess für ZahnräderWir überprüfen die Radien und andere Eigenschaften des Zahnrads, wir kämpfen mit Untersextrusions- und Slicer-Parametern

Wir modellieren weiter

Wir drucken, probieren an

Passen Sie etwas mehr an und drucken Sie erneut. Die ursprünglichen Nieten wurden gebohrt und durch eine Kombination aus herkömmlichen M3-Schrauben und selbstsichernden Muttern ersetzt. Vergessen Sie nicht, Sitzplätze für sie hinzuzufügen.


Zahnräder schmieren, Drähte austauschen, wieder zusammenbauen - es funktioniert!
Es wäre schön, das Zahnrad aus Nylon zu drucken, aber der erste Kleingedruckte schlug fehl, und die zweite Sonde von Bestfilament reichte für die zweite nicht mehr aus.
Wofür wir sind - egal was!

Wie lässt sich der Blinker einschalten, wenn etwas Außergewöhnliches passiert ist?
Grundstufe! Wir verwenden Grafana bei der Arbeit, daher starten wir einfach einen neuen Benachrichtigungskanal mit dem WebHook-Typ, der eine Anforderung zum Einschalten des Notlichts nach bestimmten Kriterien sendet. Sie schaltet sich nach ein paar Sekunden aus, um die Atmosphäre nicht noch weiter zu eskalieren.
Wie viel Zeit hat das ganze Durcheinander gedauert? Ein paar Abende, wenn nicht abgelenkt. Plus einen halben Tag Arbeitszeit, um die Integration mit anderen internen Systemen einzurichten.
Die Technofanchik war erfolgreich, das Team brachte Vorteile, Fotos des Montageprozesses werden endlich präsentiert.
Hier ist es vor uns, ein Blinker mit Drähten