Skip to main content
edited tags
Link
Steve Robillard
  • 34.9k
  • 18
  • 104
  • 109
Source Link

SyntaxError: can't assign to operator

I'm having trouble programming the logic of 2 PIR sensors to print a message in console whenever a user place both hands on the PIR sensors.I have managed to successfully attach the PIR sensors to the raspberry pi using GPIO,GND and 5v port. The code that I currently have does print out a message in console whenever someone waves there hand across one but i'm having difficulty modifying the code to print an error message out when someone waves their hand on both the PIR sensors.

enter image description here We can read input from the sensor using GP4 and GP17

This is the error message I receive when I run my code.

   pi@raspberrypi:~ $ sudo python2 peter.py
     File "peter.py", line 23
       new_state = "HIGH" and new_state2 = "HIGH" if current_state and        current_state2 else "LOW"
   SyntaxError: can't assign to operator

This is the code

import RPi.GPIO as GPIO
import time

sensor = 4
sensor2 = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(sensor, GPIO.IN, GPIO.PUD_DOWN)
GPIO.setup(sensor2, GPIO.IN, GPIO.PUD_DOWN)

previous_state = False
current_state = False

previous_state2 = False
current_state2 = False

while True:
    time.sleep(0.1)
    previous_state = current_state
    previous_state2 = current_state2
    current_state = GPIO.input(sensor)
    current_state2 = GPIO.input(sensor2)
    if current_state2(TRUE) and current_state(FALSE) != previous_state2(FALSE) and previous_state(FALSE):
        new_state = "HIGH" and new_state2 = "HIGH" if current_state and current_state2 else "LOW"
        print("GPIO pin %s is %s" % (sensor, new_state, sensor2, new_state2))