Hauptmenü

LoRa Diskussion...

Begonnen von Ranseyer, 16 Dezember 2017, 20:43:53

Vorheriges Thema - Nächstes Thema

Ranseyer

Ich habe hier mal meine Vorstellung gepostet: https://forum.fhem.de/index.php/topic,75286.msg735409.html#msg735409
@Peter: Magst Du auch mal Deinen Entwurf posten ?
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!


PeMue

Zitat von: Ranseyer am 22 Dezember 2017, 12:37:00
Ich habe hier mal meine Vorstellung gepostet: https://forum.fhem.de/index.php/topic,75286.msg735409.html#msg735409
@Peter: Magst Du auch mal Deinen Entwurf posten ?
Hallo Martin,

mache ich, sobald ich den richtigen Footprint in Eagle habe ...

Wünsche allen schöne Weihnachten.

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Ranseyer

Hm, mir wäre ich hätte noch ein paar Links gepostet.

Hier mal die kommerzielle Version mit Gateway:
https://1nce.com/wp-content/themes/1nce/custom/images/2018/02/IoT-now-IoT-Connectivity-Supplement-2018.pdf?5a956d82
(Mich hätte mal deren HW interessiert...)
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Ranseyer

#34
Meine LoRa Testumgebung läuft.
Allerdings stosse ich an die Grenzen des Grundstücks beim Testen. (Erster Eindruck: Es läuft weiter und stabiler. Das Gateway ist bewusst im Keller an der dümmsten Stelle)

Für den Test benutze ich einen RFM95 (der kleine Footprint) auf der rechten + linken Platine.
Als Sensor einen BMP180

Config siehe: https://github.com/ranseyer/MySensors-HW/blob/master/MySensors-HM-easy-PCB-RFM-CC1101-RS485-NRF/Sourcecode/BMP180-RFM95-LoRa/BMP180-RFM95-LoRa.ino
//#define   MY_DEBUG_VERBOSE_RFM95
#define MY_RADIO_RFM95
#define MY_TRANSPORT_STATE_TIMEOUT_MS  (3*1000ul)
#define RFM95_RETRY_TIMEOUT_MS  (3000ul)
#define MY_RFM95_FREQUENCY  (RFM95_868MHZ)
#define MY_RFM95_MODEM_CONFIGRUATION  RFM95_BW125CR48SF4096
//#define   MY_DEBUG_VERBOSE_RFM95_REGISTERS
//#define MY_RFM95_ATC_TARGET_RSSI (-70)  // target RSSI -70dBm
//#define   MY_RFM95_MAX_POWER_LEVEL_DBM (20)   // max. TX power 10dBm = 10mW

Allerdings habe ich nocht nicht so richtig die Parameter durchgearbeitet.

Herausforderung ist nun eine größere Entfernung zum Testen, und dazu muss ich erst nochmals zum Thema Stromsparen bei mySensors forschen damit das Teil dann auch ne Weile läuft.
Ich hätte mir mal diesen angesehen: https://www.mysensors.org/download/node-manager

Internals:
   CFGFN     
   DEF        100
   IODev      mySensGwLoRaKeller
   I_SKETCH_NAME Pressure Sensor
   I_SKETCH_VERSION 1.1
   NAME       MYSENSOR_100
   NR         563
   STATE      ???
   TYPE       MYSENSORS_DEVICE
   ack        0
   protocol   2.2.0
   radioId    100
   repeater   0
   READINGS:
     2018-03-25 14:01:20   SKETCH_NAME     Pressure Sensor
     2018-03-25 14:01:24   SKETCH_VERSION  1.1
     2018-03-25 14:43:08   forecast        stable
     2018-03-25 14:01:14   parentId        0
     2018-03-25 15:29:21   pressure        1023
     2018-03-25 15:24:39   temperature1    7.1
   readingMappings:
     0:
       4:
         name       pressure
       5:
         name       forecast
     1:
       0:
         name       temperature1
       42:
         name       id1
   sensorMappings:
     0:
       receives:
       sends:
         16
         15
     1:
       receives:
       sends:
         16
         15
     10:
       receives:
       sends:
         6
         7
     11:
       receives:
       sends:
         11
     12:
       receives:
       sends:
         12
         14
     13:
       receives:
         24
       sends:
         17
         18
         54
         55
         56
         24
     14:
       receives:
       sends:
         45
         21
         0
         2
     15:
       receives:
       sends:
         13
         43
     16:
       receives:
       sends:
         23
         37
     17:
       receives:
       sends:
     18:
       receives:
       sends:
     19:
       receives:
         36
       sends:
         36
     2:
       receives:
       sends:
         16
         15
     20:
       receives:
         32
       sends:
         33
         50
         32
     21:
       receives:
         24
       sends:
         34
         35
         24
     22:
       receives:
       sends:
         37
         43
     23:
       receives:
         24
         25
         26
         27
         28
       sends:
         24
         25
         26
         27
         28
     24:
       receives:
       sends:
         37
         43
     25:
       receives:
       sends:
         19
         20
     26:
       receives:
         40
         17
       sends:
         40
         17
     27:
       receives:
         41
         17
       sends:
         41
         17
     28:
       receives:
         40
       sends:
         40
     29:
       receives:
       sends:
         2
         0
         45
         44
         21
         46
         22
     3:
       receives:
         2
         17
       sends:
         2
         17
     30:
       receives:
       sends:
         38
         39
         14
     31:
       receives:
       sends:
         2
         16
     32:
       receives:
       sends:
         16
         15
     33:
       receives:
       sends:
         37
         16
         15
     34:
       receives:
       sends:
         37
         16
         15
     35:
       receives:
       sends:
         37
         16
         15
     36:
       receives:
         47
       sends:
         47
     37:
       receives:
       sends:
         34
         35
     38:
       receives:
       sends:
         49
     39:
       receives:
       sends:
         0
         51
         52
         53
         2
     4:
       receives:
         2
         3
         17
       sends:
         2
         3
         17
     5:
       receives:
         29
         30
         31
         3
       sends:
         29
         30
         31
         3
     6:
       receives:
       sends:
         0
         42
     7:
       receives:
       sends:
         1
     8:
       receives:
       sends:
         4
         5
     9:
       receives:
       sends:
         8
         9
         10
   sets:
     reboot     
     time       
   typeMappings:
     0:
       type       temperature
     1:
       type       humidity
     10:
       type       direction
     11:
       type       uv
     12:
       type       weight
     13:
       type       distance
     14:
       type       impedance
     15:
       type       armed
       val:
         0          off
         1          on
     16:
       type       tripped
       val:
         0          off
         1          on
     17:
       type       power
     18:
       type       energy
     19:
       type       button_on
     2:
       type       status
       val:
         0          off
         1          on
     20:
       type       button_off
     21:
       type       hvacflowstate
     22:
       type       hvacspeed
     23:
       type       brightness
       range:
         max        100
         min        0
         step       1
     24:
       type       value1
     25:
       type       value2
     26:
       type       value3
     27:
       type       value4
     28:
       type       value5
     29:
       type       up
     3:
       type       percentage
       range:
         max        100
         min        0
         step       1
     30:
       type       down
     31:
       type       stop
     32:
       type       ir_send
     33:
       type       ir_receive
     34:
       type       flow
     35:
       type       volume
     36:
       type       lockstatus
       val:
         0          off
         1          on
     37:
       type       level
     38:
       type       voltage
     39:
       type       current
     4:
       type       pressure
     40:
       type       rgb
     41:
       type       rgbw
     42:
       type       id
     43:
       type       unitprefix
     44:
       type       hvacsetpointcool
     45:
       type       hvacsetpointheat
     46:
       type       hvacflowmode
     47:
       type       text
     48:
       type       custom
     49:
       type       position
     5:
       type       forecast
       val:
         0          stable
         1          sunny
         2          cloudy
         3          unstable
         4          thunderstorm
         5          unknown
     50:
       type       ir_record
     51:
       type       ph
     52:
       type       orp
     53:
       type       ec
     54:
       type       value
     55:
       type       va
     56:
       type       power_factor
     6:
       type       rain
     7:
       type       rainrate
     8:
       type       wind
     9:
       type       gust
Attributes:
   DbLogExclude .*
   IODev      mySensGwLoRaKeller
   mapReading_forecast 0 forecast
   mapReading_id1 1 id
   mapReading_pressure 0 pressure
   mapReading_temperature1 1 temperature
   mode       node
   version    2.2.0
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Markus.

Liest sich gut..

Bin leider noch nicht viel weiter, habe nur ein Gateway mal zusammengebaut mit einem LoRa01.

Nut weiß ich noch nicht wie ich am einfachsten zum testen einen Sensor auf LoRa01 Basis mit dem Minimal-Board zusammen stricke...

https://www.openhardware.io/view/394/Minimalist-LoRa-Ra-01-Shield-for-WeMos-D1-Mini

Gruß

Markus

Ranseyer

Das weiss ich auch nicht. Aber wenns auf Arduino +RFM95 Basis sein soll kann ich dir aushelfen.
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

smoudo

Das hört sich doch mal nach einem vielversprechenden funkchip an.
Wie groß ist dein Grundstück? Mit welchen Hindernissen arbeitest du?
Ich such immer noch nach einer passablen Lösung für die Zisterne!
Gateway ist seriell oder lan?


Grüße

Matze

Ranseyer

Ich nutze ein Serielles Gateway und als Antenne nur die Spirale die bei den CC1101 beiliegt (also von anderem Funkmodul).
Im zweiten Step ggf. das siehe Anlage.

Also mal geschätzt 4 relativ dicke Wände, und geschätzte 40m. Hab bisher noch keine einfache Lösung gesehen um den RSSI zu übertragen.
Daher die Idee mal weiter weg zu testen an nem ganz anderen Grundstück. (geschätzte 3-400m mit Hindernissen)
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Ranseyer

Hier noch ein neter Artikel: https://omkarjr.in/posts/projects/LoraTCL/
Anmerkungen:
-Lithium-Batterien wäre bei uns im Winter ziemlich blöd
-Tata ist der IT-Gigant in Indien; vermute die nutzen auch 868 MHz wenn man die Antenne so anschaut
-Der verlinkte Rechner ist sehr nett: https://m0ukd.com/calculators/quarter-wave-ground-plane-antenna-calculator/
-Groundplane ist immer ein guter Start, N-Buchsen sind wasserdicht und eine gute Basis.
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Ranseyer

Zum Stromverbrauch (Arduino Pro Mini (3,3V/8MHz, Power-LED entfernt; RFM95, +BMP180, ~4,4V LiPo über den Spannungsregler vom Arduino):

-2,9mA ohne Aktivität
-20-80mA während der ersten 2-3 Minuten bis die Daten übetragen sind.

Aktueller Sketch mit sehr moderater Optimierung des Stromverbrauchs (Vor allem 900 Sekunden Sleep):

// Enable debug prints to serial monitor
#define MY_DEBUG


// Enable and select radio type attached
//#define MY_RADIO_NRF24
//#define MY_RADIO_NRF5_ESB
//#define MY_RADIO_RFM69
#define MY_RADIO_RFM95

//#define   MY_DEBUG_VERBOSE_RFM95
#define MY_RADIO_RFM95
#define MY_TRANSPORT_STATE_TIMEOUT_MS  (3*1000ul)
#define RFM95_RETRY_TIMEOUT_MS  (3000ul)
#define MY_RFM95_FREQUENCY  (RFM95_868MHZ)

#define MY_RFM95_MODEM_CONFIGRUATION  RFM95_BW125CR48SF4096
// BW125CR45SF128     Default, medium range 50ms
// BW500CR45SF128     Fast, short range 15ms
// BW31_25CR48SF512   Slow, long range 900ms
// BW125CR48SF4096    Slow, long range 1500ms
// https://docs.google.com/spreadsheets/d/1voGAtQAjC1qBmaVuP1ApNKs1ekgUjavHuVQIXyYSvNc


//#define   MY_DEBUG_VERBOSE_RFM95_REGISTERS
//#define MY_RFM95_ATC_TARGET_RSSI (-70)  // target RSSI -70dBm
//#define   MY_RFM95_MAX_POWER_LEVEL_DBM (20)   // max. TX power 10dBm = 10mW



#include <SPI.h>
#include <MySensors.h> 
#include <Wire.h>
#include <Adafruit_BMP085.h>

#define BARO_CHILD 0
#define TEMP_CHILD 1

const float ALTITUDE = 688; // <-- adapt this value to your own location's altitude.

// Sleep time between reads (in seconds). Do not change this value as the forecast algorithm needs a sample every minute.
const unsigned long SLEEP_TIME = 900000;

Adafruit_BMP085 bmp = Adafruit_BMP085();      // Digital Pressure Sensor

float lastPressure = -1;
float lastTemp = -1;
int lastForecast = -1;

const int LAST_SAMPLES_COUNT = 5;
float lastPressureSamples[LAST_SAMPLES_COUNT];

// this CONVERSION_FACTOR is used to convert from Pa to kPa in forecast algorithm
// get kPa/h be dividing hPa by 10
#define CONVERSION_FACTOR (1.0/10.0)

int minuteCount = 0;
bool firstRound = true;
// average value is used in forecast algorithm.
float pressureAvg;
// average after 2 hours is used as reference value for the next iteration.
float pressureAvg2;

float dP_dt;
bool metric;
MyMessage tempMsg(TEMP_CHILD, V_TEMP);
MyMessage pressureMsg(BARO_CHILD, V_PRESSURE);
MyMessage forecastMsg(BARO_CHILD, V_FORECAST);


void setup()
{
  if (!bmp.begin())
  {
    Serial.println("Could not find a valid BMP085 sensor, check wiring!");
    while (1) {}
  }
}

void presentation()  {
  // Send the sketch version information to the gateway and Controller
  sendSketchInfo("PressSensLoRa", "0.0.1");

  // Register sensors to gw (they will be created as child devices)
  present(BARO_CHILD, S_BARO);
  present(TEMP_CHILD, S_TEMP);
}

void loop()
{
  float pressure = bmp.readSealevelPressure(ALTITUDE) / 100.0;
  float temperature = bmp.readTemperature();

  Serial.print("Temperature = ");
  Serial.print(temperature);
  Serial.println(" *C");
  Serial.print("Pressure = ");
  Serial.print(pressure);
  Serial.println(" hPa");


  if (temperature != lastTemp)
  {
    send(tempMsg.set(temperature, 1));
    lastTemp = temperature;
  }

  if (pressure != lastPressure)
  {
    send(pressureMsg.set(pressure, 0));
    lastPressure = pressure;
  }


  sleep(SLEEP_TIME);
}
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Ranseyer

#41
Im Moment hab ich ne stabile Verbindung mit dem Node von oben.

(Gateway im Keller und auf beiden Seiten primitivste 866 MHz "Spulen"... Es sind definiv einiger Häuser im Weg !)

Zitat2018-04-06_09:46:38 MYSENSOR_101_LoRa_Batterie pressure: 1039
2018-04-06_10:01:29 MYSENSOR_101_LoRa_Batterie temperature1: 20.6
2018-04-06_10:01:32 MYSENSOR_101_LoRa_Batterie pressure: 1039
2018-04-06_10:16:23 MYSENSOR_101_LoRa_Batterie pressure: 1039
2018-04-06_10:31:14 MYSENSOR_101_LoRa_Batterie pressure: 1039
2018-04-06_10:46:05 MYSENSOR_101_LoRa_Batterie pressure: 1039
2018-04-06_11:00:55 MYSENSOR_101_LoRa_Batterie pressure: 1039

2018-04-06_11:15:46 MYSENSOR_101_LoRa_Batterie temperature1: 20.7
2018-04-06_11:15:49 MYSENSOR_101_LoRa_Batterie pressure: 1039
2018-04-07_19:35:19 MYSENSOR_101_LoRa_Batterie temperature1: 24.1

2018-04-07_19:35:22 MYSENSOR_101_LoRa_Batterie pressure: 1018
2018-04-07_19:50:15 MYSENSOR_101_LoRa_Batterie temperature1: 20.6
2018-04-07_19:50:18 MYSENSOR_101_LoRa_Batterie pressure: 1017
2018-04-07_20:05:09 MYSENSOR_101_LoRa_Batterie temperature1: 18.4
2018-04-07_20:05:17 MYSENSOR_101_LoRa_Batterie pressure: 1018
2018-04-07_20:20:16 MYSENSOR_101_LoRa_Batterie temperature1: 17.1
2018-04-07_20:20:19 MYSENSOR_101_LoRa_Batterie pressure: 1019
2018-04-07_20:35:09 MYSENSOR_101_LoRa_Batterie temperature1: 16.2
2018-04-07_20:35:12 MYSENSOR_101_LoRa_Batterie pressure: 1021
2018-04-07_20:50:11 MYSENSOR_101_LoRa_Batterie temperature1: 15.6



Bin also mehr als zufrieden. Der Emfang kann derzeit nur über Reflexionen laufen. Mit etwas besseren Antennen und sinnvollen Standorten sehe ich heftiges Potential nach oben.



ed: Die Darstellung ist nur zu 90% korrekt. Ich habe 800MHz ausgewählt. Bei 886 MHz ist die Fresnelzone (Orange) etwas schmaler, da höhere Frequenz. Trotzdem sind die Gebäude im Weg.
http://www.lte-anbieter.info/gelaende/hoehenprofil.php
Trotzdem sieht man ja dass bereits am "Nullpunkt", wo ich wohne, bereits gut 50% der Sendeleistung in der Erde landen...

In dem rot/orange markierten Log war die GW Antenne in direkter Nähe zu reichlich Patchkabeln...
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Markus.

sag mal verwendest du das Standard Mys-Gateway Sketch? Oder hast du da einige Anpassungen gemacht?

mein Gatewaysketch sieht wie folgt aus für ein Lora Ra01

#define MY_DEBUG

// Use a bit lower baudrate for serial prints on ESP8266 than default in MyConfig.h
#define MY_BAUD_RATE 115200

// Enable and select radio type attached
#define MY_RADIO_RFM95
#define MY_TRANSPORT_STATE_TIMEOUT_MS  (3*1000ul)
#define RFM95_RETRY_TIMEOUT_MS  (3000ul)
#define MY_RFM95_FREQUENCY  (RFM95_434MHZ)
#define MY_RFM95_MODEM_CONFIGRUATION  RFM95_BW125CR48SF4096


//#define   MY_RADIO_RFM95
//#define   MY_DEBUG_VERBOSE_RFM95
//#define   MY_RFM95_MAX_POWER_LEVEL_DBM (20)   // max. TX power 10dBm = 10mW
//#define   MY_RFM95_FREQUENCY (RFM95_434MHZ)
//#define   MY_RFM95_MODEM_CONFIGRUATION (RFM95_BW125CR48SF4096)
//#define   MY_TRANSPORT_STATE_TIMEOUT_MS (20*1000ul)
//#define   RFM95_RETRY_TIMEOUT_MS      (5000ul)      //!< Timeout for ACK, adjustments needed if modem configuration changed (air time different)


#define   MY_RFM95_IRQ_PIN 5
#define   MY_RFM95_IRQ_NUM MY_RFM95_IRQ_PIN
#define   MY_RFM95_CS_PIN 15

#define MY_GATEWAY_ESP8266

#define MY_ESP8266_SSID "ssid"
#define MY_ESP8266_PASSWORD "passwort"


// The port to keep open on node server mode
#define MY_PORT 5003

// How many clients should be able to connect to this gateway (default 1)
#define MY_GATEWAY_MAX_CLIENTS 2


#if defined(MY_USE_UDP)
#include <WiFiUdp.h>
#endif

#include <ESP8266WiFi.h>
#include <MySensors.h>

void setup()
{
// Setup locally attached sensors
}

void presentation()
{
// Present locally attached sensors here
}

void loop()
{
// Send locally attached sensors data here
}


Werde diese Woche mal ein Sensor Node zusammenstricken mit einem LoRa Ra01. Mal sehen wie weit ich komme ;D ;D

Gruß

Markus

Ranseyer

Ja den Standard.

Mal wieder ein spannender Link: Der Scheizer-Guy erklärt Antennengrundlagen, super gemacht: https://www.youtube.com/watch?v=J3PBL9oLPX8&feature=youtu.be
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Ranseyer

FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!