[PYTHON] Machen Sie einen Nyan-Knopf

Zweck

Ich möchte twittern, wenn ich möchte

Nyan-Knopf Nr. 1

Hergestellt mit IFTTT. スケッチ.png

Tweet mit der aktuellen Uhrzeit, zu der die Taste gedrückt wird. Sehr praktisch für Smartphones und Apple Watch Screenshot_20170818-121248.png IMG_-96qcj7.jpg

Problem

Der gepostete Text wird so etwas wie "Nyan 24. August 2017 um 03:45 Uhr", und wenn er innerhalb von 1 Minute ist, kann ich aufgrund doppelter Posts nicht posten. Manchmal möchte ich Nyan kontinuierlich werfen.

Nyan-Knopf Nr. 2

Ich habe eine Raspeltorte zu Hause, also möchte ich, dass er arbeitet Versuchen Sie in der Praxis Webhooking mit IFTTT Ich habe einen Apfel gemacht, um Webhook zu überspringen, und einen Apfel, um ihn mit IFTTT zu erhalten.

maker.ifttt.com-use-dFATP1QGninuFBL9kK7NLv(Laptop with HiDPI screen).png Wenn ich die Webhook-Einstellung mit IFTTT öffne, sollte eine URL wie diese angezeigt werden, also hätte ich sie so verwenden sollen, wie sie ist. Webhook ist sehr praktisch Ein Beispiel für die Curl-Eingabe wird ebenfalls angezeigt

Webhook Skipper

ifttt.com-applets-59725732d--edit(Laptop with HiDPI screen).png

Derjenige, der den Webhook erhält

ifttt.com-applets-59725732d--edit(Laptop with HiDPI screen) (1).png Geben Sie den Ereignisnamen an, den die zu überspringende Person festgelegt hat.

Nr. 2 funktioniert auch gut. Alles, was Sie tun müssen, ist Razupai zu bitten, es zu fliegen.

Nyan-Knopf Nr. 3

Apropos Raspetorte, es scheint Python zu sein, also habe ich mich für Python entschieden

import wiringpi as pi ,time,requests,datetime
SW_PIN = 15 #PIN-Nummer, an die der Schalter angeschlossen ist
url='https://maker.ifttt.com/trigger/python1/with/key/******'
swi=0
pi.wiringPiSetupGpio()
pi.pinMode(SW_PIN,pi.INPUT)
pi.pullUpDnControl(SW_PIN,pi.PUD_DOWN)

while True:
    if(pi.digitalRead(SW_PIN)==pi.HIGH):
        if(swi==0):
            print("Switch ON")
            str = datetime.datetime.now().strftime('%H:%M:%S')
            payload = {'value1':str}
            requests.post(url,data=payload)
            swi=1
    else:
       print("Switch OFF")
       swi=0
    time.sleep(0.01)

Hält den Schalter in swi ein und aus, ruft die Zeit ab, zu der er von 0 auf 1 wechselt, und überspringt ihn zum Webhook-Ziel.

payload = {'value1':str}
requests.post(url,data=payload)

Sie können die Zeitdaten überspringen, indem Sie dies tun. IMG_-x10jmo.jpg Post per Knopfdruck

Problem

Das Senden von POST dauert lange, und selbst wenn ich es beim Senden wiederholt drücke, funktioniert es nicht. Ich möchte mehr treffen

Nyan-Knopf Nr. 4

Ich möchte nur den Sender einfädeln und asynchron machen. Als ich nachgeschlagen habe, hatte Python eine Funktion zum Erstellen von Subthreads, aber ich bin mir nicht sicher. Deshalb habe ich beschlossen, nur den Sender im Hintergrund zu verschieben, und es wurde gelöst.

Das Problem wurde gelöst, indem der Sender in "nyaan.py" unterteilt und als "os.system (" sudo python3 nyaan.py & ")" umgeschrieben wurde. Selbst wenn Sie wiederholt auf die Nyan-Taste drücken, können Sie Nyan im kürzesten Intervall von 1 Sekunde verwenden. Ideal.

Problem

Es ist ein bisschen enttäuschend, weil Sie jedes Mal sudo python3 nyaan.py & ausführen. Ich möchte es kompilieren, aber ich bin müde, also mache ich es wieder.

Nyan-Knopf Nr. 5

Da der Impuls wiederholter Treffer zugenommen hat, entspricht er der Millisekundenanzeige. In den bisherigen Spezifikationen war ein Tweet pro Sekunde das Limit (doppelte Tweets)

now = datetime.datetime.now()
str = now.strftime('%H:%M:%S.') + "%03d" % (now.microsecond // 1000)

Schwieriger Progura Mingu Ich verstehe nicht wirklich http://shohu.hatenablog.com/entry/20081117/1226936130 Ich bin gerade hierher gezogen.

Ergebnis

Theoretisch können Sie problemlos 1000 Mal pro Sekunde twittern.

Nyan-Knopf Nr. 6

Seitdem gab es verschiedene Dinge, und es ist multithreaded geworden und der Ton kommt aus dem Lautsprecher.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import threading,tweepy,datetime,kjfsm4,wiringpi as pi,time

import pygame.mixer

SW_PIN = 14
swi=0
pi.wiringPiSetupGpio()
pi.pinMode(SW_PIN,pi.INPUT)
pi.pullUpDnControl(SW_PIN,pi.PUD_DOWN)

auth = tweepy.OAuthHandler(kjfsm4.consumer_key,kjfsm4.consumer_secret)
auth.set_access_token(kjfsm4.access_token,kjfsm4.access_secret)
api = tweepy.API(auth)

pygame.mixer.init()
pygame.mixer.music.load('nyan.mp3')

def tweet():
    pygame.mixer.music.play(1)
    print("tweet")
    now = datetime.datetime.now()
    str = now.strftime('%H:%M:%S.') + "%03d" % (now.microsecond // 1000)
    print (str)
    str = 'Nyan'+str
    api.update_status(str)

while True:
    if(pi.digitalRead(SW_PIN)==pi.HIGH):
        if(swi==0):
            th_me = threading.Thread(target=tweet,name="th_me")
            th_me.start()
            swi=1
    else:
       swi=0
    time.sleep(0.01)

Recommended Posts

Machen Sie einen Nyan-Knopf
Lass uns ein Squashspiel machen
Machen Sie einen Funktionsdekorateur
Ich mache ein Passwort!
Mach ein Spiel im Tetris-Stil!
Erstellen Sie einen Base64-Decoder
Erstellen Sie einen einfachen Slackbot mit einer interaktiven Schaltfläche in Python
Machen wir einen Discord Bot.
Erstellen Sie ein Blueqat-Backend ~ Teil 1
[Django] Erstellen Sie ein Pulldown-Menü
Machen Sie einen LINE BOT (Chat)
Erstellen Sie ein Lesezeichen in Python
Machen Sie Responder zu einem Daemon (Dienst)
Machen Sie ein Feuer mit kdeplot
Erstellen Sie einen Berechnungsbohrdruck
Machen wir eine Remote-Rumba [Hardware]
Wie erstelle ich eine japanisch-englische Übersetzung?
Machen Sie eine Santa-Kennung aus einem Santa-Bild
Lassen Sie uns eine Remote-Rumba erstellen [Software]
Machen Sie eine Tweet-Box für Pepper
Machen Sie einen Sound mit Jupyter Notebook
Erstellen Sie mit TensorFlow eine Gesichtserkennung
Wie man einen lockeren Bot macht
Machen wir einen Blockbruch mit wxPython
Machen wir einen Spot Sale Service 1
Wie erstelle ich einen Crawler?
So erstellen Sie eine rekursive Funktion
Machen Sie die C-Kompilierung etwas einfacher
Python / Machen Sie ein Diktat aus einer Liste.
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
Erstellen Sie ein Empfehlungssystem mit Python
[Blender] So erstellen Sie ein Blender-Plug-In
Machen Sie einen Filter mit einer Django-Vorlage
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Wie erstelle ich einen Crawler?
Erstellen Sie mit PySide einen Modelliterator
Machen Sie eine schöne Grafik mit Plotly
Machen Sie einen Vorhanggenerator mit Blender
Machen wir einen Spot Sale Service 3
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Erstellen Sie einen Videoplayer mit PySimpleGUI + OpenCV
Machen wir einen Jupyter-Kernel
Machen Sie Jupyter Notebook zu einem Dienst unter CentOS
Erstellen Sie eine Notebook-Pipeline mit Kedro + Papermill
Machen Sie mit matplotlib eine teilweise gezoomte Figur
Machen Sie ein Zeichnungsquiz mit kivy + PyTorch
Lassen Sie uns mit Python langsam sprechen
Erstellen Sie einen Kaskadenklassifizierer mit Google Colaboratory
Lassen Sie uns mit PLY 1 eine einfache Sprache erstellen
Qt für Python App Desktop App
Machst du so etwas wie eine Rakete?
Machen Sie eine Logikschaltung mit Perceptron (Multilayer Perceptron)
Machen Sie Ja Nein Popup mit Kivy
Machen Sie einen Waschtrocknungs-Timer mit Raspberry Pi
ROS-Kurs 107 Machen Sie einen Kunden für Rosblidge
Erstellen Sie eine GIF-Animation mit Ordnerüberwachung
Ich habe eine Web-API erstellt
Um eine Diktat-Eigenschaft schreibgeschützt zu machen