Wat doe ik verkeerd met deze python script?

Ik ben met mijn grove verbonden met de Raspberry Pi en ik heb deze code:


#!/usr/bin/env python
import time
from mraa import getGpioLookup
from upm import pyupm_buzzer as upmBuzzer
from grove.grove_moisture_sensor import GroveMoistureSensor
from grove.lcd.sh1107g import JHD1802
def main():
# Grove - 16x2 LCD(White on Blue) connected to I2C port
lcd = JHD1802()
# Grove - Moisture Sensor connected to port A0
sensor = GroveMoistureSensor(0)
# Grove - Buzzer connected to port PWM
buzzer = upmBuzzer.Buzzer(getGpioLookup('GPIO12'))
while True:
mois = sensor.moisture
if 0 <= mois and mois < 300:
level = 'dry'
elif 300 <= mois and mois < 600:
level = 'moist'
else:
level = 'wet'
buzzer.playSound(upmBuzzer.BUZZER_DO, 200000)
print('moisture: {}, {}'.format(mois, level))
lcd.setCursor(0, 0)
lcd.write('moisture: {0:>6}'.format(mois))
lcd.setCursor(1, 0)
lcd.write('{0:>16}'.format(level))
time.sleep(1)
if __name__ == '__main__':
main()
Traceback (most recent call last):
File "./msensor.py", line 40, in <module>
main()

Maar ik krijg deze Error


File "./msensor.py", line 11, in main
lcd = JHD1802()
NameError: global name 'JHD1802' is not defined

Weet jij het antwoord?

/2500

In je plaatje mis je toch echt deze twee regels: from grove.grove_moisture_sensor import GroveMoistureSensor from grove.lcd.sh1107g import JHD1802 terwijl die wel gewoon in je vraag zijn verwerkt. Daarbij wil ik je adviseren om als je de volgende keer python code post toch echt te zorgen dat de tabs ook overeen komen. Anders heeft het namelijk helemaal geen zin om python code raw te gaan posten. De plaatjes zijn daarin tegen wel duidelijk. Als je de twee regels die je in je vraag wel verwerkt hebt maar niet in je begeleidende plaatjes hebt staan erbij zet. Dan zou de code in princiep gewoon moeten werken.

Stel zelf een vraag

Ben je op zoek naar het antwoord op die ene vraag die je misschien al tijden achtervolgt?

/100