rockblock_feather_sense_sensors.py
1 import time 2 import struct 3 import board 4 import adafruit_lsm6ds 5 import adafruit_lis3mdl 6 import adafruit_apds9960.apds9960 7 import adafruit_sht31d 8 import adafruit_bmp280 9 import adafruit_rockblock 10 11 # RockBlock setup 12 uart = board.UART() 13 uart.baudrate = 19200 14 rb = adafruit_rockblock.RockBlock(uart) 15 16 # all the sensors 17 accelo = adafruit_lsm6ds.LSM6DS33(board.I2C()) 18 magno = adafruit_lis3mdl.LIS3MDL(board.I2C()) 19 prox = adafruit_apds9960.apds9960.APDS9960(board.I2C()) 20 sht = adafruit_sht31d.SHT31D(board.I2C()) 21 bmp = adafruit_bmp280.Adafruit_BMP280_I2C(board.I2C()) 22 23 # build data 24 # can decode on other end with struct.unpack("<6fB5f", data) 25 data = struct.pack("3f", *accelo.acceleration) 26 data += struct.pack("3f", *magno.magnetic) 27 data += struct.pack("B", prox.proximity()) 28 data += struct.pack("2f", sht.relative_humidity, sht.temperature) 29 data += struct.pack("3f", bmp.pressure, bmp.altitude, bmp.temperature) 30 31 # send data 32 rb.data_out = data 33 print("Talking to satellite...") 34 retry = 0 35 status = rb.satellite_transfer() 36 while status[0] > 8: 37 time.sleep(10) 38 status = rb.satellite_transfer() 39 print(retry, status) 40 retry += 1 41 print("\nDONE.")