Beispiel #1
0
parser.add_argument("-o", "--topic2", help="Additional MQTT topic")
parser.add_argument("-t", "--topic", help="MQTT topic", required=True)
# specific
parser.add_argument("-s", "--topic_key", help="MQTT topic key", required=True)
parser.add_argument("-w", "--wait", help="time between readings", type=float, default=0.5)
parser.add_argument("-i", "--pin", help="gpio pin (BCM)", type=int, required=True)
parser.add_argument("-y", "--high_value", help="high value", default=Sensor.HIGH)
parser.add_argument("-z", "--low_value", help="low value", default=Sensor.LOW)
parser.add_argument("-g", "--log_level", help="logging level", type=int, default=logging.INFO)
args = parser.parse_args()

# logging setup
logger = set_logger(level=args.log_level)

sensor = Sensor(args.pin)
sensor.start()

last_state = None
status = None
while True:
    current_state = sensor.reading()
    if current_state != last_state:
        last_state = current_state  # reset state value
        if current_state == Sensor.LOW:
            status = args.low_value
        else:
            status = args.high_value
        logger.debug("sensor-monitor: changed %s %s" % (args.topic_key, str(status)))
        # publish
        MqttClient.publish(args, args.topic, {'state': {'reported': {args.topic_key: status}}})
        if args.topic2 is not None:
Beispiel #2
0
from sys import argv
from sensor import Sensor

if len(argv) < 3 :
    print "Brakujacy parametr podczas uruchomienia!"
    print "%s [port sensora] [adres i port monitora]" % (argv[0])
    exit()

if __name__ == "__main__":
    s = Sensor(argv[1], argv[2])
    s.start()
Beispiel #3
0
import yaml
from multiprocessing import Process, Queue
import time

print "라즈베리파이 센서&카메라 테스트를 시작합니다."
# 끝에 &를 붙여주면, 백그라운드에서 진행됩니다~
# os.system("python sensor/all_upload.py &")
# os.system("python camera/timelapse.py")

# Server Url
URL = 'http://deepmind.dothome.co.kr/controller.php'

# config.yml에서 설정한것들을 가져옴
config = yaml.safe_load(open('camera/config.yml'))
video_dir = os.path.join(sys.path[0], 'camera/video')
config['video_dir'] = video_dir

sensor = Sensor(URL)
timelapse = Timelapse(config)

sensor.start()
timelapse.start()

# queue = Queue()
# processes = {
#   'sensor': Process(target=sensor.start),
#   'timelapse': Process(target=timelapse.start)
# }

# processes['timelapse'].start()
# processes['sensor'].start()
Beispiel #4
0
        self.setpoint_rp = rp
        self.setpoint_yaw = yaw

    def reset(self, yaw=0):
        self.recently_reset = True
        self.yaw_pid.reset()
        self.rp_pid.reset()
        self.start_time = time.time()
        self.prev_time = self.start_time
        self.curr_time = self.start_time


if __name__ == "__main__":
    from sensor import Sensor
    sensor = Sensor(configFile="../config/RTIMULib")
    sensor.start()  # start pulling data from IMU in a parallel thread
    stabilizer = Stabilizer()
    fusion_pose = None
    loop_frequency = 10  # Hz
    while sensor.imu_data is None:
        # wait for IMU data to start coming in
        time.sleep(0.5)
    while True:
        loop_start_time = time.time()
        data = sensor.imu_data
        fusion_pose = data["fusionPose"]
        print fusion_pose
        stabilizer.step(*fusion_pose)
        remaining_time = (1. / loop_frequency) - (time.time() -
                                                  loop_start_time)
        if remaining_time > 0: