Esempio n. 1
0
def send_analogdata(data):
    print("Send Data =", data)
    lora.frame_counter = lora.frame_counter + 1
    c = CayenneLPP()
    c.addAnalogInput(1, lora.frame_counter)
    c.addAnalogInput(2, myl)
    c.addAnalogOutput(1, data)

    #c.addTemperature(1, 23.5) # Add temperature read to channel 1
    #    c.addAnalogInput(1,lora.frame_counter)
    #c.addTemperature(2, 22.7) # Add another temperature read to channel 2
    #c.addRelativeHumidity(3, 88.5) # Add relative humidity read to channel 3
    frame = c.getBuffer()  # Get bytes

    #Send data packet
    lora.send_data(frame, len(frame), lora.frame_counter)

    print(lora.frame_counter)
    display.fill(0)
    display.text('Sent LPP Data to Lora!', 0, 0, 1)
    display.text('Sending ' + str(data) + " / " + str(lora.frame_counter), 0,
                 15, 1)
    print('Data sent!')
    display.show()
    time.sleep(10)
    display.fill(0)
Esempio n. 2
0
    def get_drone_data(self):
        payload = CayenneLPP()
        gps = self.vehicle.location.global_relative_frame
        imu = self.vehicle.raw_imu
        ned = self.vehicle.location.local_frame
        attitude = self.vehicle.attitude

        payload.addGPS(1, gps.lat, gps.lon, gps.alt)
        payload.addGyrometer(3, imu.xgyro, imu.ygyro, imu.zgyro)
        payload.addAccelerometer(5, imu.xacc, imu.yacc, imu.zacc)
        payload.addNED(7, ned.north, ned.east, ned.down)
        payload.addAttitude(9, attitude.pitch, attitude.yaw, attitude.roll)

        print("------------")
        print(gps)
        print(ned)
        print(imu)
        print(attitude)
        print("------------")

        cayenne_format_payload = binascii.hexlify(
            payload.getBuffer()).decode('utf8')
        print(cayenne_format_payload)
        return cayenne_format_payload
Esempio n. 3
0
def send_all_pi_data(temp, cpu, ram, myl):
    print("Send all Pi Data =", str(temp))
    lora.frame_counter = lora.frame_counter + 1

    c = CayenneLPP()
    c.addAnalogInput(1, lora.frame_counter)
    c.addAnalogInput(2, myl)
    c.addTemperature(1, temp)
    c.addAnalogOutput(1, cpu)
    c.addAnalogOutput(1, ram)

    frame = c.getBuffer()  # Get bytes

    #Send data packet
    lora.send_data(frame, len(frame), lora.frame_counter)

    print("lora frame counter", lora.frame_counter)
    display.fill(0)
    display.text('Sent LPP Data to Lora!', 0, 0, 1)
    display.text('temp,cpu,ram t=' + str(temp), 0, 10, 1)
    display.text('lora frame = ' + str(lora.frame_counter), 0, 20, 1)
    print('Data All Pi sent!')
    display.show()
    time.sleep(10)
Esempio n. 4
0
        d.text(str(s.eCO2), 70, 30)
        d.text('TVOC ppb', 0, 40)
        d.text(str(s.tVOC), 70, 40)
        d.show()
        time.sleep(3)

    c = CayenneLPP()
    c.addTemperature(1, float(temp))  # Add temperature read to channel 1
    c.addRelativeHumidity(
        2, float(hum))  # Add relative humidity read to channel 2
    c.addBarometricPressure(3, float(pa))
    c.addLuminosity(4, s.eCO2)
    c.addLuminosity(5, s.tVOC)

    #cno=len(ubinascii.hexlify(c.getBuffer()))
    b = (ubinascii.hexlify(c.getBuffer()))
    #cno=len(b)
    print('---------Send Status------------')
    print("AT+NMGS={0},{1}\r\n".format(int(len(b) / 2), (b.decode('utf-8'))))
    uart.write("AT+NMGS={0},{1}\r\n".format(int(len(b) / 2),
                                            (b.decode('utf-8'))))
    p = ure.search('FRMPayload:(.+?) \r\n', uart.read().decode('utf-8'))

    try:
        print(p.group(1))
        pgroup = (p.group(1))
    except AttributeError:
        pgroup = ""
        print('Not found Downlink Packet')

    if pgroup == " aa bb cc":
count = 1
while True:
    print("\r\n\r\nPacket No #{}".format(count))
    pot_value = pot.read()

    percent = 100 - (100 * (pot_value - WaterValue) / (AirValue - WaterValue))
    print("                Soil Moisture (%):" + str(percent))
    percentT = str(round(percent, 2))
    print("Round Soil Moisture to 2 digid(%):" + percentT)

    oled.clear()
    oled.show_text(0, 0, "#", 24)
    oled.show_text(10, 0, str(count), 24)
    oled.show_text(30, 24, percentT, 24)
    oled.show_text(78, 24, "%   ", 24)
    oled.show()
    c = CayenneLPP()
    c.addAnalogInput(1, round(percent, 2))
    b = ubinascii.hexlify(c.getBuffer())
    print("************    Sending Data Status   **************")
    led.value(1)
    ATresp = sendATcommand("AT+NMGS={0},{1}".format(
        int(len(b.decode("utf-8")) / 2),
        (ubinascii.hexlify(c.getBuffer())).decode("utf-8"),
    ))
    print("********Finish Sending & Receiving Data Status******")
    led.value(0)
    count = count + 1
    time.sleep(10.0)
Esempio n. 6
0
    print('Air Quality PM2.5: {}, PM10: {}'.format(pm25, pm10))
    # make the socket blocking
    # (waits for the data to be sent and for the 2 receive windows to expire)
    s.setblocking(True)

    # send some data
    c = CayenneLPP()
    c.addAnalogOutput(2, acc.pitch())
    c.addAnalogOutput(25, pm25)
    c.addAnalogOutput(10, pm10)
    # Check if GPS data was found
    if coords[0] is not None:
        coords = gps.coordinates()
        if coords[0] is not None and coords[1] is not None:
            c.addGPS(5, coords[0], coords[1], 0)
    s.send(bytes(c.getBuffer()))
    print('SENT')

    # make the socket non-blocking
    # (because if there's no data received it will block forever...)
    s.setblocking(False)
    # every 10 seconds i want it to blink
    # get any data received (if any...)
    data = s.recv(64)
    print(data)

    print(coords)
    now = utime.time()
    print('It has been {} seconds since last GPS check.'.format(now -
                                                                check_gps))