[LINUX] Contrôler la mise sous / hors tension du port USB du Raspberry Pi

introduction

J'ai essayé d'allumer / d'éteindre l'alimentation du port USB du Raspberry Pi.

Depuis que j'ai connecté le Raspberry Pi et le smartphone via le serveur Blynk dans article précédent, j'utilise l'alimentation du côté du smartphone.

Choses utilisées

Aperçu des équipements utilisés

L'image entière de l'équipement ci-dessus est comme ça. 全体像.jpg C'est une image que le smartphone et le Raspberry Pi sont connectés dans la même zone locale et que le serveur Blynk y est connecté. Le Raspberry Pi et l'USB-HUB / USB-FAN à contrôler cette fois sont connectés.

Préparation préalable

1. Présentation et connexion à Blynk

Étant donné que la méthode suivante utilise Blynk, vous devez installer et connecter Blynk sur le smartphone et le Raspberry Pi.

Cliquez ici pour savoir comment procéder. ↓↓↓ Connexion de Raspberry Pi à votre smartphone à l'aide de Blynk

2. Correction du programme Blynk

Le script étant difficile à gérer dans la configuration initiale, il est modifié en se référant au site suivant.

http://blog.livedoor.jp/victory7com/archives/48432885.html

En conséquence, la relation entre les paramètres du widget et le script côté Raspberry Pi est comme indiqué dans la figure ci-dessous (* Image tirée du même site)

image.png

la mise en oeuvre

Travaillez côté smartphone

Côté smartphone, sélectionnez la broche associée au widget et au script du projet Blynk. blynk.jpg

[Gauche] Appuyez sur le widget pour ouvrir les paramètres du widget [Milieu] Cette fois, il s'agit d'un bouton, alors appuyez dessus pour sélectionner l'épingle à lier lorsque vous appuyez sur le bouton [Droite] Sélectionnez le type de broche et le numéro de broche

Travailler côté Raspberry Pi

1. Introduction d'un outil (hub-ctrl) pour contrôler le port USB

pi@raspberrypi:~ $ sudo apt-get install libusb-dev
pi@raspberrypi:~ $ git clone https://github.com/codazoda/hub-ctrl.c
pi@raspberrypi:~ $ cd hub-ctrl.c
pi@raspberrypi:~/hub-ctrl.c $ gcc -O2 hub-ctrl.c -o hub-ctrl-armhf-static -lusb –static
pi@raspberrypi:~/hub-ctrl.c $ sudo cp hub-ctrl-armhf-static /usr/local/bin/hub-ctrl

2. Vérifiez l'état de connexion du port USB

La commande "lsusb" renvoie le périphérique connecté au port USB et ses numéros de bus et de périphérique. Comme USB-HUB est cette fois la cible de l'opération, vérifiez que le nom de l'appareil est "Genesys Logic".

pi@raspberrypi:~ $ lsusb

Bus 001 Device 005: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 006: ID 0424:7800 Standard Microsystems Corp. 
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

3. 3. Créez un script shell pour activer / désactiver l'alimentation du USB-HUB

Comme le numéro de broche a été défini sur "V10" dans les paramètres du widget, le nom de fichier du script est "V10".

pi@raspberrypi:~ $ sudo vi /home/pi/blynk/BLYNK_WRITE_V10.sh

Le contenu du script est comme ça.

/home/pi/blynk/BLYNK_WRITE_V10.sh


#!/bin/sh

HUB=`/usr/bin/lsusb -v 2>/dev/null | grep ^Bus | grep "Genesys Logic, Inc. Hub" | head -1`
BUS=`echo $HUB | awk '{print $2}'`
DEV=`echo $HUB | awk '{print $4}' | sed -e "s/\(.*\)\:/\1/p;d"`

for i in 1 2 3 4
do
     /usr/local/bin/hub-ctrl -b $BUS -d $DEV -P $i -p 0
done
Supplément de script
Réglage des informations sur le périphérique (3e ligne)
Extrayez le résultat de l'instruction lsusb par le nom du périphérique et définissez-le dans la variable HUB.
Réglage du numéro de bus (4ème ligne)
Réglez le deuxième champ défini dans HUB sur la variable BUS.
Réglage du numéro de périphérique (5ème ligne)
Définissez le quatrième champ défini dans HUB sur la variable DEV en remplaçant les caractères.
pour l'instruction (7ème ligne)
Puisqu'il y a 4 ports USB-HUB, il est bouclé 4 fois.
commande hub-ctrl (9ème ligne)
"-b" spécifie le numéro de bus cible, "-d" spécifie le numéro de périphérique cible et "-P" spécifie le numéro de port.
Le dernier "-p" est la spécification On / Off de l'alimentation, et soit "0" (Off) / "1" (On) est spécifié.

Maintenant que vous disposez d'un script qui correspond au numéro de code PIN spécifié dans le widget, vous pouvez lancer ce script en appuyant sur un bouton côté smartphone. En conséquence, l'alimentation du ventilateur USB peut être activée / désactivée.

Supplément au fonctionnement électrique du port USB

Dans l'ancienne version de RaspberryPi, il semblait que l'alimentation du port USB de l'unité principale pouvait être contrôlée individuellement, mais cela devenait impossible car la version était mise à niveau.

Il a été dit qu'un USB-HUB avec des spécifications de "commutation d'alimentation par port" pourrait être contrôlé, mais un HUB qui le prend en charge n'est pas actuellement en vente. Si ** BUFFALO BSH4AE12BK ** est utilisé cette fois, il est possible de contrôler l'alimentation en unités de ** USB-HUB **, j'ai donc décidé de l'utiliser.

Résumé

En créant la broche spécifiée dans le widget et le script qui lui est associé, le script pourrait être exécuté du côté du smartphone. Tout d'abord, je comprends les bases de la façon de le déplacer, alors j'aimerais ensuite le déplacer en utilisant un widget différent.

Lien de référence

--Partie 3 Voyons la température / fréquence / état de charge du CPU --Série Contrôlons le Raspberry Pi depuis un smartphone en utilisant le service IoT "Blynk" (blog Raspberry Pi) - http://blog.livedoor.jp/victory7com/archives/48432885.html --Comment connecter un ventilateur USB à Raspberry Pi et contrôler le port USB ON / OFF (Mushroom Times) - https://kinokotimes.com/2017/03/07/usb-control-method-by-raspberry-pi/

Recommended Posts

Contrôler la mise sous / hors tension du port USB du Raspberry Pi
Allumer / éteindre le Raspberry pi avec Arduino
Allumez / éteignez votre PC avec Raspberry Pi
Démarrage USB sur Raspberry Pi 4 modèle B
pigpio sur Raspberry pi
Cython sur Raspberry Pi
Contrôlez les moteurs sans balais avec GPIO de Raspberry Pi Zero
Mettre en œuvre des cadres photo optimisés personnellement avec Raspberry Pi
Installation de Docker sur Raspberry Pi et L Chika
Installez pyenv sur Raspberry Pi pour gérer Python
Introduction de pyenv sur Raspberry Pi
Utilisez NeoPixel avec la tarte aux framboises
Installez OpenCV4 sur Raspberry Pi 3
Installez TensorFlow 1.15.0 sur Raspberry Pi
Portez FreeRTOS vers Raspberry Pi 4B
[Raspberry Pi] Contrôle du moteur pas à pas avec Raspberry Pi
Test de la communication UART avec Raspberry Pi
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Commande de servomoteur avec Raspberry Pi
USB sur Ethernet avec Raspberry pi
MQTT sur Raspberry Pi et Mac
raspberry pi 4 centos7 installer sur docker
Installez ghoto2 sur Raspberry Pi (Remarque)
Essayez d'utiliser ArUco avec Raspberry Pi
Procédure d'installation d'OpenCV sur Raspberry Pi
Affichage graphique de la consommation électrique des ménages avec 3GPI et Raspeye
Détecter l'état du commutateur avec Raspberry Pi 3
Installez OpenMedia Vault 5 sur Raspberry Pi 4
L Chika avec Raspberry Pi C #
Construisez wxPython sur Ubuntu 20.04 sur Raspberry Pi 4
Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur!
Enregistrement des valeurs du capteur d'environnement Omron avec Raspberry Pi (type USB)
Production d'un système de contrôle de température avec tarte aux framboises et ESP32 (2) Production d'un appareil de transmission
Connectez deux caméras USB au Raspberry Pi 4
Raspberry Pi "Lampe de notification Honwaka" Partie 2
Détectez la "luminosité" en utilisant python sur Raspberry Pi 3!
Raspberry Pi "Lampe de notification Honwaka" Partie 1
Activer la communication série UART + avec Raspberry Pi
Adafruit Python BluefruitLE fonctionne sur Raspeye.
Accélérez l'apprentissage en profondeur avec le processeur Rasperry Pi 4
Définir l'espace d'échange sur Ubuntu sur Raspberry Pi
Programmation normale avec la programmation Node-RED avec Raspberry Pi 3
Utiliser le capteur Grove avec Raspberry Pi
Installez la version 64 bits du système d'exploitation (bate) sur Raspberry Pi
Installez docker-compose sur le système d'exploitation Raspberry Pi 64 bits
Exécutez un servomoteur en utilisant python sur Raspberry Pi 3
Raspberry Pi "Lampe de notification Honwaka" Partie 3
Exécuter le servomoteur SG-90 avec Raspberry Pi
Travailler avec des capteurs dans Mathematica sur Raspberry Pi
Détectez la température à l'aide de python sur Raspberry Pi 3!
Multiplication matricielle sur GPU Raspberry Pi (partie 2)
Comment installer NumPy sur Raspeye
Travailler avec le GPS en Python pour Raspberry Pi 3
J'ai joué à Ruina du RPG Tsukuru 2000 ~ The Story of the Abandoned City ~ sur Raspberry Pi
Contrôlez l'écran EL organique connecté I2C d'Akizuki à partir de Raspberry Pi
Détectez les interrupteurs à glissière à l'aide de python sur Raspberry Pi 3!
Construire un environnement Django sur Raspai (MySQL)