IoT / DIY-Projekt
LoRaWAN Klient
För anslutning till TheThingsNetwork.org


INDEX
  • Inledning
  • Senast uppdaterat
  • - Heltec ESP32
  • Nyttolast / Payload
  • Beskrivning
  • Budget / Transport
  • Referenser / Länkar m.m.
  • 'Disclaimer'

  • Om min LoRa Gateway

  • Inledning
    Bygger LoRaWAN klienter för att ansluta via gateway till 'thethingsnetwork.org'[R1], det är ett publikt nätverk för LoRa.

    Tanken är att kunna ansluta en rad billiga LoRaWAN klienter men olika sensorer för att samla in data i det närmaste grannskapet.

    Går inte in på LoRa's grundläggande teknik, principer eller funktion, det finns redan en rad mycket bra beskrivningar av detta, länkar till några av dessa under sektionen '
    Referenser' längst ner på sidan.


    LoRaWAN klient skickar datapaket...
    Senast uppdaterat
    2020.09.23 Testkör nu Heltec-ESP32(v2) med min
    LoRaWAN gateway - Skickar upp test-data, nästa steg är att addera inläsning av riktig sensor-data och att lagra ner sensor-data för att komma åt den från webb applikationer.

    2020.07.20 Har även inhandlat lite radio-kort till mina LoRa klienter för att ha något att börja med. Fick hem två 'Dragino LoRa Shield' för arduino och en GP antenn för min LoRa konsentrator / gateway. Två Heltec-ESP32(v2) kort ligger också färdiga för att testköras.


    Dragino LoRa Shield monterad ovanpå en Arduino UNO / Heltec-ESP32(v2)

    Heltec-ESP32
    2020.07.20 Testar med 'Heltec ESP32+LoRa' moduler, det är 'färdiga' SX1276 LoRa moduler med inbyggd Arduino (NANO) kompatibel 32bit dualcore processor, 0,96" OLED display, automatik för laddning av LiPo batterier, WiFi (2,4GHz) & BT och USB interface.


    Heltec ESP32+LoRa

    Heltec ESP32+LoRa Series Quick Start -->
    Här!

    2020.09.22 Här ligger nu min egen beskrivning på hur man kan använda Heltec ESP32 för att ansluta som klient till TheThingsNetwork.org (TTN).

    Börja med att konfigurerar ARDUINO IDE utvecklingsmiljö för att använda Heltec ESP32 kortet.

    Först måste man ladda ner och installera ARDUINO IDE
    https://www.arduino.cc/download.php?f=/arduino-nightly-windows.zip

    När allt är på plats, så starta med en tom ’sketch’



    Nu måste ARDUINO IDE anpassas för Heltec ESP32 - Gå till meny [Fil] --> [Inställningar]



    Fyll i raden ’Additional boards Manager URL:s’ skriv in
    https://resource.heltec.cn/download/package_heltec_esp32_index.json

    Klicka [OK]

    Gå till meny [Verktyg] --> [Hantera bibliotek] sök efter biblioteket ’Heltec ESP32’



    Klicka på [Installera] - När det är klart klickar du på [Stäng]

    Ny ska du välja rätt kort i ARDUINO IDE Gå till meny [Verktyg] --> [Kort:] --> [HELTEC ESP32 Arduino] --> [WiFi LoRa 32(V2)]

    Välj frekvensband för din LoRa klient – Gå till meny [Verktyg] --> [LoRaWAN Region:] välj: REGION_EU868

    Nu ska din miljö för hantering av HELTEC ESP32 vara klar.

    HELTEC ESP32 + TTN
    För att kunna använda Heltec ESP32 med TTN har Heltec tagit fram ett eget bibliotek. https://github.com/HelTecAutomation/ESP32_LoRaWAN

    Ladda ner biblioteket och lägg till det i ARDINO IDE - Gå till meny [Skiss] --> [Inkludera bibliotek] --> [Lägg till .ZIP bibliotek] – Välj filen du just laddade ner.

    Ladda nu in exempel sketch. Gå till meny [Fil] --> [Exempel] --> [ESP32_LoRaWAN] välj [OTAA_OLED]

    Såhär ser .ino sketch filen ut


    I .ino filen måste vi nu ändra lite, dom strängar som ska ändras är: ’DevEui’, ’AppEui’ och ’AppKey’ (Orange markering) Dom strängar som ska skrivas in genereras när du skapar en 'Device' i TTN Console.

    Skapa 'application' @ TTN
    Logga in i TheThingsNetwork.org och öppna din 'Console'

    Om du inte har skapat ett konto ännu så är det nu dax att göra den, notera att du MÅSTE använda en aktiv e-post adress och validera den genom att svara på ett valideringsmail från 'TheThingsNetwork.org' (Följ instruktioner på TheThingsNetwork.org för att skapa ditt konto)



    Gå till din 'Console' --> Klicka på 'APPLICATION' --> Klicka på 'Add application'

    Skriv in ett namn och en beskrivning för din nya 'Application' - I praktiken spelar det ingen roll vad du skriver in här, men det kan vara en bra idé att namnge och beskriva din applikation så att du kan hålla reda på dom längre fram.

    Klicka på knappen [Add aplication] när du är klar. Din nya 'Application' ligger nu i listan. Öppna din nya applikation.

    Skapa 'device' @ TTN
    Klicka på 'Devices' --> Klicka på 'Register devices' för att lägga till en enhet.



    Namnge din enhet, skriv namnet i raden 'Device ID' (Du namnger din enhet) --> Klicka på 'Register' när du är klar.

    Nu visas 'DEVICE OVERVIEW' för din nyskapade enhet. (Se bild nedan)



    Här kan du nu utläsa strängvärden för ’DevEui’, ’AppEui’ och ’AppKey’ (Orange markering) - Klicka på [<>] vid respektive rad för att visa strängvärden i HEXADECIMALT format. Kopiera ut respektive strängvärde och kopiera in dom på respektive rad för ’DevEui’, ’AppEui’ och ’AppKey’ i sketch filen i ARDUINO IDE (OTAA_OLED.ino)

    Andra värden i sketchfilen som kan vara intressanta att titta på / ändra är tidsfördröjning (Loop) för uppladdning (Tiden anges i millisekunder 120000 = 2minuter)

    /*the application data transmission duty cycle.  value in [ms].*/
    uint32_t appTxDutyCycle = 120000;
    

    Nu är det bara att kompilera din sketch och att ladda upp den till Heltec ESP32 kortet. När uppladdningen är klar så startas din nyinstallerade LoRaWAN klient om, data laddas nu upp med 2 minuters intervall.


    HELTEC ESP32 'Up and running!'

    Notera att TheThingsNetwork.org har en regel för hur mycket / hur många gånger man får skicka upp data. Läs även TheThingsNetwork.org 'Fair Access Policy [guidelines]

    Nyttolast / Payload
    Nu är det dax att få koll på hur man laddar upp sin data och hur man sedan kan nyttja den i sina projekt.

    I sketch test-filen 'OTAA_OLED.ino' ligger lite simulerad data inlaggd i sektionen:

    static void prepareTxFrame( uint8_t port )
    {
        appDataSize = 4;//AppDataSize max value is 64
        appData[0] = 0x00;
        appData[1] = 0x01;
        appData[2] = 0x02;
        appData[3] = 0x03;
    }
    

    I praktiken kan man naturligtvis lägga in kod för avläsning av sensordata eller en 'void loop()' för att invänta t.ex. en knapptryckning eller liknande.

    Simulerade data i sketch test-filen 'OTAA_OLED.ino' är 4 byte i HEXADESIMALT format. Max datastorlek per sändning kan bara 64Byte.

    Notera att data som skickas upp till TheThingsNetwork.org 'By Default' INTE lagras någonstans. Man kan se data komma in i realtid i Console under:

    --> 'APPLICATIONS' --> [Din application] --> 'DEVICES' --> [Din Device] - Klicka på 'Data'



    Här ser man att mina 'test-data' 00 01 02 03 (Payload) laddas upp med 2 minuter intervall (I .ino filen är parameter: appTxDutyCycle = 120000)

    Anpassa data-format
    Du kan 'anpassa' data formateringen (Hur du vill presentera dina data) i din Console, under:

    --> Applications [Din application] --> Payload Formats



    Här hittar du inte mindre än fyra grundläggande funktioner, 'decoder', 'converter' och 'validator' för inkommande data och funktionen 'encoder' för utgående data.

    Funktionerna är skrivna i Java, här kan du editera java-koden direkt, där är också en funktion för att testa din java-kod, mata in egna testdata och klicka på [Test] så ser du vad som händer med dina test-data, när man är klar så är det bara att sparar ändringarna.

    Lagra data @ TTN
    Data som visa är 'borta' i samma sekund som dom visas, det fins flera sätt att skicka ut data. TheThingsNetwork.org har även en gratis lagringstjänst, där lagras dina data löpande i 7 dagar. Lagringsfunktionen hittar du i din Console under:

    --> Applications --> [Din application] --> Integrations

    Välj --> Add integration --> Klicka på 'Data storage' --> Klicka 'Add Integration' --> Klart!



    Dina mätdata lagras nu i en databas, du kan nu ansluta din applikation till databasen (API) och hämta ut mät-data 7 dagar bakåt. Den här metoden är lämplig för t.ex. långa (Oändliga) mät-serier.

    Hur du ansluter (API) kan du läsa mera om här:
    https://www.thethingsnetwork.org/docs/applications/storage/api.html

    Skicka ut data från TTN


    Beskrivning
    2020.07.11 Har idag påbörjat förberedelser för mitt 'vinter projekt' - Tanken är att jag ska lära mig mera om 'LoRa' en teknik för kommunikation av främst telemetri-data över mycket stora avstånd. LoRa använder fria frekvenser, i Sverige är det 8kanaler inom 865--886MHz som används.


    Copyright © 2018 Alexandru Lavric and Valentin Popa

    www.PTS.se[R7] 'Allmän kortdistansradio' / Undantag från tillståndsplikt 2006/771/EG 2017/1483/EU

    LoRa använder väldigt låg effekt, för att ändå kunna övergrygga stora avstånd har tekniken starkt begränsad bandbredd, och därmed även låg data kapacitet, man talar om 250bit/s upp till 11kbit/s per kanal. Det gör att LoRa inte kan användas för kommunikation i 'realtid'. LoRa är förhållandevis säkert, 'TheThingsNetwork'[R1] använder 128bit end-to-end kryptering.

    Börjar med att läsa på lite. Har hittat en rad bra 'HowTo' filmer på YouTube, länkar ligger under '
    Referenser' längst ner på sidan.


    Enkel principskiss

    2020.07.19 Försöker att lyssna på LoRa frekvenserna inom 865--868,8MHz med hjälp av en SDR mottagara, skanna i 100KHz steg. Detta är vad jag kan hitta om LoRa frekvenser och kanal indelning ref: TheThingsNetwork.org[R1]

    EU863-870 / CEPT Rec. 70-03.

    Uplink:
    1. 868.1 - SF7BW125 to SF12BW125
    2. 868.3 - SF7BW125 to SF12BW125 and SF7BW250
    3. 868.5 - SF7BW125 to SF12BW125
    4. 867.1 - SF7BW125 to SF12BW125
    5. 867.3 - SF7BW125 to SF12BW125
    6. 867.5 - SF7BW125 to SF12BW125
    7. 867.7 - SF7BW125 to SF12BW125
    8. 867.9 - SF7BW125 to SF12BW125
    9. 868.8 - FSK
    Downlink:

  • Uplink channels 1-9 (RX1)
  • 869.525 - SF9BW125 (RX2 downlink only)


    Scannar med RTL-SDR mottagare och AirSPY programvara

    Beskrivning:
  • HOW TO BUILD YOUR OWN LORAWAN GATEWAY @ TheThingsNetwork[R1]
  • IMST IC880A-SPI – LORAWAN SETUP @ TheThingsNetwork[R1]
  • LoRa Dragino shield HowTo @ Dragino.com[R8]

    Några noteringar Plus :-)


  • Några noteringar Minus :-(


  • Budget / Transport
    Kostnader t.o.m. 2019.06.05
    =====================================================================
     ......................... 
    =====================================================================
    Totalt                                           
    

    Länkar / Leverantörer / Referenser
    Honors to the brains behind - 'Äras den som äras bör' - som talesättet säger. Som vanligt så är det inte jag som kommit på allt detta. Här hittar ni länkar till referenser och leverantörer.

    Leverantörer:
    [L1] eBay.com
    [L2] iC880A-SPI - LoRaWAN Concentrator 868 MHz
    @IMST WebShop
    [L3] RPI's, sensorer och massor med 'IoT' tillbehör @ M.nu
    [L4] ELECTROKIT.se

    Länkar / Referenser:
    [R1] TheThingsNetwork www.thethingsnetwork.org
    [R2] #112 LoRa / LoRaWAN De-Mystified / Tutorial - @YouTube
    [R3] #115 How to build a LoRa / LoraWAN Gateway - @YouTube
    [R4] #117 DIY LoRa Node with Arduino and Dragino Shield@YouTube
    [R5] #124 Cheap LoRa Gateway / Tutorial @YouTube
    [R6] #134 LoRa Gateway with ESP8266 and a RFM95 Tutorial - @YouTube
    [R7] Frekvensplan @ www.PTS.se
    [R8] LoRa Klient HowTo @ Dragino.com
    [R9] What are LoRa® and LoRaWAN®? @ semtech.com


    'Disclaimer'
    The information given on this page is given on an 'As Is' basis and aimed for NON COMMERCIAL use only. The author can not be held responsible for any use of the information. Any registered product / trademark or company name on the page is the property of their respective owners.

    Notera!
    Det är helt personliga reflektioner och upplevelser vi skriver om på den här sidan, dessa är inte några 'Expert' kommentarer / utlåtanden. Vi rekommenderar INTE att någon ska göra dom ändringar / Modifieringar som vi gjort och som beskrivs på denna sida, då dessa HELT SÄKERT gör att alla garantier som leverantören utställt OMEDELBART upphör.

    Våra tester och slutsatser kan INTE, och ska INTE tas för intäkt att samma eller motsvarande resultat eller upplevelse kan erhållas eller efterliknas någon annanstans eller av någon annan.




    Go Back!


    ©2010--2018 SM2YER Goran