├── InnovateAuckland_Medium.png ├── LoRaMQTTGatewayRepeater.ino ├── NodeExampleUltraSonicSensor.ino ├── README.md ├── TTGO_GatewayModes.pdf ├── TTGO_WiFi_SetupPage.pdf ├── USER_GUIDE_MulitimodeGateway_1.0.pdf ├── libraries ├── AsyncTCP-master.zip ├── EEPROM.zip ├── ESPAsyncWebServer-master.zip ├── RadioHead-1.85.zip └── esp8266-oled-ssd1306-master.zip └── param.h /InnovateAuckland_Medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aklciot/Open-Data-Telemetry-Network/05af88629df3a2c6ecfcd46258d35067eaf9d07f/InnovateAuckland_Medium.png -------------------------------------------------------------------------------- /LoRaMQTTGatewayRepeater.ino: -------------------------------------------------------------------------------- 1 | // ****************************************************************************************************** 2 | // ********************************* INNOVATE AUCKLAND, LoRa MQTT Gateway ******************************* 3 | // ****************************************************************************************************** 4 | // LoRa Wifi MQTT gateway. Includes remote send LoRa test message and system reset functions via MQTT subscription 5 | // To configure WiFi and switch modes hold button A during startup to enter AP setup mode. 6 | // Browser connect to http://192.168.4.1/home to enter your wifi settings, or select operation modes: 7 | // monitor or repeater and set LoRa spreading factor. 8 | // USB Serial connect at 115200(n,8,1) to view the serial diagnostics. 9 | // 10 | // IMPORTANT: Take care to correctly Configure Hardware Version for your board, lines 144-175. 11 | // 12 | // Version WD-2.3.5 27-Feb-2020, Added MQTT reconnect to failed publish gateway loop 13 | // Version WD-2.3.4 Reduced RSSI value in Monitor mode 14 | // Version WD-2.3.3 Reduced RSSI value in Repeater mode 15 | // Version WD-2.3.2 Added Iwi mode 16 | // Version WD-2.3.1 Reordered library load to free some memory 17 | // Version WD-2.3.0 Printed some dots, cleared some memory 18 | // Version WD-2.2.9 Moved serial prints to from SVRAM to PROGMEM (F()) 19 | // Version WD-2.2.8 Added MQTT publish to while loop function 20 | // Version WD-2.2.7 Added clear buffer memory prior to publish 21 | // Version WD-2.2.6 Added OLED display burn-in saver 22 | // Version WD-2.2.5 Added new watchdog 23 | // Version WD-2.2.4 Added Uptime and version to LoRa send test message 24 | // Version WD-2.2.3 Disable watchdog function until it can be made stable 25 | // Version WD-2.2.2 Added auto reply message in gateway mode, keyword "TTMon" from a monitor node 26 | // Version WD-2.2.1 Increased watchdog timeout to 1 minute 27 | // Version WD-2.2.0 Reconfigured gateway loop to prioritise LoRa receive 28 | // version WD-2.1.8 Added MQTT failed publish counter and max trys reset 29 | // version JW-2.1.7 Moved changable parameters to a separate file 30 | // version AC-2.1.6 Added repeater loop'd message detection. Thanks Aldo! 31 | // version WD-2.1.5 Enabled watchdog reset to Gateway and Repeater mode. 32 | // version WD-2.1.4 Added Gateway ID to serial diagnostics. 33 | // version WD-2.1.3 Added remote config for setup-mode and LoRa spreading factor over MQTT control subscribe. 34 | // version WD-2.1.1 Modified uptime seconds to minutes. 35 | // version WD-2.1.0 added serial print WiFi MAC address to start-up. 36 | // version WD-2.0.9 added support for TTGO T-Beam v1 37 | // version WD-2.0.8 added channel spreading factor to AP setup mode 38 | // version WD-2.0.7 added Project ID to gateway status message 39 | // version WD-2.0.6 added support for TTGO version 1.6 40 | // version WD-2.0.5 Moved location for lat-long to SRAM 41 | // version WD-2.0 added SRAM setup mode via WiFi 42 | // version WD-0.8 Increased connect retries 43 | // version WD-0.7 Added ESP Watchdog 44 | // version WD-0.6 Added reset counter during wifi and mqtt connection 45 | // version WD-0.5 Added ESP.restart(); to mqtt RESET command. 46 | // version WD-0.4 Added test message button 47 | // version WD-0.3 Updated serial diagnostics 48 | // version WD-0.2 Updated serial diagnostics 49 | // version WD-0.1 Initial build 50 | // ESP Tutorial - Saving Persistent Variables to NV-SRAM 51 | // https://www.youtube.com/watch?v=EpfBo6r5hzA 52 | // ESP Async Server tutorial 53 | // https://techtutorialsx.com/2017/07/26/esp32-arduino-setting-a-soft-ap/ 54 | // ******************************************************************************************************* 55 | 56 | /* 57 | The Non-Profit Open Software License version 3.0 (NPOSL-3.0) 58 | 59 | Copyright (c) 2019 Innovate Auckland 60 | 61 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), 62 | to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute copies of the Software, 63 | and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 64 | 65 | This software may not be used for commercial purposes. 66 | 67 | The above copyright notice and this permission notice shall be included in all 68 | copies or substantial portions of the Software. 69 | 70 | 71 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 72 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 73 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 74 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 75 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 76 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 77 | SOFTWARE. 78 | 79 | */ 80 | 81 | 82 | 83 | // -- End of File -- 84 | -------------------------------------------------------------------------------- /NodeExampleUltraSonicSensor.ino: -------------------------------------------------------------------------------- 1 | // ********************************************************************************** 2 | // Sample Sensor Node, Ultrasonic Distance Sensor Example 3 | // This Arduino code creates a simple LoRa message that sends the Node ID, ultrasonic and battery level values to the LoRa MQTT Gateway. 4 | // Code and guide for the gateway node can be found here: https://github.com/aklciot/TTGO-Gateway-repeater 5 | // Range is highly dependent on conditions however we average 0.5-1km urban areas and over 5km in rural. 6 | // 7 | // PLEASE NOTE: Set the LoRa SPI pin definitions correctly for your board, this code has been tested on LowpowerLabs Motieno and Adafruit 32u4/M0 8 | // It is assumed you have installed an Arduino IDE, included the latest radiohead library and have a compatible LoRa MCU board installed and attached. 9 | // 10 | // IMPORTANT: This is not a LoRaWAN node, it uses basic LoRa without adding the WAN overhead required for shared network systems. 11 | // The intention is to provide the simplest possible telemetry solution. 12 | // 13 | // The Non-Profit Open Software License version 3.0 (NPOSL-3.0) 14 | // 15 | // Copyright (c) 2019 Innovate Auckland 16 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), 17 | // to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute copies of the Software, 18 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 19 | // 20 | // This software may not be used for commercial purposes. 21 | // The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 22 | // 23 | // Questions or comments please contact us on our Github page, https://github.com/aklciot 24 | // Innovate Auckland 25 | // Version 0.1 26-July-2020, Initial Build, WD 26 | // ********************************************************************************** 27 | 28 | 29 | #include // Radiohead LoRa library 30 | // #include // Ultrasonic distance sensor 31 | 32 | char* NodeID = "Node1"; // Node ID 33 | 34 | #define PWRLOOP 10 // test loop 1 sec count for sending data 35 | 36 | 37 | //************************************ LoRa SPI pin definitions *************************** 38 | 39 | //* RFM95 LoRa Radio Settings for moteino 40 | /* 41 | #ifdef __AVR_ATmega1284P__ 42 | #define LED 15 // Moteino MEGAs have LEDs on D15 43 | #define FLASH_SS 23 // and FLASH SS on D23 44 | #define RFM95_CS 4 // wd NSS chip select pin 4 for rf95 radio on MoteinoMEGA, 10 is standard 45 | #define RFM95_RST 3 // reset not connected 46 | #define RFM95_INT 2 47 | #else 48 | #define LED 9 // Moteinos have LEDs on D9 49 | #define FLASH_SS 8 // and FLASH SS on D8 50 | #define RFM95_CS 10 // wd NSS chip select pin 10 for rf95 radio on Moteino 51 | #define RFM95_RST 9 // wd reset not used 52 | #define RFM95_INT 2 53 | #endif 54 | */ 55 | 56 | // Settings for Adafruit feather32u4 LoRa RFM95 57 | /* 58 | #define RFM95_CS 8 59 | #define RFM95_RST 4 60 | #define RFM95_INT 7 61 | #define LED 13 62 | */ 63 | 64 | // Settings for Adafruit featherM0 LoRa RFM95 SPI 65 | #define RFM95_RST 4 // LoRa radio reset pin 66 | #define RFM95_CS 8 // LoRa radio chip select pin 67 | #define RFM95_INT 3 // LoRa radio interrupt pin 68 | #define LED 13 69 | 70 | 71 | // LoRa radio frequency, use the correct frequency for your region 72 | #define RF95_FREQ 915.0 73 | 74 | 75 | // wd variables told hold string values 76 | char Dstr[5]; // Distance value char 77 | char Bstr[5]; // Battery value char 78 | char buffer[50]; // Lora message char (max 50 bytes) 79 | byte sendLen; // Lora message length 80 | 81 | double Dist, Bat; 82 | int distance; 83 | 84 | 85 | //************************************ Load Drivers ******************************** 86 | 87 | RH_RF95 rf95(RFM95_CS, RFM95_INT); // load radiohead driver instance of the radio and name it "rf95" 88 | 89 | // UltraSonicDistanceSensor distanceSensor(6, 5); // Initialize the HCSR04 sensor that uses digital pins (trig, echo). 90 | 91 | 92 | void setup() { 93 | 94 | while (!Serial); // Serial usb connection to show diagnostic data, comment out (//) when usb serial is not connected as the code will halt at this point 95 | Serial.begin(115200); //set baud rate for the hardware serial port_0 96 | delay(100); 97 | 98 | Serial.println("Serial Started"); 99 | 100 | pinMode(LED, OUTPUT); // initialize digital pin as an output. 101 | 102 | pinMode(RFM95_RST, OUTPUT); 103 | digitalWrite(RFM95_RST, HIGH); 104 | 105 | // manual reset 106 | digitalWrite(RFM95_RST, LOW); 107 | delay(10); 108 | digitalWrite(RFM95_RST, HIGH); 109 | delay(10); 110 | 111 | //wd initialise radio 112 | while (!rf95.init()) { 113 | Serial.println("LoRa radio init failed"); 114 | while (1); 115 | } 116 | 117 | 118 | Serial.println("LoRa radio init OK!"); 119 | 120 | // Defaults after init are 434.0MHz, modulation GFSK_Rb250Fd250, +13dbM 121 | if (!rf95.setFrequency(RF95_FREQ)) { 122 | Serial.println("setFrequency failed"); 123 | while (1); 124 | } 125 | Serial.print("Set Freq to: "); Serial.println(RF95_FREQ); 126 | 127 | // wd set radio tx power and use PA false 128 | rf95.setTxPower(13, false); 129 | 130 | delay(500); //wait for recode 131 | Serial.println("Node ready, starting main loop.."); 132 | digitalWrite(LED, LOW); 133 | 134 | } 135 | 136 | /********** dtostrf function for M0 core *************************/ 137 | #if defined(ARDUINO_SAMD_ZERO) || defined(ARDUINO_SAMD_MKR1000) 138 | static char *dtostrf (double val, signed char width, unsigned char prec, char *sout) { 139 | char fmt[20]; 140 | sprintf(fmt, "%%%d.%df", width, prec); 141 | sprintf(sout, fmt, val); 142 | return sout; 143 | } 144 | #endif 145 | 146 | 147 | void loop() { 148 | // Power Up and Start Sensors 149 | Serial.println(); 150 | Serial.println("Sensor Start"); 151 | 152 | // Measure distance, read UltraSonic 153 | // distance = distanceSensor.measureDistanceCm(); // HCSR04.h 154 | distance = 150; // demo distance value for testing 155 | Serial.println(distance); 156 | delay(100); 157 | 158 | // Measure battery 159 | /* 160 | double measuredvbat = analogRead(VBATPIN); 161 | measuredvbat *= 2; // we divided by 2, so multiply back 162 | measuredvbat *= 3.3; // Multiply by 3.3V, our reference voltage 163 | measuredvbat /= 1024; // convert to voltage 164 | Bat = measuredvbat; 165 | */ 166 | Bat = 4.5; // demo battery value for testing 167 | 168 | // convert doubles to char-string 169 | dtostrf(distance, 1, 0, Dstr); 170 | dtostrf(Bat, 1, 2, Bstr); 171 | 172 | // create outgoing LoRa message in "buffer" 173 | sprintf(buffer, "%s,%s,%s", NodeID, Dstr, Bstr); 174 | 175 | // send buffer message and length to radio 176 | sendLen = strlen(buffer); 177 | rf95.send((uint8_t *) buffer, sendLen); 178 | rf95.waitPacketSent(); 179 | rf95.sleep(); 180 | 181 | // wd serial diagnostics 182 | Serial.println(" ......... Message Data ........... " ); 183 | Serial.println(); 184 | Serial.print("Distance: "); Serial.println(distance); 185 | Serial.print("Battery: "); Serial.println(Bat); 186 | Serial.println(); 187 | Serial.print("Send Data: "); Serial.println(buffer); 188 | Serial.print("Send Length: "); Serial.println(sendLen); 189 | Serial.println(" .................... " ); 190 | Serial.println(); 191 | delay(100); 192 | 193 | // To entering low power sleep mode or wait loop 194 | Serial.println("Wait Loop"); 195 | 196 | uint8_t i; 197 | for (i = 0; i < PWRLOOP; i++) { 198 | delay(1000); 199 | Serial.print(i); Serial.println(","); 200 | digitalWrite(LED, HIGH); 201 | delay(50); 202 | digitalWrite(LED, LOW); 203 | } 204 | } 205 | 206 | // FILE END 207 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Multi Mode LoRa Gateway-Repeater 4 | ## Arduino ESP32 based LoRa to Wifi MQTT Gateway 5 | 6 | INNOVATE AUCKLAND 7 | Copyright (c) 2019 Innovate Auckland. All rights reserved. 8 | Included libraries are copyright to their respective owners 9 | 10 | ## Functions and features. 11 | This gateway is designed to create a data telemetry connection for environmental IOT projects where standard 2.4 Ghz WiFi and mains power is available nearby. 12 |
13 | 14 |
15 |
  • Receives open LoRa massages and publishes as comma delimited text to MQTT over a standard Wifi connection 16 |
  • Includes an embedded webserver and application for simple setup using mobile or PC 17 |
  • Three main modes of operation, normal gateway mode, repeater mode to extend range and monitor mode for network testing and setup. 18 |
  • Includes built in reset watchdog 19 |
  • Detects and automatically reconnects on connection failure 20 |
  • Regularly sends the gateway status including name, type, version, uptime, battery level over MQTT using the keyword GWSTATUS. 21 |
  • Supports onsite network testing/setup with automatic gateway status replies over LoRa and MQTT triggered by a gateway message sent in monitor mode. Note this function requires a multimode gateway in monitor mode. 22 |
    23 |
    24 | NOTE: If your project location does not have access to mains power or a suitable Wifi connection nearby, please contact us about how to get our mobile solar powered gateway. 25 | 26 | 27 | ## Contents: 28 | This page describes the Innovate Auckland Telemetry Gateway. On this page you will find details on where to buy supported hardware, details on the gateway operation, source code and the operating manual for setup and advanced features. 29 | 30 | The gateway sends data from the sensor to the internet. To make this work the gateway needs to know your WIFI name and password to make a connection. The gateway uses very little data, about 20MB per month, as much as listening to a few music tracks. It also contains no personal data and has no microphone or camera. The gateway does not accept any inbound connections making it very resistant to hacking, all internet connections are outbound only. Power utilisation is about 150mA, less than 1 watt (1/10th of a standard LED light bulb). 31 | 32 | ## Important: This opensource software is free for non-commercial use only. 33 | Please review and respect the licences for included libraires. 34 | For any commercial applications, please contact us. 35 | 36 | 37 | ## Compiling and loading 38 | This code can be compiled on a standard Arduino GUI. Your IDE will need the ESP32 boards added. See the Arduino support pages for details on how to complete this step. 39 | 40 | UPDATE: Sample code for a simple LoRa node that works with this gateway is now included to get you started with sensors and IOT devices. 41 | 42 | ### Libraries 43 | The following libraries are required: 44 | - AsyncTCP (can be installed fromzip file in library folder) 45 | - ESPAsyncWebServer (can be installed from zip file in library folder) 46 | - EEPROM (can be installed from zip file in library folder) (N.B. This library has been depreciated and should be replaced by Preferences. Raised as [issue #2](https://github.com/aklciot/TTGO-Gateway-repeater/issues/2)) 47 | - Adafruit MQTT 48 | - ESP8266 and ESP32 OLED driver for SSD1306 displays 49 | - RH_RF95.h from RadioHead 50 | 51 | ## Setup for different gateways 52 | * The node ID, repeater ID etc needs to be set up in `param.h` 53 | This should be configurable by the web interface over WiFi, [Issue #1](https://github.com/aklciot/TTGO-Gateway-repeater/issues/1) raised for this feature 54 | * MQTT setting need to be done in the `param.h1` file 55 | This should also be configurable over the web interface - see [Issue #3](https://github.com/aklciot/TTGO-Gateway-repeater/issues/3) 56 | 57 | ## Getting the Gateway Hardware 58 | The gateway software runs on three variants of TTGO LoRa Wifi ESP32 device that is compatible with Arduino ESP32. 59 |
    NOTE: Ensure you select the correct frequency, (915Mhz version for New Zealand use) or region. 60 | Edit the gateway code to match the hardware gateway device you have. 61 | 62 | #### Type One; LILYGO TTGO 915MHz SX1276 ESP32 LoRa 0.96 63 | 2Pcs LILYGO TTGO 915MHz SX1276 ESP32 LoRa 0.96 Inch Blue OLED Display bluetooth WIFI Module IOT Development Board 64 | https://www.banggood.com/2Pcs-LILYGO-TTGO-915MHz-SX1276-ESP32-LoRa-0_96-Inch-Blue-OLED-Display-bluetooth-WIFI-Module-IOT-Development-Board-p-1545115.html?rmmds=search&cur_warehouse=CN 65 |
    66 | #### Type Two; TTGO T-Beam; TTGO LoRa32 V2.1 ESP32LILYGO® 67 | TTGO LoRa32 V2.1 ESP32 433MHz/868MHz/915MHz OLED 0.96 Inch SD Card bluetooth WIFI Wireless Module SMA IP5306 - 915MHZ 68 | https://www.banggood.com/LILYGO-TTGO-LoRa32-V2_1-ESP32-433MHz868MHz915MHz-OLED-0_96-Inch-SD-Card-bluetooth-WIFI-Wireless-Module-SMA-IP5306-p-1545144.html?rmmds=search&ID=510803&cur_warehouse=CN 69 |
    70 | #### Type three; TTGO T-Beam 71 | TTGO T-Beam ESP32 433/868/915/923Mhz WiFi Wireless Bluetooth Module ESP 32 GPS NEO-6M SMA 18650 Battery Holder with OLED (915MHZ)
    72 | https://www.amazon.com/TTGO-T-Beam-Wireless-Bluetooth-Battery/dp/B07WVWCMKZ 73 | 74 | ## Gateway Modes of operation: 75 | 76 | There are four operation modes. 77 | 78 | ### Setup Mode: 79 | This mode allows the end user to enter the WiFi connection credentials and select the mode of operation. 80 | 81 | ### Gateway Mode: 82 | This is the main operation mode. Gateway mode receives sensor data over LoRa and sends it over the internet to the data processing service. 83 | 84 | ### Repeater Mode: 85 | This mode converts the gateway in to a LoRa to LoRa signal repeater that extends the range of the network and allows sensors to be put in locations where the gateway cannot otherwise make a connection. 86 | 87 | ### Monitor Mode: 88 | The signal monitor mode primary function is during network setup. The monitor provides unique features to assist in location decisions including signal strength and auto reply functions. This mode also provides local only (iwi) mode, this is an important feature identified by Mana Whenua ensures data remains in the local area. 89 | 90 | 91 | ## Change log 92 | - Version WD-2.3.5, 27-Feb-2020, Added MQTT reconnect to failed publish gateway loop 93 | - Version WD-2.3.4 Reduced RSSI value in Monitor mode 94 | - Version WD-2.3.3 Reduced RSSI value in Repeater mode- Version WD-2.3.2 Added Iwi mode 95 | - Version WD-2.3.1 Reordered library load to free some memory 96 | - Version WD-2.3.0 Printed some dots, cleared some memory 97 | - Version WD-2.2.9 Moved serial prints to from SVRAM to PROGMEM (F()) 98 | - Version WD-2.2.8 Added MQTT publish to while loop function 99 | - Version WD-2.2.7 Added clear buffer memory prior to publish 100 | - Version WD-2.2.6 Added OLED display burn-in saver 101 | - Version WD-2.2.5 Added new watchdog 102 | - Version WD-2.2.4 Added Uptime and - Version to LoRa send test message 103 | - Version WD-2.2.3 Disable watchdog function until it can be made stable 104 | - Version WD-2.2.2 Added auto reply message in gateway mode, keyword "TTMon" from a monitor node 105 | - Version WD-2.2.1 Increased watchdog timeout to 1 minute 106 | - Version WD-2.2.0 Reconfigured gateway loop to prioritise LoRa receive 107 | - Version WD-2.1.8 Added MQTT failed publish counter and max trys reset 108 | - Version JW-2.1.7 Moved changable parameters to a separate file 109 | - Version AC-2.1.6 Added repeater loop'd message detection. Thanks Aldo! 110 | - Version WD-2.1.5 Enabled watchdog reset to Gateway and Repeater mode. 111 | - Version WD-2.1.4 Added Gateway ID to serial diagnostics. 112 | - Version WD-2.1.3 Added remote config for setup-mode and LoRa spreading factor over MQTT control subscribe. 113 | - Version WD-2.1.1 Modified uptime seconds to minutes. 114 | - Version WD-2.1.0 added serial print WiFi MAC address to start-up. 115 | - Version WD-2.0.9 added support for TTGO T-Beam v1 116 | - Version WD-2.0.8 added channel spreading factor to AP setup mode 117 | - Version WD-2.0.7 added Project ID to gateway status message 118 | - Version WD-2.0.6 added support for TTGO - Version 1.6 119 | - Version WD-2.0.5 Moved location for lat-long to SRAM 120 | - Version WD-2.0 added SRAM setup mode via WiFi 121 | - Version WD-1.8 Removed reply message 122 | - Version WD-1.7 Added reset counter watchdog during wifi and mqtt connection 123 | - Version WD-1.4 Disabled watchdog during connection to aviod watchdog loop lockout 124 | - Version WD-1.3 Added power fail status 125 | - Version WD-1.2 Added non blocking 5 min delay for status 126 | - Version WD-1.1 Added location to health status message 127 | - Version WD-1.0 Added health status queue 128 | - Version WD-0.9 Updated health status message to include uptime 129 | - Version WD-0.8 Added gateway health message publish 130 | - Version WD-0.7 Added gateway location message values 131 | - Version WD-0.6 Added RSSI message value 132 | - Version WD-0.5 Added reset counter during wifi and mqtt connection 133 | - Version WD-0.4 Added ESP.restart(); to mqtt RESET command. 134 | - Version WD-0.3 Added test message button 135 | - Version WD-0.2 Updated serial diagnostics 136 | - Version WD-0.1 Initial build 137 | -------------------------------------------------------------------------------- /TTGO_GatewayModes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aklciot/Open-Data-Telemetry-Network/05af88629df3a2c6ecfcd46258d35067eaf9d07f/TTGO_GatewayModes.pdf -------------------------------------------------------------------------------- /TTGO_WiFi_SetupPage.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aklciot/Open-Data-Telemetry-Network/05af88629df3a2c6ecfcd46258d35067eaf9d07f/TTGO_WiFi_SetupPage.pdf -------------------------------------------------------------------------------- /USER_GUIDE_MulitimodeGateway_1.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aklciot/Open-Data-Telemetry-Network/05af88629df3a2c6ecfcd46258d35067eaf9d07f/USER_GUIDE_MulitimodeGateway_1.0.pdf -------------------------------------------------------------------------------- /libraries/AsyncTCP-master.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aklciot/Open-Data-Telemetry-Network/05af88629df3a2c6ecfcd46258d35067eaf9d07f/libraries/AsyncTCP-master.zip -------------------------------------------------------------------------------- /libraries/EEPROM.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aklciot/Open-Data-Telemetry-Network/05af88629df3a2c6ecfcd46258d35067eaf9d07f/libraries/EEPROM.zip -------------------------------------------------------------------------------- /libraries/ESPAsyncWebServer-master.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aklciot/Open-Data-Telemetry-Network/05af88629df3a2c6ecfcd46258d35067eaf9d07f/libraries/ESPAsyncWebServer-master.zip -------------------------------------------------------------------------------- /libraries/RadioHead-1.85.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aklciot/Open-Data-Telemetry-Network/05af88629df3a2c6ecfcd46258d35067eaf9d07f/libraries/RadioHead-1.85.zip -------------------------------------------------------------------------------- /libraries/esp8266-oled-ssd1306-master.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aklciot/Open-Data-Telemetry-Network/05af88629df3a2c6ecfcd46258d35067eaf9d07f/libraries/esp8266-oled-ssd1306-master.zip -------------------------------------------------------------------------------- /param.h: -------------------------------------------------------------------------------- 1 | // *************** Unique ID's *******************// 2 | #define GWID "TTGWLB1" // Gateway mode ID 3 | char* MonID = "TTMonLB1"; // Monitor mode ID must start with TTMon to trigger auto-reply from a receiving gateway 4 | char* RPID = "RP8"; // Repeater mode ID used to prevent endless message loops between repeaters 5 | char* SNodeID = "TT-RP8"; // Node ID used in repeater mode status message. Please see the manual for more explanations of the monitor and repeater operating modes 6 | 7 | #define MQTT_SERVER "mqtt.innovateauckland.nz" 8 | #define MQTT_SERVERPORT 1883 9 | #define MQTT_USERNAME "simple" 10 | #define MQTT_KEY "simplePassword" // key or password 11 | #define MQTT_TOPIC "AKLC" // topic root 12 | --------------------------------------------------------------------------------