diff --git a/python/ttn-v2-receiver.py b/python/ttn-v2-receiver.py new file mode 100644 index 0000000..2baa314 --- /dev/null +++ b/python/ttn-v2-receiver.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 + +import urllib +import psycopg2 +import websocket +from http.server import BaseHTTPRequestHandler, HTTPServer +import re +import json +import pprint +import lorautil + +# HTTPRequestHandler class +class testHTTPServer_RequestHandler(BaseHTTPRequestHandler): + def do_POST(self): + length = int(self.headers['Content-Length']) + post_data = self.rfile.read(length).decode('utf-8') + + payload = self.payload_hex(post_data) + deveui = self.get_deveui(post_data) + + # Try to decode to unicode + try: + payload = self.data_to_unicode(payload) + except UnicodeDecodeError: + pass + + print("deveui/payload: {}:{}".format(deveui, payload)) + + # And insert into the db + lorautil.db_insert_json("ttn", post_data, payload, deveui) + lorautil.db_notify("ttn", payload, deveui) + + def payload_hex(self, data): + mydict = lorautil.jsonToDict(data) + return mydict['DevEUI_uplink']['payload_hex'] + + def data_to_unicode(self, myhex): + return bytes.fromhex(myhex).decode('utf-8') + + def get_deveui(self, data): + mydict = lorautil.jsonToDict(data) + eui = mydict['DevEUI_uplink']['DevEUI'] + return eui + + +if __name__ == '__main__': + server_address = ('0.0.0.0', 7000) + httpd = HTTPServer(server_address, testHTTPServer_RequestHandler) + print('running server...') + httpd.serve_forever() diff --git a/sodaq_one/ns_battery.ino b/sodaq_one/ns_battery.ino new file mode 100644 index 0000000..0ebfa32 --- /dev/null +++ b/sodaq_one/ns_battery.ino @@ -0,0 +1,11 @@ +#include + +#define ADC_AREF 3.3f +#define BATVOLT_R1 2.0f +#define BATVOLT_R2 2.0f +#define BATVOLT_PIN BAT_VOLT + +int getBattery() +{ + return ((ADC_AREF / 1.023) * (BATVOLT_R1 + BATVOLT_R2) / BATVOLT_R2 * (float)analogRead(BATVOLT_PIN)); +} diff --git a/sodaq_one/ns_buzzer.ino b/sodaq_one/ns_buzzer.ino new file mode 100644 index 0000000..0a852b0 --- /dev/null +++ b/sodaq_one/ns_buzzer.ino @@ -0,0 +1,20 @@ +#include + +void setupBuzzer(int pin) +{ + pinMode(pin, OUTPUT); +} + +void buzzerOn(int pin) { + digitalWrite(pin, HIGH); +} + +void buzzerOff(int pin) { + digitalWrite(pin, LOW); +} + +void buzz(int pin, int ms) { + buzzerOn(pin); + delay(ms); + buzzerOff(pin); +}