1

I have connected a fan to my raspberry pi with a transistor that sits on pin 5 ( GPIO 5 ).' I followed an online "guide" to make it.

I would like to make a script that makes it run during the day, say from 9 in the morning to 9 in the evening.

I want to use python and the GPIO library, but how would I set it up?

goldilocks
  • 60,325
  • 17
  • 117
  • 234
Nicolaid
  • 11
  • 1
  • 2

1 Answers1

2

I'd suggest using cron to schedule the fan's on/off tasks.

Scheduling tasks can be managed by the crontab command.

shell ~> crontab -e

Add each on/off task. They would look something like:

0  9 * * * /path/to/your/python/script.py on
0 21 * * * /path/to/your/python/script.py off

The actual python script would be straight forward. Import sys to evaluate the on/off argument, and the GPIO library to work with pin 5 (refer to GPIO reference to map correct pin number).

#!/usr/bin/env python
import sys
import RPi.GPIO as GPIO

# Identify which pin controls transistor
FAN_PIN = 4

# Set pin 4 as output
GPIO.setmode(GPIO.BCM)
GPIO.setup(FAN_PIN, GPIO.OUT)

# Get what action to take
action = sys.argv.pop()

if action == "on" :
   print "Turning fan on"
   GPIO.output(FAN_PIN, GPIO.HIGH)
elif action == "off" :
   print "Turning fan off"
   GPIO.output(FAN_PIN, GPIO.LOW)
else :
   print "Don't know what to do"
emcconville
  • 450
  • 3
  • 11