Cette fois, j'ai écrit cet article pour réduire la partie gênante de Razpai à laquelle je réfléchis depuis longtemps, en particulier les problèmes lors du développement de l'IoT. Écrivez au lieu de votre propre mémorandum.
L'utilisateur cible visé est une personne qui a acheté Raspai parce qu'il voulait développer un appareil IoT comme lui (cela peut être utile pour le développement général d'un appareil IoT, comme sortir l'appareil de la maison ou de l'entreprise).
--Comprendre la procédure de connexion et de développement de Raspai à distance
Ce dont vous avez besoin pour développer une tarte aux râpes
Cependant, cela signifie que ** même si l'appareil lui-même est petit, un environnement équivalent au développement d'un PC de bureau est requis **. Je voulais installer la tarte à la râpe à l'extérieur et l'utiliser pour des tests et des développements locaux en fonction de la situation, j'ai donc pensé à la configuration nécessaire au développement local tout en minimisant le matériel à emporter à l'extérieur.
La configuration après le travail est la suivante.
Problème. ** Si l'IP ne bascule pas correctement lors de la commutation entre smartphone et wifi **
Cet article commence par «construire une tarte aux râpes». Il existe de nombreux articles sur Internet à propos de "Razpai Construction", veuillez donc vous y référer. L'important cette fois, c'est après la construction. Une fois que vous avez créé l'environnement de développement pour Raspeye et que le système d'exploitation peut être démarré avec Razzpie, tout d'abord, effectuez rapidement les paramètres suivants.
$ 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 = "L'URL du WebHook obtenue par slack est répertoriée ici"
##
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)
Vous pouvez utiliser à la fois iPhone et Android. En référence à ce qui suit, iOS est Blutooth et Android est connecté par fil avec un câble, de sorte que vous pouvez vous connecter au réseau depuis Raspai par partage de connexion. Référence: [Tethering by connect to Belutooth to 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 /) Référence: Partage de connexion USB sur Raspberry Pi et Android
Cette fois, nous obtiendrons l'URL du webhook de slack et le définirons pour ignorer les informations obtenues par le script python sur slack. Veuillez vérifier les éléments suivants pour plus de détails. Si vous ne souhaitez pas l'utiliser, commentez les lignes 28 et 29 suivantes du script et cela fonctionnera sans utiliser de slack, veuillez donc passer à une méthode pouvant être liée de manière externe, telle que l'API Web ou la transmission de courrier électronique.
slack = slackweb.Slack(url = slackurl)
slack.notify(text="%s" % message)
Référence: Procédure d'acquisition d'URL Slack Webhook
@reboot /usr/bin/python /home/pi/ipinfo_slack.py
À ce stade, le réglage lui-même est terminé. Si vous avez réussi les étapes 1 à 7, vous serez prêt à développer sans connecter autre chose que l'alimentation à la tarte à la râpe.
Cette fois, puisque nous nous concentrons sur le "développement à distance de Raspeye", une connexion réseau pour une connexion à distance est nécessaire. Cependant, il n'y a pas toujours de réseau tel que le wifi à l'extérieur, et le but est d'utiliser le partage de connexion sur le smartphone à cette fin.
Même si vous n'avez pas d'ordinateur portable, vous pouvez facilement le configurer en le connectant à votre smartphone et en installant le logiciel RDP sur votre smartphone, afin que vous puissiez l'utiliser à d'autres fins telles que la configuration d'un autre réseau wifi.
Si vous disposez d'un environnement réseau tel que le wifi, vous pouvez vous connecter à Raspai à distance (même avec le partage de connexion smartphone). Cette fois, comme procédure, j'ai choisi RDP, qui peut être facilement manipulé avec l'interface graphique même sous Windows et est compatible avec les smartphones, mais je pense qu'il n'y a pas de problème avec d'autres outils tels que VNC.
Si possible, il est souhaitable de pouvoir opérer sans se connecter à Raspeye sauf lorsque le développement est nécessaire. Cette fois, il est supposé que vous vous connecterez à distance,
--Je veux me connecter à distance
La contradiction naîtra. À l'origine, je veux connaître l'IP sans me connecter à Raspeye, j'ai donc un mécanisme qui "crée un script qui vérifie votre propre adresse IP et notifie slack, et l'exécute avec cron au démarrage".
(*) Par mesure de prudence, veuillez vous assurer que vous pouvez vous connecter au partage de connexion ou au wifi sur votre smartphone lorsque vous le démarrez. De plus, si vous envoyez un ping immédiatement, le programme démarrera avant la communication réseau, vous devez donc attendre 3 minutes de manière appropriée et la notification ne sera pas envoyée immédiatement à Slack.
Si vous connectez votre smartphone au wifi en séquence ou que vous vous connectez à votre smartphone depuis le wifi, l'IP basculera automatiquement en fonction du réseau, mais il y a des moments où l'IP ne bascule pas correctement. Il y a. Dans ce cas, essayez de redémarrer le service xrdp et, sinon, de le réinstaller.
Redémarrer le service
sudo service xrdp restart
Sinon, réinstallez xrdp
sudo apt remove xrdp
sudo apt update
sudo apt install xrdp
Avec les paramètres ou les idées ci-dessus, je pense que Razpai peut être développé à distance plus facilement.