Dieses Mal habe ich diesen Artikel geschrieben, um den lästigen Teil von Razpai zu reduzieren, über den ich lange nachgedacht habe, insbesondere die Probleme während der IoT-Entwicklung. Schreiben Sie anstelle Ihres eigenen Memorandums.
Der beabsichtigte Zielbenutzer ist eine Person, die eine Raspeltorte wie er gekauft hat, weil sie ein IoT-Gerät entwickeln wollte (dies kann für die allgemeine Entwicklung von IoT-Geräten nützlich sein, z. B. zum Herausnehmen des Geräts aus dem Haus oder außerhalb des Unternehmens).
Was Sie brauchen, um eine Raspeltorte zu entwickeln
Dies bedeutet jedoch, dass ** auch wenn das Gerät selbst klein ist, eine Umgebung erforderlich ist, die der Desktop-PC-Entwicklung entspricht **. Ich wollte den Raspeltorte im Freien installieren und je nach Situation für lokale Tests und Entwicklungen verwenden. Daher dachte ich über die Konfiguration nach, die für die lokale Entwicklung erforderlich ist, und minimierte gleichzeitig die Ausrüstung, die im Freien verwendet werden muss.
Die Konfiguration nach der Arbeit ist wie folgt.
Problem. ** Wenn die IP beim Umschalten zwischen Smartphone und WLAN nicht richtig wechselt **
Dieser Artikel beginnt mit "Bauen einer Raspeltorte". Es gibt viele Artikel im Internet über "Razpai Construction", bitte beziehen Sie sich auf sie. Das Wichtigste ist diesmal nach dem Bau. Nachdem Sie die Entwicklungsumgebung für Raspeye erstellt haben und das Betriebssystem mit Razzpie gestartet werden kann, nehmen Sie zunächst die folgenden Einstellungen in Eile vor.
$ sudo apt-get update
$ sudo apt-get install xrdp
$ sudo apt install tightvncserver
$ sudo pip install slackweb
$ sudo pip install psutil
send_IPinfo.py
import slackweb
import psutil
import socket
import time
import subprocess
def is_ping(host):
# linux only
ping = subprocess.Popen(["ping", "-w", "3", "-c", "1", host], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
ping.communicate()
return ping.returncode == 0
time.sleep(180)
hostname = socket.gethostname()
slackurl = "Die von slack erhaltene WebHook-URL ist hier aufgelistet"
##
for name, addrs in psutil.net_if_addrs().items():
if name == "usb0" or name == "wlan0":
print("connect succeed")
flg = True
for addr in addrs:
if addr.family == socket.AF_INET:
message = hostname + " " + name + " is " + addr.address
slack = slackweb.Slack(url = slackurl)
slack.notify(text="%s" % message)
print(message)
Sie können sowohl iPhone als auch Android verwenden. In Bezug auf Folgendes ist iOS Blutooth, und Android ist über Kabel mit einem Kabel verbunden, sodass Sie über Tethering eine Verbindung zum Netzwerk von Raspai aus herstellen können. Referenz: [Tethering durch Herstellen einer Verbindung zu Belutooth zum iPhone](http://make.bcde.jp/raspberry-pi/iphone%E3%81%ABbelutooth%E6%8E%A5%E7%B6%9A%E3%81% 97% E3% 81% A6% E3% 83% 86% E3% 82% B6% E3% 83% AA% E3% 83% B3% E3% 82% B0 /) Referenz: USB-Tethering auf Raspberry Pi und Android
Dieses Mal erhalten wir die Webhook-URL von slack und setzen sie so, dass die vom Python-Skript erhaltenen Informationen auf slack übersprungen werden. Bitte überprüfen Sie die folgenden für Details. Wenn Sie es nicht verwenden möchten, kommentieren Sie die folgenden Zeilen 28 und 29 des Skripts aus. Es funktioniert ohne Slack. Wechseln Sie daher zu einer Methode, die extern verknüpft werden kann, z. B. Web-API oder E-Mail-Übertragung.
slack = slackweb.Slack(url = slackurl)
slack.notify(text="%s" % message)
Referenz: Verfahren zur Erfassung der Slack Webhook-URL
@reboot /usr/bin/python /home/pi/ipinfo_slack.py
Zu diesem Zeitpunkt ist die Einstellung selbst abgeschlossen. Wenn Sie die Schritte 1 bis 7 erfolgreich abgeschlossen haben, können Sie entwickeln, ohne etwas anderes als das Netzteil an den Raspeltorte anzuschließen.
Da wir uns diesmal auf die "Remote-Entwicklung von Raspeye" konzentrieren, ist eine Netzwerkverbindung für die Remote-Verbindung erforderlich. Es gibt jedoch nicht immer ein Netzwerk wie WLAN im Freien, und es geht darum, das Tethering auf dem Smartphone für diesen Zweck zu verwenden.
Selbst wenn Sie keinen Notebook-PC haben, können Sie ihn einfach einstellen, indem Sie ihn an Ihr Smartphone anschließen und die RDP-Software auf Ihrem Smartphone installieren, sodass Sie ihn für andere Zwecke verwenden können, z. B. zum Einrichten eines anderen WLAN-Netzwerks.
Wenn Sie über eine Netzwerkumgebung wie WLAN verfügen, können Sie eine Remote-Verbindung zu Raspai herstellen (auch mit Smartphone-Tethering). Dieses Mal habe ich mich für RDP entschieden, das auch unter Windows problemlos mit der grafischen Benutzeroberfläche kompatibel ist und mit Smartphones kompatibel ist. Ich denke jedoch, dass es mit anderen Tools wie VNC kein Problem gibt.
Wenn möglich, ist es wünschenswert, ohne Verbindung zu Raspeye arbeiten zu können, außer wenn eine Entwicklung erforderlich ist. Dieses Mal wird davon ausgegangen, dass Sie eine Remoteverbindung herstellen.
Der Widerspruch wird geboren. Ursprünglich möchte ich die IP kennen, ohne eine Verbindung zu Raspeye herzustellen, daher habe ich einen Mechanismus, der "ein Skript erstellt, das Ihre eigene IP überprüft und Slack benachrichtigt und es beim Start mit cron ausführt".
(*) Stellen Sie zur Vorsicht sicher, dass Sie beim Starten eine Verbindung zu Tethering oder WLAN auf Ihrem Smartphone herstellen können. Wenn Sie sofort pingen, wird das Programm vor der Netzwerkkommunikation gestartet, sodass Sie entsprechend 3 Minuten warten müssen, und die Benachrichtigung wird nicht sofort an Slack gesendet.
Wenn Sie Ihr Smartphone nacheinander mit WLAN verbinden oder über WLAN eine Verbindung zu Ihrem Smartphone herstellen, wird die IP-Adresse automatisch entsprechend dem Netzwerk umgeschaltet. In einigen Fällen wird die IP-Adresse jedoch nicht ordnungsgemäß umgeschaltet. Es gibt. Versuchen Sie in diesem Fall, den xrdp-Dienst neu zu starten. Wenn dies nicht funktioniert, installieren Sie ihn erneut.
Starten Sie den Dienst neu
sudo service xrdp restart
Wenn nicht, installieren Sie xrdp neu
sudo apt remove xrdp
sudo apt update
sudo apt install xrdp
Mit den oben genannten Einstellungen oder Ideen kann Razpai meiner Meinung nach einfacher aus der Ferne entwickelt werden.