Das letzte Mal gepostet hat einen praktischen Sensor fertiggestellt, und nachdem ich ihn eine Weile betrieben hatte, kamen einige Punkte heraus, die ich verbessern wollte.
Was 1. betrifft, habe ich von Anfang an darüber nachgedacht, und das Standard-Windows-Popup sieht sowieso hässlich aus, deshalb wollte ich es modisch und modern aussehen lassen.
In Bezug auf 2. wird das Popup nicht angezeigt, wenn ein Spiel im Vollbildmodus gespielt wird. Daher habe ich es schlecht erlebt, es sei denn, ich habe es mit Ton bemerkt.
In 3. habe ich mehrere PCs in meinem Zimmer, daher wollte ich beide PCs verwenden können.
Nach Rücksprache mit einem Bekannten finde ich Knurren gut. Ich habe einen Vorschlag bekommen Es kann unter Windows verwendet werden, es kann einfach über die Befehlszeile bedient werden, es sieht modern und cool aus und es erzeugt auch Sound, also habe ich mich für die Verwendung entschieden. Ich habe es geschafft, aus einer Batch-Datei unter Bezugnahme auf diese Site auszuführen.
Installieren Sie zuerst Knurren für Windows und führen Sie es durch den Pfad. (Ich habe es nach Abschluss bemerkt, aber ich habe das Gefühl, dass ich den Pfad nicht übergeben muss, wenn ich den vollständigen Pfad in die Batch-Datei schreibe.) Stellen Sie danach das Passwort, das Erscheinungsbild und den Sound auf dem Knurr-Einstellungsbildschirm ein und schließen Sie ab (Da es sich um [diese Site] handelt (http://qiita.com/rohinomiya/items/5e485d6700eac256af9f), wird es weggelassen.)
Erstellen Sie eine Batch-Datei zum Popup
popup.bat
growlnotify.exe /t:"Emergency!" /s:False /pass:"password"Bitte speichern
Wenn Sie / s: True festlegen, wird das Popup nur ausgeblendet, wenn Sie darauf klicken. Es ist jedoch problematisch, wenn es kontinuierlich angezeigt wird. Daher setze ich es auf False
Als ich dies ausführte, wurde ein Popup angezeigt, aber als ich die Batchdatei ausführte, wurde die Eingabeaufforderung für einen Moment angezeigt. Nach vielen Recherchen scheint die Methode zum Aufrufen einer Batch-Datei von vbs der Königsweg zu sein (ich weiß es nicht wirklich). Also habe ich es nicht verstanden, aber ich habe vbs erstellt
popup.vbs
Dim oShell
Dim path
Set oShell = WScript.CreateObject ("WSCript.shell")
path = oShell.CurrentDirectory
path = path & "\PopUp.bat"
oShell.run path,0
Set oShell = Nothing
Es funktioniert wie gewünscht, also habe ich beschlossen, diese vbs aus einem Skript auszuführen.
Der Teil, der das zuletzt erstellte Popup anzeigt
python
def popup(): #Senden Sie eine Nachricht auf dem Windows-Bildschirm
user32 = windll.user32
user32.MessageBoxA( 0, "Enemy Will Come Here!!", "Caution!!", 0x00000030)
Ändern Sie wie unten
def growl(): #Führen Sie vbs aus, um Knurren zu zeigen
path = os.path.abspath(os.path.dirname(__file__))
filename = "popup.vbs"
path = os.path.join(path,filename)
os.system(path) h
Insgesamt wurde es so
sencer_server.py
from __future__ import print_function
import socket
import time
import os
from contextlib import closing
from ctypes import *
def main():
while True:
print('listen,start')
recv()
time.sleep(1)
def recv():
host = '192.168.1.xx'
port = 8080
backlog = 10
bufsize = 4096
socket.timeout(1)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
with closing(sock):
sock.bind((host, port))
sock.listen(backlog)
conn, address = sock.accept()
msg = conn.recv(bufsize)
if (msg == 'raspberry'):
print('recieve')
growl()
except socket.timeout:
print('connect,timeout')
except socket.error:
print('connect,error')
def growl():
path = os.path.abspath(os.path.dirname(__file__))
filename = "popup.vbs"
path = os.path.join(path,filename)
os.system(path)
if __name__ == '__main__':
main()
Abgeschlossen Ich konnte das modische Pop-up erkennen, das ich suchte
Ich habe verschiedene Methoden untersucht und Kandidaten aufgelistet
Es scheint einfach zu sein, 1. zu senden, und ich musste nicht jede IP-Adresse in die Quelle schreiben, also habe ich es versucht, aber es hat nicht funktioniert und ich war frustriert. Ich bin frustriert und möchte mich rächen, sobald ich jemanden frage
In Bezug auf 3. dauert es einige Zeit, die allgemeinen Spezifikationen zu überprüfen, die Cloud auszuwählen und einen Vertrag abzuschließen, sodass sie reserviert ist
Ich zögere, aber in 2. habe ich beschlossen, mich vorerst damit zu befassen
Also habe ich Folgendes geändert
sencer_cliant.py
from __future__ import print_function
import socket
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.IN)
from contextlib import closing
import threading
def main():
print('start,waiting')
while True:
inputValue = GPIO.input(25)
host = ['192.168.1.xx','192.168.1.yy']
if (inputValue == True):
print('inputTrue')
for ip in host:
thread = threading.Thread(target=send, args=(ip,))
thread.start()
time.sleep(5)
def send(host):
port = 8080
bufsize = 4096
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
with closing(sock):
try:
sock.connect((host, port))
sock.send('raspberry')
print(host + ' send')
except socket.timeout:
print(host + ' socketTimeout')
except socket.error:
print(host + ' socketError')
return
if __name__ == '__main__':
main()
Abgeschlossen
Die praktische Unzufriedenheit in meiner Umgebung ist fast beseitigt, und ich lebe ein angenehmes Leben in meinem Zimmer. Ich habe gerade ein seltsames Spielzeug mit einem unreinen Motiv gemacht, aber als ich Python zum ersten Mal berührte, stieg die Spannung und ich war ziemlich darin versunken. Ich möchte versuchen, während der Winterferien zu trüben Da es sich fast um eine Kopie handelt, kann der Inhalt der Quelle schrecklich sein. Ich kann ihn nur erhalten, wenn ich ihn mache, während ich ihn ein wenig genauer untersuche. Deshalb möchte ich mich nach und nach widmen.
Wenn Sie Anregungen oder Anleitungen haben, zögern Sie bitte nicht, uns zu kontaktieren.