Ich möchte die Effizienz mit Python auch im experimentellen System verbessern. (5) Ich möchte am Ende des Experiments eine Benachrichtigung mit der Slack-API senden

Synopse bis zum letzten Mal

Bis zum letzten Mal ist eine automatische Messung unter Berücksichtigung von Fehlern möglich geworden. Dieses Mal verwenden wir die API von slack, um slack über das Ende der Messung zu informieren. Selbst mit anderen Chat-Tools (Discord, Line usw.) ist der Ablauf des Erfassens von Token und des Sendens von Anforderungen an die API derselbe, sodass ich denke, dass er für verschiedene Zwecke verwendet werden kann.

Umgebung

Was machst du

Das Python Slackclient-Paket hat in meiner Umgebung nicht funktioniert

Mit Bezug auf

Sie können jede Nachricht mit der Slack-API an jeden Kanal senden. Was sollte im folgenden Code geändert werden

Sie sollten es nur senden können

Wie man Erwähnung hinzufügt

Bitte beziehen Sie sich auf diese Seite

import serial
import time
import pandas as pd

##Konstante Spezifikation
MAX = 40000
COMampere = "COM10"
COMpulse = "COM9"
bitRate = 9600
##Variable Initialisierung
pulse = 0
ampere_list = []
pulse_list = []
ampere_average_list =[]
##Bewegung des hinteren Ursprungs(Initialisieren)
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' #Bitte benutzen Sie den Token, den Sie für diesen Teil erhalten haben
slack = SlackDriver(token)
#Messung starten
try:
    while 1:
        if pulse >= MAX:
            ##Beenden Sie die while-Anweisung, wenn die Position MAX erreicht
            break
        if pulse ==2000:
            slack.send_message("<@IDhogehoge>1000 ist vorbei", "#bot-test") #Die erhaltene ID ist<>Bitte beilegen
        if pulse ==30000:
            slack.send_message("<@IDhogehoge>15000 ist vorbei", "#bot-test")
        ##Aktuelle Standortinformationen aufzeichnen
        pulse_list.append(pulse/2)
        ##Den Strom messen(Der Wert an dieser Position ist der Durchschnitt von 5 mal.)
        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()
            #Überspringen, wenn kein Strom vorhanden ist
            if len(tmp)== 0:
                ser.close()
                continue
            ampere = float(tmp.split()[2])
            ampere_average_list.append(ampere)
            time.sleep(1)
            ser.close()
        ##Strom und Puls(Position)Auflisten
        ampere_list.append(sum(ampere_average_list)/len(ampere_average_list))
        ampere_average_list = []

        ##Bewegen Sie den optischen Tisch
        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()

    ##Verwandeln Sie die Liste in einen Datenrahmen
    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>Die Messung ist fehlgeschlagen", "#bot-test")
#Ich möchte Slack benachrichtigen
slack.send_message("<@IDhogehoge>Die Messung ist beendet", "#bot-test")

##Variable Initialisierung
pulse = 0
ampere_list = []
pulse_list = []
ampere_average_list =[]
##Bewegung des hinteren Ursprungs(Initialisieren)
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

Ich möchte die Effizienz mit Python auch im experimentellen System verbessern. (5) Ich möchte am Ende des Experiments eine Benachrichtigung mit der Slack-API senden
Ich möchte die Effizienz mit Python auch in experimentellen Systemen verbessern (2) RS232C und pySerial
Ich möchte die Effizienz mit Python auch in einem experimentellen System verbessern. (1) Installieren Sie Anaconda mit Chocolatey
Ich möchte die Effizienz mit Python auch in einem experimentellen System verbessern. (3) Ich möchte mit Pandas so etwas wie Excel machen
Ich möchte die Effizienz mit Python auch im experimentellen System verbessern. (4) Verwenden Sie ser.close (), wenn ein Fehler mithilfe der try-Syntax ausgegeben wird.
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich möchte mit einem Roboter in Python arbeiten.
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
So senden Sie eine Anfrage mit Python an die DMM (FANZA) -API
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
Ich möchte einen Teil der Excel-Zeichenfolge mit Python einfärben
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich möchte ein Spiel mit Python machen
Senden Sie Google Mail am Ende des Vorgangs [Python]
Beispiel für eine Slack-Benachrichtigung mit Python Lambda
Ich möchte mit Python in eine Datei schreiben
Ich möchte den Fortschritt in Python anzeigen!
[LINE Messaging API] Ich möchte eine Nachricht vom Programm an alle LINE senden
Wie man eine Benutzergruppe mit Slack-Benachrichtigung erwähnt, wie man die ID einer Benutzergruppe überprüft
Die Geschichte der IPv6-Adresse, die ich auf ein Minimum beschränken möchte
Ich möchte Google Mail mit Python senden, kann dies jedoch aufgrund eines Fehlers nicht
So geben Sie mit Jupyter Notebook einen Wert in der Mitte einer Zelle aus
Ich möchte einen Lebenszyklus in der Aufgabendefinition von ECS festlegen
Ich möchte eine Liste der WebDAV-Dateien im Modul Anfragen anzeigen
So senden Sie automatisch E-Mails mit Anhängen mithilfe der Google Mail-API in Python
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
Ich möchte eine API erstellen, die ein Modell mit einer rekursiven Beziehung im Django REST Framework zurückgibt
[Python & SQLite] Ich habe den erwarteten Wert eines Rennens mit Pferden im 1x-Gewinnbereich ① analysiert
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte mit einem Knopf am Kolben übergehen
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
[Python] Ich habe ein System erstellt, um "das Rezept, das ich wirklich will" von der Rezeptseite einzuführen!
Auch mit JavaScript möchte ich Python `range ()` sehen!
Ich möchte eine Datei mit Python zufällig testen
Ich möchte mit Python-Datenklasse nach hinten erben
Ich habe Python satt, also habe ich versucht, die Daten mit nehan zu analysieren (ich möchte sogar mit Corona live gehen) - Teil 2)
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich habe Python satt, also habe ich versucht, die Daten mit nehan zu analysieren (ich möchte sogar mit Corona live gehen) - Teil 1)
Ich möchte R-Datensatz mit Python verwenden
Ich möchte einen Quantencomputer mit Python betreiben
Ich habe versucht, zum Zeitpunkt der Bereitstellung mit Fabric und ChatWork Api automatisch in ChatWork zu posten
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Ich habe eine Klasse erstellt, um das Analyseergebnis von MeCab in ndarray mit Python zu erhalten
Ich habe auch versucht, die Funktionsmonade und die Zustandsmonade mit dem Generator in Python nachzuahmen
Wie man einen bestimmten Prozess am Anfang und Ende der Spinne mit Scrapy einfügt
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich möchte eine andere Version von Python mit pyvenv angeben
Ich möchte viele Prozesse von Python aus starten
Ich habe die Strategie des Aktiensystemhandels mit Python evaluiert.
[Python] Ich möchte die Option -h mit argparse verwenden