Segelboot "NaN" piept SOS (siehe unseren Erfolg) Himbeer-Pi, Morsecode und MQTT: mehr Spaß zusammen
Mein Name ist Vova Balakin, ich bin von der Moskauer Schule im Südosten, benannt nach Marschall VI Chuikov (Klassen "Silahedr": vk.com/silaedr ), ich habe die 5. Klasse abgeschlossen, ich interessiere mich für Programmierung und Technologie. Ich möchte Ihnen sagen, was ich diesen Frühling getan habe. Ich hatte ein Segelboot namens "Not a Number" ("NaN"). Es ist gefährlich, ohne Signal auf See zu gehen, deshalb dachte ich, dass es am Mast keine Signallichter gibt. Besser noch, Signalleuchten, die ferngesteuert werden können. Besser noch, von überall auf der Welt! Ich hatte einen Raspberry Pi - und dann kam ich auf ...
Was ich wollte (Problemstellung)
... dass Sie eine LED an den Mast anschließen, sie an den Raspberry Pi anschließen und so programmieren können, dass jede Nachricht aus dem Internet an das Segelboot gesendet werden kann - und in Morsecode übersetzt wird - und die Diode am Mast gemäß diesem Code blinkt. Und am selben Mast befestigen Sie einen Fotowiderstand - Morsecode-Decoder, damit ein anderer Computer im Internet den übertragenen Code empfangen kann.
Was ist mit mir passiert (Ergebnis)
Nach zwei Monaten Versuch und Irrtum gelang es mir, ein Programm zu schreiben, das über einen MQTT-Broker (http://www.hivemq.com/demos/websocket-client/) jedem im Internet, der Topic kennt - den geheimen Schlüssel, ermöglicht, eine Nachricht an den Client zu senden , - sende absolut jede lateinische Nachricht - und die LED an meinem Mast blinkt im Morsecode!
Im Allgemeinen funktioniert dies so: Wir schreiben eine Nachricht und senden sie an den MQTT-Server. Diese sendet sie wiederum an den Raspberry pi, der sie in Morsecode übersetzt und mit einer LED gemäß dem Code blinkt.
Hier ist der Node.js-Code auf github .
Wie ich leiden musste (Werkzeuge und Techniken)
Ich habe zuerst in Python3 geschrieben. Aber ich konnte Python nicht mit MQTT verbinden - ich fand nicht die erforderliche Dokumentation - und wechselte zur Node.js-Plattform.
Außerdem habe ich tagsüber versucht, einen Morsecode-Lichtsignaldecoder (unter Verwendung eines Fotowiderstands) herzustellen und ihn auf demselben Mast desselben Segelboots zu installieren, aber es hat nicht funktioniert, weil der Fotowiderstand (zumindest der, den ich hatte) Das Licht kann nicht einmal von 5 LEDs unterschieden werden (die Spannungsdifferenz beim Ein- und Ausschalten der LEDs war zu gering).
Hilfreiche Ratschläge für diejenigen, die so etwas tun (Diskussion).
Schreiben Sie direkt in Node.js, wenn Sie den Code später mit MQTT verknüpfen möchten. Python dazu zu bringen, sich mit MQTT zu verbinden, ist keine leichte Aufgabe.
Was hat die Menschheit getan (Litobzor)
Bevor ich anfing, googelte ich, wie das geht. Alle Teile dieses Projekts werden im Internet separat beschrieben, aber ich habe nicht alles zusammen gefunden.
- Ein Artikel über Habré darüber, was gut wäre, um dies zu tun (es gibt immer noch viele coole Ideen): habr.com/ru/company/madrobots/blog/243253
- Ein klares Video auf YouTube über MQTT und Raspberry pi : https://www.youtube.com/watch? V = p3vJxGKWDIg "
- Morsecode und NodeJS
- Himbeer-Pi und Morsecode: www.youtube.com/watch?v=wiciIlsS0eo
Vielen Dank für Ihre wertvollen Kommentare und coolen Ratschläge von meinen Robotik- und Informatiklehrern und Schülern!