Une lampe intelligente qui montre l'ambiance de votre ville



Tout le monde connaît ce sentiment quand il y a un désir obsessionnel de faire quelque chose: acheter quelque chose, créer quelque chose, écrire quelque chose, appeler quelqu'un ... J'ai donc eu envie de faire quelque chose de mes propres mains. À la recherche d'un projet approprié sur instructables.com, je suis tombé dessus et j'ai réalisé - c'est ce dont vous avez besoin!

Tout d'abord, j'ai adapté moi-même cette conception de la lampe:

  • au lieu de l'humeur du monde entier, j'ai décidé de prendre l'humeur de ma ville
  • au lieu de framboise pi, j'ai décidé d'utiliser Arduino (car il était déjà en stock)
  • conception de boîte en plexiglas j'ai également changé un peu à ma discrétion
  • la possibilité de configurer la lampe sans clignoter, via carte sd.

La première étape, j'ai décidé d'écrire un programme sous arduino. Le problème était que Arduino n'avait pas de wifi, mais la solution a été trouvée assez rapidement - esp8266. ESP8266 est un microcontrôleur avec interface Wi-Fi. En plus du Wi-Fi, le microcontrôleur se distingue par la possibilité d'exécuter des programmes à partir d'une mémoire flash externe avec une interface SPI. La programmation de l'ESP8266 se fait via un adaptateur série, qui peut être utilisé comme Arduino. De plus, les programmes d'écriture et de clignotement peuvent également être effectués via l'IDE Arduino.



En travaillant avec la carte ESP-01, j'ai rapidement réalisé que l'utilisation du bundle arduino uno + ESP-01 n'était pas la meilleure solution. Le fait est que pour programmer la carte, il fallait assembler un petit circuit de programmation. Bien sûr, cela n'est pas difficile, mais très gênant: pour le firmware du module, vous devez connecter ESP-01 via le programmateur à arduino uno, qui fonctionne en mode adaptateur série, et pour vérifier le fonctionnement du programme, vous avez dû reconnecter ESP-01 directement à arduino uno en mode pantalon afin que les deux cartes puissent échanger des informations via le port série.



Par conséquent, j'ai décidé d'utiliser la carte NodeMCU comme microcontrôleur, qui est quelque chose comme esp8266 et arduino mini sur une seule carte. De plus, elle dispose d'une entrée micro usb, ce qui simplifie considérablement la procédure de travail avec elle.



Le programme lui-même s'est avéré assez simple. Tout d'abord, il se connecte à un réseau wifi, dont le login et le mot de passe sont stockés sur la carte SD. Après cela, json est téléchargé sur ip-api.com/json pour déterminer l'emplacement de la lampe (seuls le nom de la ville et les coordonnées géographiques sont tirés de l'emballage). Lorsque l'emplacement de la lampe est connu, le programme commence à générer des demandes de twitter, en utilisant des mots clés qui décrivent chaque «humeur» programmée. Après avoir traité les demandes, le programme calcule le nombre total de tweets et détermine le pourcentage de chaque humeur du cycle en cours. Pour rendre le calcul de l'humeur actuelle plus "vivant" - le programme compare l'humeur actuelle avec la précédente et calcule le pourcentage de variation. Par exemple, si dans le premier cycle de travail la distribution de l'humeur était de 0,4 pour le bonheur et de 0,05 pour la romance, et dans le deuxième cycle, 0,5 et 0,1, respectivement, le programme choisira «romance» comme humeur actuelle (puisque l'augmentation du bonheur était de 25% et la romance de 100 %). Cette approche vous permet de réagir rapidement aux changements d'humeur soudains dans la ville, ainsi que de suivre les humeurs mixtes (si la fraction massique des deux humeurs est approximativement la même, le programme basculera entre elles à tour de rôle).

La deuxième étape a été l'assemblage du boîtier de la lampe. J'ai immédiatement déterminé le matériau - plexiglas opaque (transmission lumineuse à 44%) de 2 mm d'épaisseur. Dans le même temps, selon l'idée, l'étagère inférieure - sur laquelle se trouvent tous les appareils électroniques, était en plexiglas transparent. En même temps, on a le sentiment que lorsque la lampe fonctionne, la lumière semble s'écouler par le bas et crée l'illusion de lévitation de la lampe elle-même.

Je voulais coller les murs taillés dans du plexiglas avec de la colle chaude. Mais une telle conception s'est avérée instable (probablement en raison de la faible largeur des murs) et s'est constamment effondrée. J'ai alors décidé de fixer les murs à l'aide de coins et de vis. Cette option s'est avérée plus fiable (mais pas si mignonne), alors je me suis arrêté dessus.

Après avoir assemblé le boîtier, j'ai procédé à la troisième et dernière étape - l'installation de l'électronique sur l'étagère inférieure. Tout était assez simple ici, sauf qu'au lieu des 4 LED prévues, j'en ai utilisé 8 - 4 supplémentaires sont dirigés vers le bas pour créer un effet de lévitation. Le fait est que j'ai raté la taille de la lampe et 30% de l'étagère a mangé un compartiment pour 4 piles AA, bloquant la lumière des LED.



Et il a également été découvert que les LED que j'ai achetées affichent mal les couleurs complexes. J'ai donc dû me limiter à 7 simples: rouge, vert, bleu, rose (rouge + bleu), jaune (rouge + vert), turquoise (vert + bleu) et blanc.

Le résultat final du travail peut être vu dans la vidéo .

Dans cette vidéo, la lampe est en mode démonstration - elle commute rapidement toutes les combinaisons de couleurs câblées dans un ordre aléatoire. Dans le mode de fonctionnement "normal", la lampe interroge Twitter toutes les dix minutes pour calculer l'ambiance actuelle et change de couleur en fonction des résultats du calcul.

Le budget du projet s'élevait à un peu plus de 2 000 roubles. De plus, les pièces les plus chères: 4x piles AA 700r, une feuille de plexiglas dépoli 600r, nodemcu chinois 500r.

Ce qui peut être amélioré:

  • Lors de l'assemblage du boîtier, vous pouvez utiliser des coins transparents afin qu'ils ne se détachent pas autant.
  • Le coût d'une boîte en plexiglas peut être considérablement réduit si vous achetez une grande feuille de plexiglas et la coupez vous-même.
  • Vous pouvez utiliser des LED plus chères, qui afficheront normalement des couleurs intermédiaires comme l'orange, le violet, etc.
  • Vous pouvez utiliser une autre source d'alimentation, comme une couronne. Cela est principalement dû au fait que le compartiment des piles pour 4 piles AA est trop grand et bloque une grande quantité de lumière provenant du bas de la lampe. Certes, on ne sait pas combien de temps la lampe peut fonctionner à partir d'une couronne.
  • Vous pouvez créer une interface Web simple pour régler la lampe. Étant donné que la bibliothèque pour travailler avec des cartes SD ne prend pas en charge la langue russe, il est impossible de définir des mots clés pour la recherche de cette manière.

Le code du programme peut être trouvé sur le github . Si ce sera intéressant - je peux vous en dire plus sur le programme dans un article séparé.

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


All Articles