Beispiel #1
0
def sendData(direction, speed, gps):
    s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
    s.setsockopt(socket.SOL_LORA, socket.SO_DR, 5)

    s.setblocking(True)

    lpp = cayenneLPP.CayenneLPP(size=100, sock=s)
    lpp.add_analog_input(direction, 4)
    lpp.add_analog_input(speed)
    lpp.add_gps(gps[0], gps[1], gps[2])
    lpp.set_socket(s)
    lpp.send()

    s.setblocking(False)
Beispiel #2
0
#### Pytrack

gc.enable()

# setup rtc
# rtc = machine.RTC()
# rtc.ntp_sync("pool.ntp.org")
# utime.sleep_ms(750)
# print('\nRTC Set from NTP to UTC:', rtc.now())
# utime.timezone(7200)
# print('Adjusted from UTC to EST timezone', utime.localtime(), '\n')

py = Pytrack()
l76 = L76GNSS(py, timeout=5000)

# sd = SD()
# os.mount(sd, '/sd')
# f = open('/sd/gps-record.txt', 'w')

lpp = cayenneLPP.CayenneLPP(size=100, sock=s)

while (True):
    coord = l76.coordinates()
    if isinstance(coord, int):
        lpp.add_gps(3, coord, 2)
    #f.write("{} - {}\n".format(coord, rtc.now()))
    print(coord)
    lpp.send(reset_payload=True)
    time.sleep(60)
Beispiel #3
0
py.setup_int_pin_wake_up(False)
# enable activity and also inactivity interrupts, using the default callback handler
py.setup_int_wake_up(True, True)
# set the acceleration threshold to 2000mG (2G) and the min duration to 160ms
acc.enable_activity_interrupt(2000, 160)

while True:
    #wake_s = ds.get_wake_status()
    #print(wake_s)
    time.sleep(0.1)
    #if(acc.activity()):
    if (True):
        pycom.rgbled(0x000066)  #Color blue
        coord = l76.coordinates()
        s.setblocking(True)
        lpp = cayenneLPP.CayenneLPP(
            size=100, sock=s)  #create socket to send messages to server

        #pitch= acc.pitch()
        #roll = acc.roll()
        #yaw = acc.yaw()

        #print('Pitch:',pitch)
        #print('Roll:' ,roll)
        #print('Roll:' ,yaw)

        coord = l76.coordinates()  #Get the coordinates
        c0 = coord[0]
        c1 = coord[1]

        #volt= py.read_battery_voltage() #Read Battery Voltage
    def _send_handler(self, alarm):
        print('sending...')
        # creating Cayenne LPP packet
        lpp = cayenneLPP.CayenneLPP(size=60,
                                    sock=s)  # adjust payload size if needed
        # take measurements
        pitch = acc.pitch()
        roll = acc.roll()
        accel = acc.acceleration()
        # pressure = baro.pressure()
        altitude = baro.altitude()
        barotemp = baro.temperature()
        levels = light.light()
        # temp = temphumid.temperature()
        humid = temphumid.humidity()
        battery = pc.read_battery_voltage()
        self.counter = self.counter + 1  # simple counter for logging

        # show measurements
        print('pitch:', pitch)
        print('roll:', roll)
        print('baro temp:', barotemp)
        print('acceleration: x {},  y {},  z {}'.format(
            accel[0], accel[1], accel[2]))
        print('altitude:', altitude)
        # print('pressure:', pressure/100)
        print('light avg:', (levels[0] + levels[1]) / 2)
        # print('temp:', temp)
        print('humid:', humid)
        print('battery', battery)
        print('counter', self.counter)

        # send measurements
        lpp.add_analog_input(pitch)
        lpp.add_analog_input(roll, channel=103)
        lpp.add_temperature(barotemp, channel=107)
        lpp.add_accelerometer(
            accel[0],
            accel[1],
            accel[2],
        )
        # lpp.add_barometric_pressure(pressure/100) # convert pa to Hectopascals
        lpp.add_analog_input(altitude, channel=104)
        lpp.add_luminosity((levels[0] + levels[1]) / 2)
        # lpp.add_temperature(temp)
        lpp.add_relative_humidity(humid)
        lpp.add_analog_input(battery, channel=105)
        lpp.add_analog_input(self.counter, channel=106)
        print('payload size: {}'.format(
            lpp.get_size()))  # show payload get_size
        # if payload is too large, adjust in Sender._send_handler above if needed

        # sending the packet via the socket
        try:
            lpp.send()
        except OSError as e:
            print(e)
            pycom.heartbeat(False)
            for x in range(10):
                pycom.rgbled(0xFF0000)  # red blinking for errors
                time.sleep(0.2)
                pycom.rgbled(0x000000)  # off
                time.sleep(0.2)
            import machine
            machine.reset()
        pycom.heartbeat(False)
        pycom.rgbled(0x00FF00)  # green flash for success
        time.sleep(0.2)
        pycom.heartbeat(True)
        if pc.button_pressed(
        ):  # holding button cancels data sending until reboot
            self.__alarm.cancel()
            pycom.heartbeat(False)
            pycom.rgbled(0xFF0000)  # red
            time.sleep(5)
            pycom.rgbled(0x000000)  # off