Eine intelligente Lampe, die die Stimmung in Ihrer Stadt zeigt



Jeder kennt dieses Gefühl, wenn es einen obsessiven Wunsch gibt, etwas zu tun: etwas zu kaufen, etwas zu erschaffen, etwas zu schreiben, jemanden anzurufen ... Also hatte ich den Wunsch, etwas mit meinen eigenen Händen zu tun. Auf der Suche nach einem geeigneten Projekt auf instructables.com bin ich darauf gestoßen und habe festgestellt - das ist was Sie brauchen!

Zunächst habe ich dieses Design der Lampe für mich angepasst:

  • Anstelle der Stimmung der ganzen Welt beschloss ich, die Stimmung meiner Stadt zu nehmen
  • Anstelle von Himbeer-Pi habe ich mich für Arduino entschieden (da es bereits auf Lager war).
  • Plexiglasbox Design Ich habe auch nach meinem Ermessen ein wenig geändert
  • die Möglichkeit, die Lampe ohne zu blinken über SD-Karte zu konfigurieren.

Im ersten Schritt habe ich beschlossen, ein Programm unter Arduino zu schreiben. Das Problem war, dass Arduino kein WLAN hatte, aber die Lösung wurde ziemlich schnell gefunden - esp8266. ESP8266 ist ein Mikrocontroller mit Wi-Fi-Schnittstelle. Neben Wi-Fi zeichnet sich der Mikrocontroller durch die Fähigkeit aus, Programme aus einem externen Flash-Speicher mit einer SPI-Schnittstelle auszuführen. Die Programmierung des ESP8266 erfolgt über einen seriellen Adapter, der als Arduino verwendet werden kann. Darüber hinaus können Schreib- und Flash-Programme auch über die Arduino-IDE ausgeführt werden.



Während der Arbeit mit der ESP-01-Karte wurde mir schnell klar, dass die Verwendung des Arduino Uno + ESP-01-Bundles nicht die beste Lösung ist. Tatsache ist, dass zum Programmieren der Karte eine kleine Programmierschaltung zusammengebaut werden musste. Dies ist natürlich nicht schwierig, aber sehr unpraktisch: Für die Firmware des Moduls müssen Sie ESP-01 über den Programmierer mit arduino uno verbinden, das im seriellen Adaptermodus funktioniert, und um die Funktion des Programms zu überprüfen, mussten Sie ESP-01 im Hosenmodus direkt wieder mit arduino uno verbinden Damit können die beiden Karten Informationen über die serielle Schnittstelle austauschen.



Aus diesem Grund habe ich mich entschieden, die NodeMCU-Karte als Mikrocontroller zu verwenden, was so etwas wie esp8266 und Arduino Mini auf einer Karte ist. Darüber hinaus verfügt sie über einen Micro-USB-Eingang, der die Arbeit mit ihr erheblich vereinfacht.



Das Programm selbst erwies sich als recht einfach. Zunächst wird eine Verbindung zu einem WLAN-Netzwerk hergestellt, dessen Login und Passwort auf der SD-Karte gespeichert sind. Danach wird json von ip-api.com/json heruntergeladen, um den Standort der Lampe zu bestimmen (nur der Name der Stadt und die geografischen Koordinaten werden aus dem Paket entnommen). Wenn der Standort der Lampe bekannt wird, beginnt das Programm, Anfragen nach Twitter zu generieren, wobei Schlüsselwörter verwendet werden, die jede programmierte „Stimmung“ beschreiben. Nach der Verarbeitung von Anforderungen berechnet das Programm die Gesamtzahl der Tweets und ermittelt den Prozentsatz jeder Stimmung im aktuellen Zyklus. Um die Berechnung der aktuellen Stimmung „lebendiger“ zu gestalten, vergleicht das Programm die aktuelle Stimmung mit der vorherigen und berechnet die prozentuale Änderung. Wenn zum Beispiel im ersten Arbeitszyklus die Stimmungsverteilung 0,4 für das Glück und 0,05 für die Romantik betrug und im zweiten Zyklus 0,5 bzw. 0,1, wählt das Programm „Romantik“ als aktuelle Stimmung (da die Zunahme des Glücks 25% und die Romantik 100 betrug %). Mit diesem Ansatz können Sie schnell auf plötzliche Stimmungsänderungen in der Stadt reagieren und gemischte Stimmungen verfolgen (wenn der Massenanteil der beiden Stimmungen ungefähr gleich ist, wechselt das Programm der Reihe nach zwischen ihnen).

Die zweite Stufe war die Montage des Lampengehäuses. Ich habe sofort das Material bestimmt - undurchsichtiges Plexiglas (44% Lichtdurchlässigkeit) mit einer Dicke von 2 mm. In diesem Fall bestand das untere Regal, auf dem sich die gesamte Elektronik befindet, nach der Idee aus transparentem Plexiglas. Gleichzeitig besteht das Gefühl, dass bei arbeitender Lampe das Licht von unten zu strömen scheint und die Illusion einer Levitation der Lampe selbst erzeugt.

Ich wollte die aus Plexiglas geschnittenen Wände mit Heißkleber miteinander verkleben. Ein solches Design erwies sich jedoch als instabil (möglicherweise aufgrund der geringen Breite der Wände) und fiel ständig auseinander. Dann beschloss ich, die Wände mit Hilfe von Ecken und Schrauben zu befestigen. Diese Option erwies sich als zuverlässiger (obwohl nicht so niedlich), also hörte ich damit auf.

Nachdem ich das Gehäuse zusammengebaut hatte, ging ich zur dritten und letzten Stufe über - der Installation der Elektronik im unteren Regal. Hier war alles ziemlich einfach, außer dass ich anstelle der geplanten 4 LEDs 8 verwendet habe - weitere 4 sind nach unten gerichtet, um einen Levitationseffekt zu erzielen. Tatsache ist, dass ich die Größe der Lampe verpasst habe und 30% des Regals ein Fach für 4 AA-Batterien gegessen haben, wodurch das Licht der LEDs blockiert wurde.



Außerdem wurde festgestellt, dass die von mir gekauften LEDs komplexe Farben nur schlecht anzeigen. Deshalb musste ich mich auf 7 einfache beschränken: Rot, Grün, Blau, Rosa (Rot + Blau), Gelb (Rot + Grün), Türkis (Grün + Blau) und Weiß.

Das Endergebnis der Arbeit ist im Video zu sehen.

In diesem Video befindet sich die Lampe im Demonstrationsmodus - sie schaltet schnell alle verdrahteten Farbkombinationen in zufälliger Reihenfolge um. Im "normalen" Betriebsmodus fragt die Lampe alle zehn Minuten Twitter ab, um die aktuelle Stimmung zu berechnen, und ändert die Farbe gemäß den Berechnungsergebnissen.

Das Projektbudget betrug etwas mehr als zweitausend Rubel. Darüber hinaus die teuersten Teile: 4x AA-Batterien 700r, eine Folie aus gefrostetem Plexiglas 600r, chinesische Nodemcu 500r.

Was kann verbessert werden:

  • Bei der Montage des Gehäuses können Sie transparente Ecken verwenden, damit diese nicht so stark hervorstechen.
  • Die Kosten für eine Plexiglasbox können erheblich gesenkt werden, wenn Sie ein großes Blatt Plexiglas kaufen und es selbst schneiden.
  • Sie können teurere LEDs verwenden, die normalerweise Zwischenfarben wie Orange, Lila usw. anzeigen.
  • Sie können eine andere Stromquelle verwenden, z. B. eine Krone. Dies liegt hauptsächlich daran, dass das Batteriefach für 4 AA-Batterien zu groß ist und eine große Menge Licht vom Boden der Lampe abhält. Es ist zwar nicht bekannt, wie lange die Lampe von einer Krone aus arbeiten kann.
  • Sie können eine einfache Weboberfläche zum Einstellen der Lampe erstellen. Da die Bibliothek für die Arbeit mit SD-Karten die russische Sprache nicht unterstützt, ist es unmöglich, Schlüsselwörter für die Suche auf diese Weise festzulegen.

Den Programmcode finden Sie auf dem Github . Wenn es interessant sein wird - ich kann Ihnen in einem separaten Artikel mehr über das Programm erzählen.

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


All Articles