Stap 5: Een externe WatchDog-Timer aan uw Project toevoegen
Samenvatting: In stap 5 van dit Instructable kijken we naar het opzetten van een externe WatchDog-Timer met de Arduino en ook met de Raspberry Pi. Wij gebruiken de SwitchDoc Labs dubbele WatchDog-Timer, die is een goede keuze voor een externe WatchDog-Timer in veel systemen. Tot slot, we kijken naar een probleem van de echte wereld van RFI (Radio Frequency Interference), die echt hits het vak Project Curacao .
Externe WatchDog Timers voor Raspberry Pi/Arduino systemen
Een oplossing voor alle potentiële problemen en problemen met de interne WatchDog Timers besproken in de vorige 4 stappen van dit Instructable is het gebruik van een Externe WatchDog-Timer. Als wij waren het verkennen van deze set van problemen met Project Curacao, besloten we te bouwen onze eigen externe WatchDog-timer. Ontwerpen van onze eigen timer geeft ons een vaste set van parameters niet afhankelijk van andere processen sofware (in het geval van de Raspberry Pi) en die Arduino gebruiken we (in het andere geval). En dan waren er de aanzienlijke macht systeemproblemen als Project Curacao Solar en Wind aangedreven en brownout kwesties heeft (hey, het krijgt bewolkt in de tropen ook!).
De Code voor "Klopte The Dog" in Python en C te "aaien, de hond" of leiden tot de Externe WatchDog-Timer, u moet de volgende code te gebruiken. Aangezien de regel moet worden gehouden in hoge impedantie-modus en vervolgens zojuist genomen aan de grond wanneer u de hond aaien, wordt de code voor de Arduino ziet er als volgt:
#define RESET_WATCHDOG1 9 void ResetWatchdog1() { pinMode(RESET_WATCHDOG1, OUTPUT); delay(200); pinMode(RESET_WATCHDOG1, INPUT); Serial.println("Watchdog1 Reset"); }
En in Python voor de Raspberry Pi, ziet de code er als volgt uit:
#define RESET_WATCHDOG1 18 def resetWatchDog(): GPIO.setup(RESET_WATCHDOG1, GPIO.OUT) GPIO.output( RESET_WATCHDOG1, False) time.sleep(0.200) GPIO.setup(RESET_WATCHDOG1, GPIO.IN)
Plaatst u deze functies in uw code zodanig dat u de hond vaker dan de Wto aaien. WTO wordt gedefinieerd als de maximale hoeveelheid tijd die de WatchDog-Timer tellen kunt vooraleer op nood voor opnieuw worden ingesteld (met andere woorden, wanneer het opnieuw van de computer opstarten zal als de computer gaat weg.
U kunt de complete specificatie voor de SwitchDoc Labs dubbele WatchDog-Timer hier downloaden: DualWatchDog_101914-V1.3.
Instellen van de Wto op de SwitchDoc extern WatchDog-Timer
U kunt Wto aanpassen van ongeveer 220 seconden tot 30 seconden.
Met behulp van een externe WatchDog-Timer met de Arduino
Dual waakhond en ArduinoUsing een externe WatchDog Timer met de Raspberry Pi
Dual WatchDog met Raspberry Pi B +
Dual WatchDog met Raspberry Pi B (of A)
Radio Frequency Interference - een echte wereld-probleem
Het belangrijke probleem dat we in Project Curacao met RFI (Radio Frequency Interference ontdekt) was toen de Amateur Radio mensen hun wereldwijd radio-wedstrijd in oktober en November op 28MHz aangedreven. Ons vak is gekoppeld aan een radiotoren in Curacao. En verbonden met een 15 meter lijn die toevallig ongeveer 3 golflengten van 28MHz, een zeer goede antenne te maken. Zag het er goed tot de radio-wedstrijd!
De golflengte van de radiogolven 28MHz is ongeveer 5 meter. We hadden een 15 meter lijn. Niet een slechte antenne voor de ontvangst van 28MHz-signalen. Ervan uitgaande dat het ongeveer 12 meter effectief hebben we een mooie golflengte van 1/2 (2,5 golflengten eigenlijk) staren naar de ingang aan de Arduino. En de WeatherRack (gezien in de verte hieronder) is rechtstreeks verbonden met de toren waar de 28MHz signaal wordt verzonden.
Nieuwe zonnepanelen op de top van het vak Project Curacao - WeatherRack op achtergrond
Zou je zeker een probleem. We vragen gestuurd aan de goden van de Radio over wat voor soort spanningen kan ik verwachten. Één God (Geoff H.) antwoordde, zeggende tot 2V. Dat is vrij dicht bij 2.5 volt, die zal beginnen triggering dingen.
De tweede God (Jeff M.) aangegeven dat het helemaal tot 3V zijn kon en dat de wedstrijd in het afgelopen weekend niet alleen maar op 28 MHz was. Het was een wedstrijd van de all-band, op de 160, 80, 40, 20, 15 en 10 meter bands.
SwitchDoc Dual WatchDog Board geïnstalleerd in Project Curacao
Overdag in het weekend van de wedstrijd, zal verzenden zijn op 10m (28.3 – 29,0 MHz), 15m (21.2-21,4), en 20m (14.15:-14.3 MHz). Tijdens de nachtelijke uren in het weekend van de wedstrijd, toezending zal geweest zijn op 160m (~1.8-1.9 MHz), 80m (~3.6-3.9 MHz), 40m (~7.05 – 7,25 MHz) en 20m (~14.15-14.3 MHz).
Allerlei kleine signalen lopen rond onze doos met de grote nieuwe draad (antenne) aangesloten.
Deze wedstrijd vond het Project Curacao neer voor de telling.
Nog een andere reden om het gebruik van een Externe WatchDog-Timer omdat de RFI brengen de Arduino in een staat die vereist een in- en uitschakelen power reset.