Is there something I don't know about certain imports at startup?
What works:
I modify `rc.local` by adding `python /home/pi/myscript.py &` near the end of the file.
where myscript.py =
Code: Select all
#!/usr/bin/python3
import RPi.GPIO as GPIO #for GPIO naming convention
import os #for power circuit
import serial #for reading serial port on USB
import time
import threading
def power_button():
GPIO.setmode(GPIO.BCM)#set to GPIO Values
GPIO.setwarnings(False)
GPIO.setup(4,GPIO.OUT)#relay coil
GPIO.setup(22,GPIO.OUT)#power LED
GPIO.setup(27,GPIO.IN)#power button sense
GPIO.output(4,GPIO.HIGH)#turn on coil
GPIO.output(22,GPIO.HIGH)#turn on power LED
powerButton = GPIO.input(27)
while powerButton ==1: #check for change, then shutdown
powerButton = GPIO.input(27)
#change occured, as program left the while loop, proceed below
GPIO.output(22,GPIO.LOW)#turn off power LED
os.system('sudo shutdown -h now')
#power button thread
thread1 = threading.Thread(target=power_button)
thread1.start()
What doesn't work:
When I add my temperature sensor imports, it will no longer start automatically, but will run fine if I run manually after the pi boots up.
myscripy.py with more imports added:
Code: Select all
#!/usr/bin/python3
import RPi.GPIO as GPIO #for GPIO naming convention
import os #for power circuit
import serial #for reading serial port on USB
import time
import threading
import adafruit_sht31d #sht temphumid sensor
import board #sht temphumid sensor
import busio #sht temphumid sensor
import adafruit_sht31d #sht temphumid sensor
import requests #for posting
# Create library object using our Bus I2C port for SHT31 temp humid sensor
i2c = busio.I2C(board.SCL, board.SDA)
sensor = adafruit_sht31d.SHT31D(i2c)
def power_button():
GPIO.setmode(GPIO.BCM)#set to GPIO Values
GPIO.setwarnings(False)
GPIO.setup(4,GPIO.OUT)#relay coil
GPIO.setup(22,GPIO.OUT)#power LED
GPIO.setup(27,GPIO.IN)#power button sense
GPIO.output(4,GPIO.HIGH)#turn on coil
GPIO.output(22,GPIO.HIGH)#turn on power LED
powerButton = GPIO.input(27)
while powerButton ==1: #check for change, then shutdown
powerButton = GPIO.input(27)
#change occured, as program left the while loop, proceed below
GPIO.output(22,GPIO.LOW)#turn off power LED
os.system('sudo shutdown -h now')
#power button thread
thread1 = threading.Thread(target=power_button)
thread1.start()