[PYTHON] Exécutez la matrice LED de manière interactive avec Raspberry Pi 3B + sur Slackbot

Ceci est une suite de Dernier article.

environnement

Razpai 3B + (y compris la carte SD) Matrice LED RVB (pas de 6 mm 32 x 32) 6 feuilles Connecteur pour matrice LED Alimentation à découpage MAXWELL 3 cordons d'alimentation pour panneau LED 6 câbles plats IDC 50 fils de saut, mâles et femelles, et 50 mâles et femelles planche à pain

Ce que vous voulez réaliser

Je souhaite basculer l'affichage du babillard électrique de Slack sur mon smartphone et créer un environnement dans lequel je peux facilement le faire fonctionner sans avoir à utiliser l'écran de Raspeye.

Comment utiliser Slackbot

Présentez Slackbot pour faire fonctionner Rasppie à partir de Slack. Avec Slackbot, vous pouvez le faire fonctionner en fonction du message envoyé à Slack.

Installation

Tout d'abord, installez la bibliothèque pour gérer Slackbot avec python.

$ sudo pip install slackbot

Créer un compte Bot

Commencez par créer un nouvel espace de travail dans Slack. Après cela, veuillez créer un bot à partir de ce site. Appuyez sur "Ajouter une intégration de bot" et un jeton API sera émis. Utilisez ce jeton API.

Invitation au canal du compte Bot

Une fois le compte Bot créé, il sera ajouté à l'application comme indiqué ci-dessous. Invitez cette application sur la chaîne. 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3535373637392f62316638386465342d303837332d626231332d346630642d63316636303166313830.png

Structure des répertoires Slackbot

Définissez la structure de répertoires Slackbot comme suit. Créez uniquement slackbot_settings.py avec ce nom. N'importe quel nom convient aux deux autres.

slackbot
    ├ bot.py #Exécutez slackbot
    ├ slackbot_settings.py #Paramètres Slackbot
    └ botmodule.py #Description du contenu de l'opération

Ecrire un programme

slackbot_settings.py


#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 「API_Veuillez décrire le jeton API obtenu de Slack dans "TOKEN"
API_TOKEN = "Jeton d'API obtenu"

#Réponse par défaut lors de la mention de mots inconnus
DEFAULT_REPLY = "Il n'y a pas de telle commande."
 
#Lisez un fichier externe. botmodule.Charger py
PLUGINS = [
    'slackbot.plugins',
    'botmodule',
]

Dans slackbot_settings.py, écrivez le jeton API que vous avez obtenu. Décrivez également le fichier qui décrit l'opération en tant que plug-in. Dans DEFAULT_REPLY, vous pouvez définir une réponse lorsqu'un mot non enregistré arrive en mentionnant le bot.

bot.py


#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from slackbot.bot import Bot
from slacker import Slacker
import slackbot_settings

#Lancer le bot
def main():

    #d'ici
    text="L'envoi d'une commande à ce canal fera fonctionner le tableau de bord.\n"\
        "Vous pouvez le faire fonctionner en envoyant la commande suivante.\n"\
            "<Nom de la commande>\n → commande"
    sla=Slacker("Jeton d'API obtenu")
    sla.chat.post_message('Le nom de la chaîne que vous souhaitez publier', text, as_user=True)
    #Jusqu'à présent, décrivez uniquement si vous souhaitez publier au démarrage

    bot = Bot()
    bot.run()
 
if __name__ == "__main__":
    main()

Cela fonctionne en exécutant bot.py. Si vous souhaitez envoyer un message au démarrage du bot, utilisez Slacker. Slacker fonctionne également avec le jeton API acquis. Veuillez spécifier la chaîne que vous souhaitez publier.

botmodule.py


#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from slackbot.bot import respond_to
from slackbot.bot import listen_to
import io,sys
import subprocess
import text_image_ledmatrix
#sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
import requests
import slackbot_settings
import time

def processmatrix():
    f=open('clear.txt')
    line=f.readline()
    while line:
        ans=line
        line=f.readline()			
    f.close()
    ans=ans.strip()
    if ans=='on':
        return True
    else:
        return False

@listen_to('-print(.*)')
def print(message, something):
        if processmatrix():
                text_image_ledmatrix.add_text('clear')
                time.sleep(3)
        message.react('ok')
        message.reply('[{0}]Il est affiché'.format(something))
        text_image_ledmatrix.ledprint(something)

@listen_to('-scroll(.*)')
def print(message,something):
        if processmatrix():
                text_image_ledmatrix.add_text('clear')
                time.sleep(3)
        message.react('ok')
        message.reply('[{0}]Faire défiler'.format(something))
        text_image_ledmatrix.textscroll(something)

text_image_ledmatrix.py est publié dans Article précédent. Listen_to reçoit des mots autres que des mentions publiées dans la chaîne. Cela fonctionne quand il reçoit les mots entre (). Nous utilisons des expressions régulières dans la seconde moitié de (), qui est le deuxième argument défini dans la ligne suivante. Si aucun argument n'est requis, aucune expression régulière n'est nécessaire. Tampon avec message.react (). Vous pouvez également mentionner le message avec message.reply (). Si vous postez sur-le-champ, un bogue se produira, alors veuillez ne pas publier le prochain post avant qu'il y ait une réaction.

Essayez-le avec Slack

Je l'ai en fait déplacé.

python3 bot.py

Parlons de la matrice LED dans Slack. ezgif.com-video-to-gif (2).gif

Ça s'est bien passé! Maintenant, vous pouvez facilement changer l'affichage de la matrice LED.

Ce à quoi j'ai été autorisé à me référer

Cette fois, je me suis référé au site suivant. https://qiita.com/undo0530/items/2139a1e8b73b3eee6e00/ http://www.denzow.me/entry/2017/12/16/225241/ https://qiita.com/minase_tetsuya/items/dba79cfe12db4557cefc https://qiita.com/o_s_t/items/f05057aefb297393a69a

en conclusion

Cette fois, nous avons réussi à combiner la matrice LED avec Slack. Dès la prochaine fois, nous résumerons la diversification des fonctions d'affichage et le démarrage du programme à la mise sous tension.

Recommended Posts

Exécutez la matrice LED de manière interactive avec Raspberry Pi 3B + sur Slackbot
Exécutez l'exemple de code python BNO055 avec I2C (Raspberry Pi 3B)
Démarrage USB sur Raspberry Pi 4 modèle B
Programmation normale avec la programmation Node-RED avec Raspberry Pi 3
Exécutez un servomoteur en utilisant python sur Raspberry Pi 3
Travailler avec des capteurs dans Mathematica sur Raspberry Pi
Construire un environnement OpenCV-Python sur Raspberry Pi B +
Travailler avec le GPS en Python pour Raspberry Pi 3
Pourquoi detectMultiScale () est lent sur Raspberry Pi B +
Profitez du travail électronique avec GPIO de Raspberry Pi
Allumez / éteignez votre PC avec Raspberry Pi
Introduction de Ceph avec Kubernetes sur Raspberry Pi 4B (ARM64)
Connectez-vous à MySQL avec Python sur Raspberry Pi
Suivi GPS avec Raspeye 4B + BU-353S4 (Python)
GPGPU avec Raspberry Pi
pigpio sur Raspberry pi
DigitalSignage avec Raspberry Pi
Cython sur Raspberry Pi
Enregistrez la température et l'humidité avec systemd sur Raspberry Pi
Essayez de déboguer Python sur Raspberry Pi avec Visual Studio.
Contrôlez les moteurs sans balais avec GPIO de Raspberry Pi Zero
Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Démarrage USB avec Raspberry Pi 4 modèle B (3) édition LVM
Résoudre les problèmes liés à l'installation d'OpenCV sur Raspberry Pi et à la capture
Plantes Mutter avec Raspberry Pi
raspberry pi 1 modèle b, python
Introduction de pyenv sur Raspberry Pi
Utilisez NeoPixel avec la tarte aux framboises
Installez OpenCV4 sur Raspberry Pi 3
Installez TensorFlow 1.15.0 sur Raspberry Pi
Exécutez AWS IoT Device SDK for Python sur Raspberry Pi
[Remarque] Installation de vmware ESXi sur Arm Fling sur Raspeye 4B
getrpimodel: Reconnaître le modèle Raspberry Pi (A, B, B +, B2, B3, etc.) avec python
Portez FreeRTOS vers Raspberry Pi 4B
[Raspberry Pi] Contrôle du moteur pas à pas avec Raspberry Pi
Test de la communication UART avec Raspberry Pi
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Utilisez vl53l0x avec RaspberryPi (python)
Raspberry pi 1 modèle b, partie rouge noeud 17
Commande de servomoteur avec Raspberry Pi
MQTT sur Raspberry Pi et Mac
raspberry pi 4 centos7 installer sur docker
Communication série avec Raspberry Pi + PySerial
Installez ghoto2 sur Raspberry Pi (Remarque)
Configuration du système d'exploitation avec Raspberry Pi Imager
Exécutez SwitchBot avec Bleak sur Windows 10
Essayez d'utiliser ArUco avec Raspberry Pi
Essayez L Chika avec raspberrypi
Procédure d'installation d'OpenCV sur Raspberry Pi
Démarrage automatique du programme au démarrage avec Raspberry Pi 3B + systemd Résumé
Construire un serveur VPN avec Raspberry Pie
Essayez de déplacer 3 servos avec Raspeye
Allumer / éteindre le Raspberry pi avec Arduino
Détecter l'état du commutateur avec Raspberry Pi 3
Installez OpenMedia Vault 5 sur Raspberry Pi 4
Utiliser une webcam avec Raspberry Pi
Exécutez Polyglot sur Raspberry Pi pour effectuer une analyse morphologique en anglais
L Chika avec Raspberry Pi C #
Construisez wxPython sur Ubuntu 20.04 sur Raspberry Pi 4