From dad024ae410398fbf60b75619545e9ee4ab9dad3 Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Thu, 29 Dec 2016 01:24:23 +0100 Subject: [PATCH] Sensor.msg: use float for pressure --- msg/Sensor.msg | 2 +- scripts/christmas.py | 33 ++++++++++++++++++++++++--------- scripts/sensor_board.py | 4 +--- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/msg/Sensor.msg b/msg/Sensor.msg index 72aedff..c0204d6 100644 --- a/msg/Sensor.msg +++ b/msg/Sensor.msg @@ -2,6 +2,6 @@ Header header uint16 light float32 temp uint8 humidity -int16 pressure +float32 pressure uint16 co bool ventilate diff --git a/scripts/christmas.py b/scripts/christmas.py index bdfd688..ae8c184 100755 --- a/scripts/christmas.py +++ b/scripts/christmas.py @@ -3,21 +3,36 @@ import rospy from random import * -from wild_thumper.msg import LedStripe, Led +from datetime import datetime +from wild_thumper.msg import * max_val = 10 +light = 0 +ldr_thres = 8 + +def sensorReceived(msg): + global light + light = msg.light if __name__ == "__main__": rospy.init_node('christmas') pub = rospy.Publisher('led_stripe', LedStripe, queue_size=10) + rospy.Subscriber("/sensors", Sensor, sensorReceived) rate = rospy.Rate(2) + val = max_val while not rospy.is_shutdown(): - msg = LedStripe() - msg.leds = [ - Led(4, randint(0, max_val), randint(0, max_val), randint(0, max_val)), - Led(5, randint(0, max_val), randint(0, max_val), randint(0, max_val)), - Led(6, randint(0, max_val), randint(0, max_val), randint(0, max_val)), - Led(7, randint(0, max_val), randint(0, max_val), randint(0, max_val)) - ] - pub.publish(msg) + if light <= ldr_thres or val != 0: + now = datetime.now() + if light <= ldr_thres and now.hour >= 18 and now.hour <= 22: + val = max_val + else: + val = 0 + msg = LedStripe() + msg.leds = [ + Led(4, randint(0, val), randint(0, val), randint(0, val)), + Led(5, randint(0, val), randint(0, val), randint(0, val)), + Led(6, randint(0, val), randint(0, val), randint(0, val)), + Led(7, randint(0, val), randint(0, val), randint(0, val)) + ] + pub.publish(msg) rate.sleep() diff --git a/scripts/sensor_board.py b/scripts/sensor_board.py index 337830d..bddfb58 100755 --- a/scripts/sensor_board.py +++ b/scripts/sensor_board.py @@ -66,8 +66,6 @@ class SensorBoard: if (datetime.now() - t_last_check).seconds > 900: ventilate = check_ventilate(temp, humidity) t_last_check = datetime.now() - if (ventilate > 1.10): - print "Lüften!" msg = Sensor() msg.header.stamp = rospy.Time.now() @@ -76,7 +74,7 @@ class SensorBoard: msg.humidity = humidity msg.pressure = pressure msg.co = co - msg.ventilate = ventilate + msg.ventilate = True if ventilate > 1.10 else False self.pub.publish(msg) -- 2.39.2