Raspberry Pi vatten larmsystem (6 / 10 steg)
Steg 6: Aktivera den inbyggda vakthund
Eftersom Pi kommer att köras oövervakad i våra program, är det viktigt att det startas automatiskt om efter det plötsligt frös av någon anledning.
Lyckligtvis har den Raspberry Pi BCM2835 SoC (system på kortet) Järnvaror-baserat "vakthund" ombord. Innebörden av en vakthund är väl förklaras här. Det är i grunden en timer som räknar från vissa initiala värdet till noll. När noll nås, förstår watchdog timer att systemet hängs upp och återställer det.
Watchdog timer måste därför uppdateras regelbundet med ett nytt värde till stoppa den från att nå noll och orsakar en återställning. Med andra ord har RasPi att mata sin vakthund regelbundet med ett hjärtslag av programvaran körs. När RasPi är låst upp gör en viss uppgift och därmed kan inte uppdatera watchdog timer något mera, oundvikligen timern når noll och en återställning kommer att inträffa.
En daemon krävs för att skicka hjärtslag. Vi använder inte Linux ready-to-use watchdog-daemon men en python wrapper till gränssnittet med Linux watchdog-demonen som beskrivs här. Som ger oss möjlighet att aktivera och avaktivera watchdog-demonen och initiera hjärtslag från vår python skript.
Vi ladda watchdogdev extension module for Python, dvs python wrapper:
CD/root
lämplig-få installera python-dev (var redan gjort när du ställer in GPIO av Pi)
lämplig-få installera python-pip
PIP installera watchdogdev
Omstart av systemet och lastning kärnmodulen vakthund med följande kommandon
omstart
modprobe bcm2708_wdog
kommer att skapa filen "watchdog" i mappen "/ dev".
Vi måste lägga till en rad "bcm2708_wdog" filen "/ etc/modules" för att låta RasPi ladda modulen nästa gång systemet stövlar.
nano/etc/modules (Lägg till raden "bcm2708_wdog")