Moduł Radiowy Lora 3km 433mHz/8km 868mHz Direct Link Supla Pushover
Jestem w trakcie testów lora 8km 868mHz Wspólnie z Piomar2 walczyliśmy miałem problemy zasięg był bardzo mały, ale udało się wreszcie rozwiązać problem. W centrum miasta uzyskałem 800m kurcze centrum miasta tak gęsto, jestem mega zadowolony, pogoda nie pozwoliła. Będą kolejne testy, ale myślę że w otwartej przestrzeni odległości będą imponujące.
Witajcie.
Zabawa z Lorą wciągnęła mnie z @Zibim nieźle (Jego zaangażowanie jest nieocenione a testy na odległość to Jego zasługa).
A teraz krótki poradnik jak zacząć z Lorą oraz proste programiki realizujące pomiar temperatury DS-em, wysyłanie danych za pomocą lory, odbiór i dostarczenie do supli wraz z usypianiem (pobór prądu we śnie < 180 mikro amper - narazie, prace trwają).
To tylko przykład. Można wysyłać dane "jakie się chce". Wyżej wspomniałem o zdalnym otwieraniu bramy, @Zibi stosuje to rozwiązanie do do obsługi skrzynki pocztowej. Inwencja granic nie ma.
Uruchomienie transmisji "nadajnik - odbiornik" za pomocą Lora E32.
Posiłkowałem się tą stroną:
https://create.arduino.cc/projecthub/xr ... use-804d25
i biblioteką Renzo Mischianti.
Podłączamy konwerter USB do lory ( zasilanie +3v3, masa, TX i RX)
Oczywiście RX i TX na krzyż z konwerterem...
i ustawiamy parametry osobno dla lory nadajnika i lory odbiornika: Ustawiamy adres odbiornika.
Adres nadajnika ustawiamy dowolny.
W zależności czy używamy lorę 3km czy 8km ustawiamy w opcji "Power" 20 dBm lub
30 dBm.
Naciskamy SetParam i mamy zapis ustawień.
Ustawiony adres odbiornika wpisujemy do programu: nadajnik w tej linii:
"e32ttl100.sendFixedMessage(0, 3, 23, TEMP);"
Adres przykładowy odbiornika "3".
Poz 1 to ADDH, poz 2 to ADDL, poz 3 to kanał, poz 4 to zmienna wysyłana.
Niezależnie kompilujemy i wgrywamy oprogramowanie do wemosa mini. Podłączamy lory i odpalamy układy.
Nadajnik:
Odbiornik:
Mamy nadzieję z @Zibim, że w zastosowanie lory w powiązaniu z suplą zaangażują się inni koledzy bo temat jest niezmiernie ciekawy.
W załączniku biblioteka i program do ustawiania lory.
Wykres w cloudzie:
Zabawa z Lorą wciągnęła mnie z @Zibim nieźle (Jego zaangażowanie jest nieocenione a testy na odległość to Jego zasługa).
A teraz krótki poradnik jak zacząć z Lorą oraz proste programiki realizujące pomiar temperatury DS-em, wysyłanie danych za pomocą lory, odbiór i dostarczenie do supli wraz z usypianiem (pobór prądu we śnie < 180 mikro amper - narazie, prace trwają).
To tylko przykład. Można wysyłać dane "jakie się chce". Wyżej wspomniałem o zdalnym otwieraniu bramy, @Zibi stosuje to rozwiązanie do do obsługi skrzynki pocztowej. Inwencja granic nie ma.
Uruchomienie transmisji "nadajnik - odbiornik" za pomocą Lora E32.
Posiłkowałem się tą stroną:
https://create.arduino.cc/projecthub/xr ... use-804d25
i biblioteką Renzo Mischianti.
Podłączamy konwerter USB do lory ( zasilanie +3v3, masa, TX i RX)
Oczywiście RX i TX na krzyż z konwerterem...
i ustawiamy parametry osobno dla lory nadajnika i lory odbiornika: Ustawiamy adres odbiornika.
Adres nadajnika ustawiamy dowolny.
W zależności czy używamy lorę 3km czy 8km ustawiamy w opcji "Power" 20 dBm lub
30 dBm.
Naciskamy SetParam i mamy zapis ustawień.
Ustawiony adres odbiornika wpisujemy do programu: nadajnik w tej linii:
"e32ttl100.sendFixedMessage(0, 3, 23, TEMP);"
Adres przykładowy odbiornika "3".
Poz 1 to ADDH, poz 2 to ADDL, poz 3 to kanał, poz 4 to zmienna wysyłana.
Niezależnie kompilujemy i wgrywamy oprogramowanie do wemosa mini. Podłączamy lory i odpalamy układy.
Nadajnik:
Kod: Zaznacz cały
//nadajnik DS18B20 z usypianiem(120 sek)
//skompilowac i wgrac program, potem polaczyc RST z D0;
//D1 RX Lora
//D2 TX Lora
//D5 M0, M1
//D7 DS18B20
//plytki 2.4.2
/*
* LoRa E32-TTL-100
* E32-TTL-100----- esp8266
* M0 ----- D5
* M1 ----- D5
* RX ----- D1 (PullUP 4k7)
* TX ----- D2 (PullUP 4k7)
* AUX ----- (PullUP 4k7)
* VCC ----- 3.3v
* GND ----- GND
* ustawiony adres odbiornika na "3"
*/
#include "Arduino.h"
#include "LoRa_E32.h"
LoRa_E32 e32ttl100(D2, D1); //TX ,RX
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire(13);
DallasTemperature sensors(&oneWire);
float temp;
String TEMP;
int spanie=120;//sekundy
byte c;
void printParameters(struct Configuration configuration);
void printModuleInformation(struct ModuleInformation moduleInformation);
void setup()
{
Serial.begin(9600);
pinMode(14, OUTPUT);//D5
digitalWrite(14, LOW);
sensors.begin();
sensors.setResolution(10);//rozdzielczosc DS-a
e32ttl100.begin();
ResponseStructContainer c;
c = e32ttl100.getConfiguration();
Configuration configuration = *(Configuration*) c.data;
Serial.println(c.status.getResponseDescription());
Serial.println(c.status.code);
}
//********************************************************
void loop() {
digitalWrite(14, LOW); //podlaczyc do M0 M1 budzenie Lory
sensors.requestTemperatures();
delay(1000);
float temp = sensors.getTempCByIndex(0);
TEMP=(String(temp));
e32ttl100.sendFixedMessage(0, 3, 23, TEMP);
digitalWrite(14, HIGH);//lora spac
delay(50);
ESP.deepSleep(spanie* 1000 * 1000);
}
Kod: Zaznacz cały
//odbiornik Lora E32 - odbior wrtosci z DS18B20 z lory do supli
//plytki 2.4.2
//ustawiony adres odbiornika na "3"
/*
* E32-TTL-100----- esp8266
* M0 ----- masa
* M1 ----- masa
* RX ----- D1 (PullUP 4k7)
* TX ----- D2 (PullUP 4k7)
* AUX ----- (PullUP 4k7)
* VCC ----- 3.3v
* GND ----- GND
*/
#include <srpc.h>
#include <log.h>
#include <eh.h>
//#include <proto.h>
#include <IEEE754tools.h>
#define SUPLADEVICE_CPP
#include <SuplaDevice.h>
#include <lck.h>
#include <WiFiClient.h>
#include <ESP8266WiFi.h>
#include <WiFiServer.h>
#include "Arduino.h"
#include "LoRa_E32.h"
LoRa_E32 e32ttl100(D2, D1); //TX ,RX
WiFiClient client;
const char* ssid = "xxxxxx";
const char* password = "xxxxxx";
float temp;
double get_temperature(int channelNumber, double last_val) {
double t = -275;
t= temp;
return t;
}
//--------------------------------------------------------
void setup() {
Serial.begin(9600);
e32ttl100.begin();
ResponseStructContainer c;
c = e32ttl100.getConfiguration();
Configuration configuration = *(Configuration*) c.data;
Serial.println(c.status.getResponseDescription());
Serial.println(c.status.code);
// Replace the falowing GUID
char GUID[SUPLA_GUID_SIZE] = {0xB0,0x33,0xDC,0xB3,0x4B,0x4F,0x54,0x6E,0x43,0xD0,0xE1,0xF6,0x06,0x27,0x39,0x5E};
// with GUID that you can retrieve from https://www.supla.org/arduino/get-guid
// Ethernet MAC address
uint8_t mac[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
// CHANNEL0 - Temp
SuplaDevice.addDS18B20Thermometer();
SuplaDevice.setName("Lora_temp");
SuplaDevice.begin(GUID, // Global Unique Identifier
mac, // Ethernet MAC address
"svrx.supla.org", // SUPLA server address
xxxx, // Location ID
"xxxx"); // Location Password}
}
//--------------------------------------------------------
void loop() {
if (e32ttl100.available() > 1){
ResponseContainer rs = e32ttl100.receiveMessage();
Serial.println(rs.data);
temp = (rs.data.toFloat());
}
SuplaDevice.iterate();
}
// Supla.org ethernet layer
int supla_arduino_tcp_read(void *buf, int count) {
_supla_int_t size = client.available();
if ( size > 0 ) {
if ( size > count ) size = count;
return client.read((uint8_t *)buf, size);
};
return -1;
};
int supla_arduino_tcp_write(void *buf, int count) {
return client.write((const uint8_t *)buf, count);
};
bool supla_arduino_svr_connect(const char *server, int port) {
return client.connect(server, 2015);
}
bool supla_arduino_svr_connected(void) {
return client.connected();
}
void supla_arduino_svr_disconnect(void) {
client.stop();
}
void supla_arduino_eth_setup(uint8_t mac[6], IPAddress *ip) {
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
}
SuplaDeviceCallbacks supla_arduino_get_callbacks(void) {
SuplaDeviceCallbacks cb;
cb.tcp_read = &supla_arduino_tcp_read;
cb.tcp_write = &supla_arduino_tcp_write;
cb.eth_setup = &supla_arduino_eth_setup;
cb.svr_connected = &supla_arduino_svr_connected;
cb.svr_connect = &supla_arduino_svr_connect;
cb.svr_disconnect = &supla_arduino_svr_disconnect;
cb.get_temperature = &get_temperature;
cb.get_temperature_and_humidity = NULL;
cb.get_rgbw_value = NULL;
cb.set_rgbw_value = NULL;
return cb;
}
W załączniku biblioteka i program do ustawiania lory.
Wykres w cloudzie:
- Załączniki
-
- zalacznik_lora.zip
- (1.02 MiB) Pobrany 114 razy
- Robert Błaszczak
- Posty: 4007
- Rejestracja: sob gru 22, 2018 8:55 pm
- Lokalizacja: Zielona Góra
- Kontakt:
Dzięki koledzy za kawał porządnej roboty w temacie Lory. Bardzo przydatne informacje.
Ja na razie ze względu na nawał pracy w firmie nie mam już po pracy za bardzo chęci do zajęcia się tym tematem .
Ja na razie ze względu na nawał pracy w firmie nie mam już po pracy za bardzo chęci do zajęcia się tym tematem .
Pozdrawiam
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Super, świetna robota. Może uda mi się dzięki temu coś pobawić w temacie. Zrobiłbym połączenie z garażem. Trzeba by zamówić te moduły, ale na razie mam podobnie jak Robert. Ciężko znaleźć czas i chęci, a obecny czas jakoś temu nie służy.
Panowie jestem po kolejnych testach lory z pomocą kolegi Piomar2 zrobiłem antenę z drutów, bo nie mam oryginalnej. Zasięgi tej lory są powalające jestem bardzo zadowolony z efektów dzisiaj uzyskałem prawie 1.2 km w centrum miasta byłem w takich zakamarkach i zabudowaniach, a sygnał się przebijał. Piomar2 wykonał dużo pracy dzięki, której mamy płytkę giganta jeśli chodzi o łączność radiową.