Question:
Rpi se fige de temps en temps, comment y remédier avec un chien de garde?
Jurudocs
2019-06-14 12:43:34 UTC
view on stackexchange narkive permalink

Je construis un système avec un Raspberry Pi situé dans une zone très éloignée connectée à Internet avec une clé Internet. Les tests sont prometteurs pour l'instant mais le pi se fige de temps en temps et je ne parviens plus à me connecter au pi. Parce que je ne veux pas prendre 2 heures de route chaque fois qu'il gèle, je veux construire un système redondant qui vérifie l'autre système.
Le pire des cas sera de couper l'alimentation du système gelé pour le redémarrer. Cela devrait être fait par le pi de travail.

Maintenant, la question en tant que noob total quand il s'agit de construire l'électronique.

J'ai vérifié l'ATXRaspi R3 mais je ne sais pas comment déclencher "numériquement" la presse 6sec sur ce contrôleur d'alimentation pour couper l'alimentation de l'autre pi ...

Quel serait le moyen le plus simple de couper l'alimentation d'un autre pi? Tous les indices sont les bienvenus.

Je ne suis pas sûr que quelqu'un conçoive ce circuit pour vous. Mais une chose supplémentaire à considérer: ce qui cause le gel du premier Pi peut avoir un mode de défaillance commun au deuxième Pi. Par exemple, s'il est gelé à cause d'une fluctuation de puissance, vous pourriez vous retrouver avec deux Pis gelés au lieu de la redondance indépendante que vous souhaitez. Cela pourrait valoir la peine d'essayer de comprendre pourquoi ce premier Pi se fige en premier.
À quelle vitesse avez-vous besoin du pi pour revenir en ligne? Une simple minuterie d'éclairage de vacances pourrait couper l'alimentation toutes les X heures, tant que cela ne vous dérange pas d'attendre l'intervalle de réinitialisation pour le remettre en ligne.
@Jurudocs, J'ai suivi le didacticiel de la minuterie de surveillance de # berto et j'ai trouvé que tout était bon. Je ne comprends pas très bien ce que fait le chien de garde, mais je suis sûr à 90% que la méthode du minuteur de surveillance devrait résoudre votre problème, beaucoup plus propre à ma solution matérielle proposée.
Cinq réponses:
berto
2019-06-15 08:09:28 UTC
view on stackexchange narkive permalink

Avant de vous pencher sur du matériel supplémentaire, veuillez lire ce que l'on appelle un «chronomètre de surveillance». Le Raspberry Pi a un chien de garde matériel intégré qui le redémarrera si la puce n'est pas rafraîchie dans un certain intervalle.

J'ai configuré le chien de garde sur un Raspberry Pi 3 et une nouvelle version de Raspbian avec très peu de configuration. La première chose à vérifier est que le chien de garde matériel est disponible (j'ai vérifié mon système et il ressemble à la version de Raspbian que j'ai installée compile le support du chien de garde directement dans le noyau; pas besoin de charger un module du noyau):

  pi @ unicornpi: ~ $ ls -al / dev / watchdog * crw ------- 1 racine racine 10, 130 3 novembre 2016 / dev / watchdogcrw ------- 1 racine racine 252, 0 3 novembre 2016 / dev / watchdog0  

Si vous voyez / dev / watchdog , vous êtes prêt. Tout ce que vous avez à faire est de configurer la fonction de surveillance intégrée à Systemd.

Dans le fichier /etc/systemd/system.conf , définissez les lignes suivantes:

  pi @ unicornpi: ~ $ grep Watchdog /etc/systemd/system.confRuntimeWatchdogSec=10ShutdownWatchdogSec=10min

Ce que disent les lignes ci-dessus est:

  • actualise le chien de garde matériel toutes les 10 secondes. si pour une raison quelconque le rafraîchissement échoue (je crois après 3 intervalles; c.-à-d. 30 s), redémarrez le système

  • à l'arrêt, si le système prend plus de 10 minutes pour redémarrer, cycle le système

Une fois que vous avez configuré et redémarré, vous verrez quelque chose comme ça dans les journaux dmesg :

  pi @ orangepi: ~ $ dmesg | grep -i watchdog [0.763148] bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer [1.997557] systemd [1]: Hardware watchdog 'Broadcom BCM2835 Watchdog timer', version 0 [2.000728] systemd [1]: Réglez le watchdog matériel sur 10s .  

Si vous voyez Set hardware watchdog sur 10s , vous êtes prêt.

Le meilleur moyen que j'ai trouvé pour vérifier que le chien de garde fonctionne est de surcharger le système. J'ai fait cela avec une "bombe de fourche", qui saturera complètement le système avec des fourches de processus d'ordures. Si vous exécutez cela, le Pi ne répondra plus et le chien de garde devrait démarrer. Votre système devrait être à nouveau opérationnel après environ une minute:

 : () {: |: &} ;: 

Collez cela dans un shell et votre système sera arrêté. Vous avez été averti.

Pour plus d'informations sur le système de surveillance intégré à Systemd, consultez le site Web de l'auteur.

Merci beaucoup pour les conseils. J'entends le chien de garde depuis longtemps mais je ne l'ai jamais essayé, car aucune nécessité, jusqu'à présent, de construire un jardin sur le toit intelligent loin de la maison (en fait, à 50 pieds au-dessus de la maison). Une autre raison n'a pas essayé parce que les tutoriels ne sont pas adaptés aux débutants. Au démarrage de Rpi1 il y a des années, j'ai trouvé les commandes de terminal très effrayantes (il m'a fallu plus de trois heures pour télécharger un zip (tar en fait) et l'extraire, mais je ne savais pas où trouver les fichiers extraits!) Maintenant, je trouve les commandes de terminal pas si effrayant, mais parfois très efficace, même si j'aime toujours les commandes du terminal Win PowerShell, ...
Et le conseil au début de votre réponse de première lecture de ce qu'est un chien de garde est très bon. Je ne savais pas que watchdog est en fait "watchdog TIMER" en bref. C'est important car si je sais que c'est une minuterie à l'avance, je peux mieux comprendre les choses. Et comme d'habitude, j'ai commencé avec Wiki, qui est toujours une bonne lecture pour les débutants. Maintenant, je sais que le chien de garde est en fait une sorte de matériel installé à côté du Rpi. Donc même Rpi gâche les choses, le gars extérieur peut venir à la rescousse (ou "kick in"?). La lecture du Wiki m'a fait savoir que «kick in» n'est pas de l'argot, mais un terme technique.
Je ne savais pas non plus ce qu'est un "démon". Quand j'étais enfant, j'ai lu la Bible que le démon est un méchant, donc les programmeurs justes comme moi ne devraient pas utiliser de démons, sinon je pourrais devenir l'enfer. Mais alors Wiki me dit qui les gars du MIT / UNIX ont inventé le nom et pourquoi il épelle «démon» et non démon. Cela clarifie également que les démons peuvent être bons et que même le juste Socrate possède un démon. Quoi qu'il en soit, j'ai fini de lire Wikis, et maintenant prêt à commencer vos tutoriels, :)
J'ai donc suivi votre tutoriel très détaillé sur le chien de garde et j'ai trouvé que tout était OK au point de régler le chien de garde à 10 secondes. La prochaine étape consiste à essayer une bombe à fourche, peut-être tard ce soir ou demain.
Merci d'avoir suggéré de l'appeler une «minuterie de surveillance». J'ai fait la modification
Je crois que vous faites référence à des «démons» qui sont considérés comme mauvais / mauvais. D'un autre côté, «démon» - avec un «a» - est bienveillant et provient de la mythologie grecque. Les processus sur un système qui s'exécutent en arrière-plan sont appelés démons car ils sont comme des fantômes. Ils travaillent sans être vus. https://en.wikipedia.org/wiki/Daemon_(classical_mythology)
Oui, "Watch Dog Timer" raconte l'histoire plus en détail. Mais l'idée du «chien de garde» me laisse toujours perplexe. L'article suivant me donne plus de détails, mais je trouve toujours l'idée de «donner un coup de pied au chien» déroutante. Je n'en ai jamais entendu parler auparavant. Je suppose que j'ai raté un point quelque part. Je pense que c'est comme la récursivité, qui est simple UNIQUEMENT après avoir compris le "truc". https://www.microcontrollertips.com/whats-watch-dog-timer-wdt-faq/
Je ne sais pas d'où vient le terme, mais dire que quelque chose «entre en jeu» est une autre façon de dire que quelque chose est déclenché ou qu'un événement se produit. Dans le cas du chien de garde, quand il entre en action, cela signifie que le cycle d'alimentation prend effet, généralement parce que la minuterie n'a pas été rafraîchie, ce qui suggère qu'il y a un problème.
Merci beaucoup pour votre explication détaillée de l'expression «coup de pied». J'ai été une fois confus parce que j'ai lu un autre article mentionnant l'approche de «continuez à donner des coups de pied au chien, sinon cela vous mordra». Cette approche continue de donner un coup de pied au chien est en fait utilisée dans l'algorithme de surveillance Rpi, en ce sens que si le chronomètre du chien de garde est réglé sur 10 secondes, Rpi devrait continuer à redémarrer le chronomètre (donner un coup de pied au chien avant la fin de son chronomètre) peut-être toutes les 8 secondes. Une autre confusion pour les débutants comme moi est la suivante: / pour continuer, ...
Salut @berto, Une autre confusion est la suivante. Rpi redémarre le minuteur, peut-être toutes les 8 secondes, mais il ne surveille pas le minuteur pour voir si 10 secondes s'écoulent. C'est le chien de garde qui «surveille» la minuterie, et lorsque la minuterie de 10 secondes se termine, le matériel de surveillance réinitialise le Rpi. En d'autres termes, ce n'est pas le Rpi qui "déclenche" une réinitialisation, mais le circuit de réinitialisation matérielle du chien de garde "entre en action" (ou se déclenche, si vous le souhaitez) pour réinitialiser le Rpi.
Salut @berto, Je viens de mettre à niveau mon Rpi3B + stretch vers Rpi4B buster. J'ai à nouveau suivi vos instructions très détaillées pour régler la minuterie de la montre de 10 secondes et utiliser la bombe à retardement pour vérifier que tout fonctionne. En d'autres termes, vos instructions sont bonnes pour l'étirement Rpi3 et le buster Rpi4. Encore merci de ton aide.
Milliways
2019-06-14 13:21:10 UTC
view on stackexchange narkive permalink

La puissance de coupe est une méthode de force brute et comporte des risques.

La solution conventionnelle aux problèmes de verrouillage est d'utiliser un chien de garde.

Il existe un chien de garde du matériel BCM; Si vous souhaitez démarrer le chien de garde matériel, incluez dtparam = watchdog = on dans /boot/config.txt

En et en soi, cela ne fait pas grand-chose, bien qu'il devrait redémarrer le système si pas "kické" régulièrement. Vous pouvez écrire du code qui ouvre / dev / watchdog pour le lancer.

Il existe également un démon watchdog que vous pouvez configurer pour activer le watchdog; vous devriez pouvoir commencer avec sudo systemctl enable watchdog

PS Par ailleurs, si vous voulez poursuivre l'approche de la force brute - ne vous inquiétez pas de couper l'alimentation - tirez simplement sur la broche de réinitialisation (étiqueté RUN ) faible. Cela équivaut à éteindre puis rallumer.

tlfong01
2019-06-14 13:27:10 UTC
view on stackexchange narkive permalink

Question[

Le gel des Rpi à distance de temps en temps. Comment les réveiller?

Réponse

Mise à jour 2019jul27hkt1406

J'ai récemment mis à jour mon Rpi3B + stretch vers Rpi4B buster et encore une fois j'ai suivi le tutoriel de @ berto pour régler la minuterie du chien de garde. J'ai trouvé que tout fonctionnait aussi bien qu'avant. En d'autres termes, aucune modification n'est nécessaire dans le didacticiel de @ berto lors de la mise à niveau vers Rpi4.

La dernière fois, je ne savais rien de la minuterie de surveillance. Il m'a donc fallu plus de 3 heures pour google pour tout comprendre à l'intérieur (enfin, presque à l'envers). Cette fois, je sais ce qui se passe et toutes les astuces Linux, donc il ne m'a fallu que quelques minutes pour terminer le tutoriel de @ berto.

Mises à jour 2019jun18

Après quelques réflexions, j'ai conclu que ma réponse touche à sa fin. Ma conclusion est que le tutoriel de surveillance et la suggestion d'expérimentation de @ berto sont bons, et sa réponse est la vraie réponse à la question du PO.

J'ai fait son expérience suggérée avec succès, vérifié les résultats par le programme forkbomb, et après beaucoup de recherches sur Google et de lecture pendant plus de 10 heures, je pense que j'ai finalement bien compris l'idée de l'horloge de surveillance.

Auparavant, je pensais à tort que je devais encore apprendre à régler la minuterie sur 10 secondes ou plus. Mais comme le dit @berto, il suffit de régler 10 secondes. J'ai également lu que je pouvais régler la minuterie sur 16 secondes et que la valeur par défaut du chien de garde Linux était même d'une minute. Mais ce n'est pas critique.

J'ai supprimé toutes les longues notes de lecture dans les annexes, pour raccourcir la réponse. Je suggérerais aux débutants de ne pas essayer de comprendre tous les détails du chien de garde, sans parler du démon SystemD beaucoup plus compliqué, car notre vie est courte et ces choses système sont trop compliquées pour les non professionnels.

I souhaite ajouter deux points pour terminer ma réponse.

(1) Il existe de nombreuses raisons pour lesquelles un Rpi se bloque dans quelques jours (mais généralement pas des mois). Souvent, ce n'est pas la faute du programme d'application, mais parce que les pilotes ou les fonctions de la bibliothèque créent trop de déchets, par exemple. sockets créés, utilisés mais pas correctement éliminés. Si c'est le programme d'application lui-même qui fait des déchets, le programme peut faire un "garbage collection" et le problème est résolu. Mais il est difficile de supprimer les sockets garbage qui ne sont pas générés par le programme d'application. Une minuterie de surveillance est donc utile ici.

(2) D'autres moyens d'éviter trop de déchets en utilisant les ressources incluent le redémarrage de temps en temps par logiciel ou matériel. Je pense que le redémarrage tous les matins et l'utilisation d'une alimentation commutable par logiciel pour réinitialiser le système ajoutent une autre couche de protection. Et n'utiliser qu'un seul Rpi n'est pas très sûr. L'utilisation de deux Rpi comme chien de garde l'un de l'autre (en utilisant URT pour le passage de messages, par exemple) ajoute une couche de protection supplémentaire. Une autre méthode que je n'ai pas explorée consiste à utiliser les prises Wifi ESP8266. J'espère pouvoir essayer ça plus tard.

C'est la fin de ma réponse. Bravo.

Mises à jour 2019jun17

J'ai donc essayé la bombe à fourche. Le système a redémarré après l'exécution du programme, en environ 15 secondes .

fork bomb test results

Mises à jour 2019jun16

J'ai trouvé que le programme de bombe à fourche de @ berto est un peu effrayant pour les débutants. J'apprends donc à Bash pour découvrir ce que fait cette bombe à fourche. Fondamentalement, il s'agit simplement d'une fonction nommée ":", qui est définie comme une fonction s'appelant elle-même deux fois, bifurquant ainsi indéfiniment, aussi vite que les lapins croissent de manière exponentielle, utilisent toutes les ressources et plantent Linux.

fork bomb

J'ai également trouvé la version intéressante suivante de forkbomb utilisant des symboles Unicode:

() {| &};

Mises à jour du 14/15 2019

@thesnow suggère une très belle approche en couches utilisant une prise intelligente. Je pense que la prise intelligente ou les trucs IoT intelligents sont la voie à suivre. Cependant, je ne suis pas un débutant si intelligent dans les trucs intelligents, même si je suis désireux d'apprendre. Je vais donc acheter une prise intelligente, faire des recherches et améliorer ma réponse par la suite. Pour l'instant, j'ai ajouté des ressources d'apprentissage connexes dans la section de référence ci-dessous.

J'ai trouvé la suggestion de @ berto d'utiliser le minuteur de surveillance matérielle de Rpi également très bonne. Je n'ai jamais joué avec des trucs de chien de garde auparavant. Alors je vais l'essayer maintenant. Les instructions de @ berto sont très détaillées, mais toujours un peu difficiles pour moi, car je ne connais pas très bien la signification des commandes "grep" et "dmseg". J'ai donc cherché sur Google et pris des notes de lecture dans les annexes ci-dessous. Ensuite, j'ai suivi la suggestion de @ berto, et j'ai eu un peu de mal à terminer la partie 1. Je n'ai pas encore redémarré, car j'ai besoin de faire une pause pour digérer les choses. Quoi qu'il en soit, voici la capture d'écran.

watchdog_test_2019jun1501

J'ai redémarré et j'ai obtenu le dmesg suivant:

watchdog 3

Je pense que je vais trop vite et que je dois maintenant faire une pause pour étudier d'abord plus de choses Linux, comme systemd, avant de revenir pour continuer le test sur watchdog.

systemd architecture

/ pour continuer, ...

La réponse

J'ai le même problème. Je construis un jardin sur le toit avec quelques Rpi chacun se connectant à divers capteurs, relais et solénoïdes sans fil (BlueTooth, Wifi). Il y a deux énormes moteurs à proximité, contrôlant de grands réservoirs d'eau et des ascenseurs. Les moteurs génèrent des interférences électromagnétiques et gèlent de temps en temps les objets électroniques à proximité.

Mon plan est d'utiliser des blocs d'alimentation commutables par logiciel (blocs d'alimentation) pour éteindre / rallumer les Rpi et autres appareils gelés (les appareils Bluetooth se bloquent le plus souvent. Le BlueTooth et les autres petits appareils n'ont pas de commande de réinitialisation logicielle ou de réinitialisation matérielle broche, donc éteindre / allumer leur 5V Vcc est un moyen rapide et sale, mais toujours sûr). En bref, les Rpi se regardent régulièrement et leurs appareils et POR (Power On Reset) tout gars tombé en sommeil.

Bien sûr, je peux également utiliser une broche GPIO pour déclencher le matériel Rpi sur la broche de réinitialisation de la carte. Mais je suis trop paresseux pour faire du câblage supplémentaire, et trop pauvre amateur pour me permettre des appareils système non-stop de qualité professionnelle / industrielle tels que le SwitchDoc Labs Dual WatchDog Timer (voir référence ci-dessous)

Je modifie DC- ordinaire. Alimentation CC (12 V à 5 V) afin que toutes les broches GPIO Rpi ou MCP23x17 puissent allumer / éteindre la puce de régulateur de tension LM2956 / LM2947 du bloc d'alimentation. (Le LM2941 peut être utilisé pour les commutateurs de courant 1A, LM2596 pour le bloc d'alimentation 5V 3A. La broche marche / arrêt est également connectée à un bouton-poussoir, pour les tests de mise sous / hors tension manuelle.)

En fait, chacun de mes 7 Le Rpi3B + est connecté à un module d'horloge temps réel DS3231 bon marché qui a une broche d'interruption matérielle pour réinitialiser le bloc d'alimentation, le Rpi ou d'autres périphériques.

Chaque fois que cela est possible et pratique, j'attache toutes les broches de réinitialisation des appareils ensemble (en supprimant certaines des résistances de rappel, afin de ne pas surcharger la broche GPIO).

Maintenant, le DS3231 externe Le RTC réveille tout le monde le matin et éteint les lumières à minuit, pour que tout le monde se couche.

software switchable PSU

software switch PSU

software switch

Références

1. PSU / Commutateurs actuels réinitialisables par logiciel basé sur LM2596 / LM2941 - Discussion Rpi StkEx

Discussion sur le chien de garde du matériel Rpi

SwitchDoc Labs Dual WatchDog Minuterie

ATXRaspi R3 - LowPowerLab 14,95 $ US

Un ESP8266 piratable dans une prise intelligente Vous voulez jouer avec l'ESP8266 sans vous soucier de le matériel? - Mat 2017aug06

Reverse Engineering 101 de l'écosystème Xiaomi IoT HITCON Community 2018 - Dennis Giese

Prise WiFi Xiaomi + application MiHome 21 307 vues

espHome [ESP8266 / ESP32]

AliExpress WiFi Smart Plug

Appareil intelligent -Wikipedia

Ouvre-porte de garage WiFi avec ESP8266 - Ray Wang 2016mai13 56335 vues

Annexes

Annexe A - Notes de lecture du WatchDog Timer

Watchdog timer -Wikipedia

Linux Page WatchDog Man

Linux Watchdog - Tests généraux

Annexe B - Notes de lecture des commandes Linux grep et dmesg

Annexe C - Références systemd

Systemd Systemd System and Service Manager - FreeDeskTop

systemd - Wikipédia

Annexe D - Références sur les bombes à fourche et à fourche

Fork (appel système) Wikipédia

Annexe E - Notes d'apprentissage Bash

Une si bonne réponse! Merci aussi pour les photos. Heureux que vous ne l'ayez pas pris uniquement pour cette question :-D Donc, je suppose que ce dont j'ai besoin est le bloc d'alimentation LM25966S pour le connecter au GPIO comme vous l'avez dit. Je vais essayer!!! Bon que j'ai encore mon vieux fer à souder ...
@Jurudocs Merci pour vos gentils mots. J'ai coupé et collé et modifié mes anciennes réponses à votre question, donc cela ne m'a pas pris beaucoup de temps. Je suis un amateur de blocs d'alimentation et j'ai bricolé des blocs d'alimentation en utilisant des puces LM2596 et des bobines d'inductance, etc. À propos, pour compliquer le bloc d'alimentation LM2596, vous n'avez pas besoin de tester en utilisant Rpi GPIO. Vous pouvez simplement tester à la main! :) Bonne chance!
J'ai remarqué que vous avez mentionné la lecture sur Systemd. Bien que je vous recommande vraiment de le faire, car c'est un élément important du fonctionnement des systèmes Linux modernes, comprendre pleinement que cela prendra beaucoup de temps et qu'il n'est pas nécessaire d'essayer le chien de garde. :)
@berto, Je conviens qu'il me faudra peut-être beaucoup de temps pour comprendre le SystemD compliqué. Comme le dit Poettering: "[systemd] n'a jamais fini, jamais terminé, mais suit les progrès de la technologie". Je me souviens d'Oliver Heaviside, disant: "Dois-je refuser de manger parce que je ne comprends pas parfaitement le mécanisme de la digestion?" - https://en.wikiquote.org/wiki/Oliver_Heaviside Je vais donc oublier systemd maintenant et revenir à watchdog. En fait, je dois d'abord apprendre Bash, avant de pouvoir comprendre l'étrange script Bash de Fork Bomb.
La ligne de bombe à fourche est assez simple une fois que vous comprenez ce que vous regardez. C'est une fonction nommée `:` qui s'appelle elle-même de manière récursive et met une copie d'elle-même en arrière-plan qui s'appelle également elle-même de manière récursive. La page Wikipédia que vous avez dans vos notes explique cela plus en détail.
Eh bien, je n'étais pas conscient que le symbole ":" puisse être un nom de fonction. Au début, je pensais à tort que la fonction n'avait pas de nom, un "lambda", en d'autres termes. Je suppose que plus de 90% des visiteurs de ce forum ne comprennent pas ce qu'est l'idée de récursivité, sans parler de la double récursivité utilisée ici. La récursivité en mathématiques est un algorithme qui prendrait fin et le problème serait résolu. Dans ce cas, il n'y a pas de fin. Il est incorrect et trompeur d'appeler la fonction récursive. La fonction s'appelant elle-même, n'est pas la récursion au sens plein, ou selon la définition mathématique rigoureuse.
J'ai trouvé votre ancienne réponse (il y a 6 ans!) Ici: https://raspberrypi.stackexchange.com/questions/3732/watchdog-daemon-not-restarting-pi-after-fork-bomb Les choses sont plus compliquées que je ne le pensais, je passerai donc plus de temps avant de désamorcer la bombe. :)
J'ai tout vérifié. Alors j'ai exécuté la bombe à fourche. Comme prévu, le système a redémarré en 15 secondes environ. Pour résumer, j'ai suivi vos beaux tutoriels et j'ai trouvé que tout était bon, même si je ne comprends pas très bien ce qui se passe. J'ai besoin de passer plus de temps pour comprendre vos commandes, avant de savoir comment régler la minuterie du chien de garde.
Wildbill
2019-06-15 00:47:34 UTC
view on stackexchange narkive permalink

J'ai pas mal de Pis. Tous, sauf un, ont fonctionné parfaitement. L'enfant à problème plantait périodiquement et ne se remettrait jamais après une panne de courant sans être à nouveau redémarré. Je l'ai fait redémarrer tous les soirs via cron et cela m'a aidé un peu.

Ce qui a résolu le problème était de prendre la carte SD et le matériel du capteur et de les mettre dans un autre Pi. Il a fonctionné sans erreur depuis. Peut-être avez-vous aussi un problème matériel.

Je n'ai pas compris votre deuxième paragraphe sur le problème matériel. Vouliez-vous dire que la carte SD et le capteur ont causé tous les problèmes et leur remplacement a résolu le problème?
Non, le Pi lui-même était le problème. J'en avais une de rechange, j'ai donc transféré la carte SD et les capteurs sur la pièce de rechange et l'ai utilisée à la place de l'original. Aucun problème depuis.
Je vois. C'est donc toujours une bonne idée d'avoir un Rpi de rechange pour le dépannage des swap. Le PO devrait peut-être également en tenir compte.
thesnow
2019-06-15 01:15:35 UTC
view on stackexchange narkive permalink

Si vous avez le Wi-Fi et que vous avez juste besoin d'éteindre / de rallumer, vous pouvez également envisager d'utiliser une prise intelligente. Amazon en fabrique un pour ~ 25 $, vous pouvez l'allumer / l'éteindre à distance et également configurer des routines de minuterie si cela est préférable. J'en ai quelques-uns depuis plusieurs mois et ils sont assez fiables. Vous n'avez pas besoin d'un Echo ou de tout autre appareil dédié. J'utilise mon téléphone intelligent. Amazon Smart Plug

Modifier: je me rends compte que cela ne fournit pas de solution à la première partie de la question, mais si j'avais la perspective de 2 heures de route si quelque chose se passait faux je considérerais une approche par couches.

, J'apprécie beaucoup votre suggestion d'une approche en couches, avec une prise intelligente au niveau de la couche supérieure. En fait, depuis quelques mois, j'essaye de bricoler une prise intelligente basée sur le contrôleur WiFi ESP8266. Cependant, j'ai trouvé que l'ESP8266 avec NodeMCU Lua a une courbe d'apprentissage très raide. Il a fallu au débutant, c'est-à-dire, plus de 100 heures pour faire clignoter une LED (contre moins d'une heure pour écrire un programme blinky Arduino ou Rpi) Alors j'ai malheureusement abandonné et décide maintenant de tricher en achetant une prise intelligente ESP8266 XiaoMi et en la modifiant . Je vais bientôt ajouter votre suggestion à ma réponse. Merci encore! :)


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...