Je souhaite améliorer l'efficacité avec Python même dans le système expérimental (5) Je souhaite envoyer une notification à la fin de l'expérience avec l'API slack

Synopsis jusqu'à la dernière fois

Jusqu'à la dernière fois, la mesure automatique est devenue possible en tenant compte des erreurs. Cette fois, nous utiliserons l'API de slack pour notifier à slack la fin de la mesure. Même avec d'autres outils de chat (Discord, Line, etc.), le flux d'acquisition de jetons et d'envoi de requêtes à l'API est le même, je pense donc qu'il peut être utilisé à diverses fins.

environnement

Que fais tu

Le package python slackclient ne fonctionnait pas dans mon environnement

En référence à

Vous pouvez envoyer n'importe quel message à n'importe quel canal à l'aide de l'API slack. Ce qui doit être changé dans le code ci-dessous

Vous devriez pouvoir l'envoyer uniquement

Comment ajouter une mention

Veuillez consulter ce site

import serial
import time
import pandas as pd

##Spécification constante
MAX = 40000
COMampere = "COM10"
COMpulse = "COM9"
bitRate = 9600
##Initialisation variable
pulse = 0
ampere_list = []
pulse_list = []
ampere_average_list =[]
##Mouvement d'origine du dos(Initialisation)
ser = serial.Serial(COMsigma, bitRate, timeout=0.1)

ser.write(b"H:2-\r\n")

# time.sleep(0.1)
# print(ser.read_all())

ser.close()

import requests

class SlackDriver:
    def __init__(self, _token):
        self._token = _token  # api_token
        self._headers = {'Content-Type': 'application/json'}

    def send_message(self, message, channel):
        params = {"token": self._token, "channel": channel, "text": message}

        r = requests.get('https://slack.com/api/chat.postMessage',
                          headers=self._headers,
                          params=params)
        print("return ", r.json())
token = 'xxxx-oooooooooooo-000000000000-hogehoge' #Veuillez utiliser le jeton que vous avez obtenu cette partie
slack = SlackDriver(token)
#Commencer la mesure
try:
    while 1:
        if pulse >= MAX:
            ##Termine l'instruction while lorsque la position atteint MAX
            break
        if pulse ==2000:
            slack.send_message("<@IDhogehoge>1000 c'est fini", "#bot-test") #L'ID obtenu est<>Veuillez joindre
        if pulse ==30000:
            slack.send_message("<@IDhogehoge>15000 c'est fini", "#bot-test")
        ##Enregistrer les informations de localisation actuelles
        pulse_list.append(pulse/2)
        ##Mesurer le courant(La valeur à cette position est la moyenne de 5 fois.)
        for i in range(5):
            ser = serial.Serial(COMampere,bitRate,timeout=0.1)
            ser.write(b"F5, R0,PR2\r\n")
            time.sleep(1)
            ser.write(b"MD?\r\n")
            time.sleep(1)
            tmp = ser.read_all()
            #Ignorer s'il n'y a pas de courant
            if len(tmp)== 0:
                ser.close()
                continue
            ampere = float(tmp.split()[2])
            ampere_average_list.append(ampere)
            time.sleep(1)
            ser.close()
        ##Courant et impulsion(position)Lister
        ampere_list.append(sum(ampere_average_list)/len(ampere_average_list))
        ampere_average_list = []

        ##Déplacer la table optique
        pulse += 1000
        position = "A:2+P"+str(pulse)+"\r\n"
        ser = serial.Serial(COMpulse,bitRate,timeout=0.1)
        ser.write(bytes(position, 'UTF-8'))
        time.sleep(1)
        ser.write(b"G:\r\n")
        ser.close()

    ##Transformez la liste en un dataframe
    print(ampere_list)
    print(pulse_list)
    df = pd.DataFrame({'ampere(A)':ampere_list,'pulse':pulse_list})
    def pulseToMilliMeter(pulse):
        return pulse*0.006
    df["position(mm)"] = df["pulse"].map(pulseToMilliMeter)
    df.to_csv('./csv/result.csv',index=False)
    plt.figure()
    df.plot(x='position(mm)',y='ampere(A)',marker='o')
    plt.savefig('./img/sample.png')
    plt.close('all')
except IndexError:
    ser.close()
    slack.send_message("<@IDhogehoge>La mesure a échoué", "#bot-test")
#Je veux avertir Slack
slack.send_message("<@IDhogehoge>La mesure est terminée", "#bot-test")

##Initialisation variable
pulse = 0
ampere_list = []
pulse_list = []
ampere_average_list =[]
##Mouvement d'origine du dos(Initialisation)
ser = serial.Serial(COMpulse, bitRate, timeout=0.1)

ser.write(b"H:2-\r\n")

time.sleep(0.1)
print(ser.read_all())

ser.close()

Recommended Posts

Je souhaite améliorer l'efficacité avec Python même dans le système expérimental (5) Je souhaite envoyer une notification à la fin de l'expérience avec l'API slack
Je souhaite améliorer l'efficacité avec Python même dans les systèmes expérimentaux (2) RS232C et pySerial
Je souhaite améliorer l'efficacité avec Python même dans un système expérimental (1) Installer Anaconda avec Chocolatey
Je veux améliorer l'efficacité avec Python même dans un système expérimental (3) Je veux faire quelque chose comme Excel avec Pandas
Je souhaite améliorer l'efficacité avec Python même dans le système expérimental (4) Utilisez ser.close () lorsqu'une erreur est générée en utilisant la syntaxe try.
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
Je veux travailler avec un robot en python.
J'ai écrit un doctest dans "J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python"
Je veux sortir le début du mois prochain avec Python
Comment envoyer une requête à l'API DMM (FANZA) avec python
Je veux convertir par lots le résultat de "chaîne de caractères" .split () en Python
Je veux expliquer en détail la classe abstraite (ABCmeta) de Python
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Je souhaite trier une liste dans l'ordre des autres listes
Je veux colorer une partie de la chaîne Excel avec Python
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
Je veux faire un jeu avec Python
Envoyer Gmail à la fin du processus [Python]
Exemple de notification Slack avec python lambda
Je veux écrire dans un fichier avec Python
Je veux afficher la progression en Python!
[LINE Messaging API] Je souhaite envoyer un message du programme à tout le monde LINE
Comment mentionner un groupe d'utilisateurs avec une notification de mou, comment vérifier l'ID d'un groupe d'utilisateurs
L'histoire de l'adresse IPv6 que je souhaite conserver au minimum
Je souhaite envoyer Gmail avec Python, mais je ne peux pas en raison d'une erreur
Pour générer une valeur au milieu d'une cellule avec Jupyter Notebook
Je souhaite définir un cycle de vie dans la définition de tâche d'ECS
Je souhaite voir une liste de fichiers WebDAV dans le module Requêtes
Pour envoyer automatiquement des e-mails avec des pièces jointes à l'aide de l'API Gmail en Python
Comment obtenir une liste de fichiers dans le même répertoire avec python
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
Je souhaite créer une API qui retourne un modèle avec une relation récursive dans Django REST Framework
[Python & SQLite] J'ai analysé la valeur attendue d'une course avec des chevaux dans la fourchette 1x win ①
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Je veux faire la transition avec un bouton sur le ballon
Je veux écrire en Python! (2) Écrivons un test
[Python] J'ai créé un système pour introduire "la recette que je veux vraiment" depuis le site de recettes!
Même avec JavaScript, je veux voir Python `range ()`!
Je veux échantillonner au hasard un fichier avec Python
Je veux hériter de l'arrière avec la classe de données python
J'en ai marre de Python, alors j'ai essayé d'analyser les données avec nehan (je veux aller vivre même avec Corona) -Partie 2)
Je veux écrire en Python! (3) Utiliser des simulacres
J'en ai marre de Python, alors j'ai essayé d'analyser les données avec nehan (je veux aller vivre même avec Corona) -Partie 1)
Je veux utiliser le jeu de données R avec python
Je veux faire fonctionner un ordinateur quantique avec Python
J'ai essayé de publier automatiquement sur ChatWork au moment du déploiement avec Fabric et ChatWork Api
Notez ce que vous voulez faire à l'avenir avec Razpai
J'ai créé une classe pour obtenir le résultat de l'analyse par MeCab dans ndarray avec python
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
Comment insérer un processus spécifique au début et à la fin de l'araignée avec la tremblante
J'ai essayé de trouver l'entropie de l'image avec python
Je souhaite spécifier une autre version de Python avec pyvenv
Je veux démarrer beaucoup de processus à partir de python
J'ai évalué la stratégie de négociation du système boursier avec Python.
[Python] Je souhaite utiliser l'option -h avec argparse