• #by-own #raspberrypi #developRobot

Kapitel 07: Licht Sensor

Hinweis: Wie die einzelnen Hardware Komponenten so wie die benötigten evtl. weiteren elektronischen Zusatzteile (Widerstände, Transistoren, Stromversorgung) angeschlossen werden, ist in der Rubrik Elektronik nachzuschlagen. In dieser Rubrik wird ausschließlich die Software-Entwicklung betrachtet.

Der Lichtsensor sendet lediglich ein Signal True oder False. Die Empfindlichkeit lässt sich mit dem verbauten Potimeter einstellen.

Der Sensor wird an den GPIO 26 angeschlossen und wird schlicht zyklisch abgefragt. Der Code ist daher "Documentation enough"

import RPi.GPIO as GPIO
import time

#GPIO Modus (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

#GPIO Pins zuweisen
GPIO_light= 26

#Richtung der GPIO-Pins festlegen (IN / OUT)
GPIO.setup(GPIO_light, GPIO.IN)

def light():
  lightsensor =  GPIO.input(GPIO_light)
  return lightsensor


if __name__ == '__main__':
  try:
    while True:
      lightValue = light()
      print ("Licht "+ str(lightValue))
      time.sleep(1)
  except KeyboardInterrupt:
    print("Messung vom User gestoppt")
    GPIO.cleanup()

Auch für den Sensor muss ein Websocket Client geschrieben werden. Dieser soll zyklisch (jede 0.5 sec.) den gemessenen Wert an die Java-Applikation senden. Auch hier muss der Sensor sich zu Beginn mit seinem Namen beim Websocker-Server melden, so dass später eine Zuordnung der Sensorwerte zu dem Sensor möglich ist.

import asyncio
import websockets
import light_sens
import time

async def wsclient():
	async with websockets.connect('ws://localhost:9000') as websocket:
        #FirstMessaging - Name
		await websocket.send('Name:'+'lightSensor')
		while True:
			light = light_sens.light()

			await websocket.send('lightSensor:'+str(light))
			#print ('sending')
			time.sleep(0.5)


#This have to be the last line!
asyncio.get_event_loop().run_until_complete(wsclient())
© 2019 by-own
Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.