Raspberry Pi och Arduino: bygga tillförlitliga system med WatchDog timer (5 / 6 steg)
Steg 5: Lägga till en extern WatchDog Timer i ditt projekt
Sammanfattning: I steg 5 av detta Instructable ser vi till att upprätta en extern WatchDog Timer med Arduino och även med Raspberry Pi. Vi använder SwitchDoc Labs dubbla WatchDog Timer, vilket är ett bra val för en extern WatchDog Timer i många system. Slutligen tittar vi på verkliga problem av RFI (radiofrekvensstörningar), som verkligen träffar rutan Projektet Curacao .
Externa WatchDog timer för Raspberry Pi/Arduino system
En lösning på alla potentiella problem och problem med den inre WatchDog Timers diskuteras i de 4 stegen av detta Instructable är att använda en Extern WatchDog Timer. Som vi var att utforska denna uppsättning problem med Projektet Curacao, beslutade vi att bygga vårt eget yttre WatchDog timer. Utforma vår egen timer ger oss en fast uppsättning parametrar inte beroende av andra sofware processer (i Raspberry Pi fallet) och vilken Arduino vi använder (i det andra fallet). Och sedan det fanns betydande makt system frågor som projektet Curacao är sol och vind drivs och har brownout frågor (hey, det blir molnigt i tropikerna för!).
Koden för "Klappa hunden" i Python och C att "klappa hunden" eller utlösa Externa WatchDog Timer, måste du använda följande kod. Eftersom linjen skall vara hög impedans-läge och sedan bara tas till marken när du klappa hunden, koden för Arduino ser ut så här:
#define RESET_WATCHDOG1 9
void ResetWatchdog1()
{
pinMode (RESET_WATCHDOG1, OUTPUT);
Delay(200);
pinMode (RESET_WATCHDOG1, indata);
Serial.println ("Watchdog1 Reset");
}
Och i Python för Raspberry Pi, koden ser ut så här:
#define RESET_WATCHDOG1 18
def resetWatchDog():
GPIO.setup (RESET_WATCHDOG1, GPIO. OUT)
GPIO.output (RESET_WATCHDOG1, falskt)
Time.Sleep(0.200)
GPIO.setup (RESET_WATCHDOG1, GPIO. I)
Du sätta dessa funktioner i din kod så att du klappa hunden oftare än Wto. WTO: S definieras som maximala tiden WatchDog Timer kan räkna innan det behöver återställas (med andra ord, när det kommer att starta om datorn om datorn går bort.
Du kan hämta hela specifikationen för SwitchDoc Labs dubbla WatchDog Timer här: DualWatchDog_101914-V1.3.
Ställa in Wto på SwitchDoc yttre WatchDog Timer
Du kan justera Wto från cirka 220 sekunder till 30 sekunder.
Med en extern WatchDog Timer med Arduino
dubbla vakthund och ArduinoUsing en extern WatchDog Timer med Raspberry Pi
Dubbla vakthund med Raspberry Pi B +
Dubbla vakthund med Raspberry Pi B (och A)
Radiofrekvensstörningar - verkliga Problem
Det problemet upptäckte vi i projektet Curacao med RFI (radiofrekvensstörningar) var när Amateur Radio folk drivs upp deras världsomspännande radiotävling i oktober och November på 28MHz. Vår låda är ansluten till ett radiotorn i Curacao. Och anslutna till en 15 meter som bara råkar vara ca 3 våglängder av 28MHz, vilket gör en mycket bra antenn. Saker såg bra fram till radio tävlingen!
Våglängden för 28MHz radiovågor är ca 5 meter. Vi hade en 15 meter lina. Inte en dålig antenn för mottagning av 28MHz signaler. Antar att det är ca 12 meter effektiva vi har en trevlig 1/2 våglängd (2,5 våglängder faktiskt) stirrade på ingång till Arduino. Och WeatherRack (sett i fjärran nedan) är ansluten direkt till tornet där 28MHz signal överförs.
Nya solpaneler på toppen Curacao i rutan Project - WeatherRack i bakgrunden
Kan vara ett problem, för säker. Vi skickade frågor till Radio gudarna om vilken typ av spänningar kunde jag förväntar mig. En Gud (Geoff H.) svarade, säger upp till 2V. Det är ganska nära 2,5 volt som startar utlöser saker.
Andra Gud (Jeff M.) visade att det kunde vara ända upp till 3V och att tävlingen i helgen inte var bara på 28 MHz. Det var en all-band-tävling, på 160, 80, 40, 20, 15 och 10 meter band.
SwitchDoc dubbla WatchDog Board installerat i projektet Curacao
Under dagens ljusa timmar på helgen tävling varit överföra på 10m (28,3 – 29,0 MHz), 15m (21,2 – 21,4), och 20m (14.15 – 14,3 MHz). Under natten timmar på helgen tävling, överföring har varit på 160m (~1.8 – 1.9 MHz), 80m (~3.6-3.9 MHz), 40m (~7.05-7.25 MHz) och 20m (~14.15-14.3 MHz).
Massor av små signaler springer runt vår låda med stora nya tråd (antenn) ansluten.
Denna tävling tog projektet Curacao ner för räkning.
Ännu en anledning att använda en Extern WatchDog Timer eftersom RFI satte Arduino i en stat som krävs en på och av power reset.