adding files for tinylora circuitpython guide
This commit is contained in:
parent
708c247557
commit
0e7544dbe7
2 changed files with 84 additions and 0 deletions
70
TheThingsNetwork_Feather/code.py
Normal file
70
TheThingsNetwork_Feather/code.py
Normal file
|
|
@ -0,0 +1,70 @@
|
||||||
|
"""TinyLoRa with a Si7021 Sensor.
|
||||||
|
"""
|
||||||
|
import time
|
||||||
|
import busio
|
||||||
|
import digitalio
|
||||||
|
import board
|
||||||
|
import adafruit_si7021
|
||||||
|
from adafruit_tinylora.adafruit_tinylora import TTN, TinyLoRa
|
||||||
|
|
||||||
|
# Board LED
|
||||||
|
led = digitalio.DigitalInOut(board.D13)
|
||||||
|
led.direction = digitalio.Direction.OUTPUT
|
||||||
|
|
||||||
|
# Create library object using our bus i2c port for si7021
|
||||||
|
i2c = busio.I2C(board.SCL, board.SDA)
|
||||||
|
sensor = adafruit_si7021.SI7021(i2c)
|
||||||
|
|
||||||
|
# Create library object using our bus SPI port for radio
|
||||||
|
spi = busio.SPI(board.SCK, MISO=board.MISO, MOSI=board.MOSI)
|
||||||
|
|
||||||
|
# RFM9x Breakout Pinouts
|
||||||
|
cs = digitalio.DigitalInOut(board.D5)
|
||||||
|
irq = digitalio.DigitalInOut(board.D6)
|
||||||
|
|
||||||
|
# Feather M0 RFM9x Pinouts
|
||||||
|
# irq = digitalio.DigitalInOut(board.RFM9X_D0)
|
||||||
|
# cs = digitalio.DigitalInOut(board.RFM9X_CS)
|
||||||
|
|
||||||
|
# TTN Device Address, 4 Bytes, MSB
|
||||||
|
devaddr = bytearray([0x00, 0x00, 0x00, 0x00])
|
||||||
|
|
||||||
|
# TTN Network Key, 16 Bytes, MSB
|
||||||
|
nwkey = bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
|
||||||
|
|
||||||
|
# TTN Application Key, 16 Bytess, MSB
|
||||||
|
app = bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
|
||||||
|
|
||||||
|
ttn_config = TTN(devaddr, nwkey, app, country='US')
|
||||||
|
|
||||||
|
lora = TinyLoRa(spi, cs, irq, ttn_config)
|
||||||
|
|
||||||
|
# Data Packet to send to TTN
|
||||||
|
data = bytearray(4)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
temp_val = sensor.temperature
|
||||||
|
humid_val = sensor.relative_humidity
|
||||||
|
print('Temperature: %0.2f C' % temp_val)
|
||||||
|
print('relative humidity: %0.1f %%' % humid_val)
|
||||||
|
|
||||||
|
# Encode float as int
|
||||||
|
temp_val = int(temp_val * 100)
|
||||||
|
humid_val = int(humid_val * 100)
|
||||||
|
|
||||||
|
# Encode payload as bytes
|
||||||
|
data[0] = (temp_val >> 8) & 0xff
|
||||||
|
data[1] = temp_val & 0xff
|
||||||
|
data[2] = (humid_val >> 8) & 0xff
|
||||||
|
data[3] = humid_val & 0xff
|
||||||
|
|
||||||
|
# Send data packet
|
||||||
|
print('Sending packet...')
|
||||||
|
lora.send_data(data, len(data), lora.frame_counter)
|
||||||
|
print('Packet Sent!')
|
||||||
|
led.value = True
|
||||||
|
lora.frame_counter += 1
|
||||||
|
time.sleep(2)
|
||||||
|
led.value = False
|
||||||
14
TheThingsNetwork_Feather/si7021_decoder.js
Normal file
14
TheThingsNetwork_Feather/si7021_decoder.js
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
// TinyLoRa - Si7021 Decoder
|
||||||
|
function Decoder(bytes, port) {
|
||||||
|
var decoded = {};
|
||||||
|
|
||||||
|
// Decode bytes to int
|
||||||
|
var celciusInt = (bytes[0] << 8) | bytes[1];
|
||||||
|
var humidInt = (bytes[2] << 8) | bytes[3];
|
||||||
|
|
||||||
|
// Decode int to float
|
||||||
|
decoded.celcius = celciusInt / 100;
|
||||||
|
decoded.humid = humidInt / 100;
|
||||||
|
|
||||||
|
return decoded;
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue