To może rozmiar binarki też zmaleje?klew wrote: Thu Aug 25, 2022 12:51 pm Problem jest związany z ilością pamięci RAM. Gdzieś przy 2.4.1 zjadłem dodatkowe 1600 B i teraz Arduino Mega nie chce działać.
EDIT: pamięć została zjedzona przez logowanie. W aktualnej wersji, nad którą pracuję, zostało to już poprawnione, ale na wydanie trzeba chwilę jeszcze poczekać.
Także na razie możesz zostać przy wersji 2.4.0, a jak zostanie wydana kolejna wersja, to wtedy się przesiądź na nią.
Migracja z Blynka na Suplę
-
krycha88
- Posts: 5575
- Joined: Fri Nov 16, 2018 7:25 am
- Been thanked: 5 times
https://gui-generic-builder.supla.io/
-
SOYER
- Posts: 1623
- Joined: Wed Aug 10, 2022 12:29 pm
- Location: Kryry
- Been thanked: 2 times
Dzięki @klew. Pomogłeś.
Co do tego FS to pomogło wgranie najnowszej wersji płytek, co do arduino MEGA pomogła wcześniejsza wersja supla device 2.4.0.
Teraz na arduino Mega śmiga mi czujnik analogowy 1szt, ds 1szt, przekaźniki 5szt i krańcówki 2szt. Działa.
Poniżej wklejam kod gdyby ktoś kiedyś potrzebował.
Dziękuję za pomoc, MEGA to bardzo niszowe urządzenie dla Supli, a jednak błyskawicznie pomogłeś. Doceniam.
Co do tego FS to pomogło wgranie najnowszej wersji płytek, co do arduino MEGA pomogła wcześniejsza wersja supla device 2.4.0.
Teraz na arduino Mega śmiga mi czujnik analogowy 1szt, ds 1szt, przekaźniki 5szt i krańcówki 2szt. Działa.
Poniżej wklejam kod gdyby ktoś kiedyś potrzebował.
Code: Select all
#include <SuplaDevice.h>
#include <supla/sensor/DS18B20.h>
#include <supla/control/relay.h>
#include <supla/sensor/binary.h>
#include <supla/network/ethernet_shield.h>
uint8_t mac[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};
Supla::EthernetShield ethernet(mac);
const int analogInPin = A7;
#define ONE_WIRE A5
#define kran_garaz 28
#define kran_wjazd 41
class AnalogValue : public Supla::Sensor::Thermometer {
public:
AnalogValue(int pin) : pin(pin) {
}
void onInit() {
pinMode(pin, INPUT);
channel.setNewValue(getValue());
}
double getValue() {
return analogRead(pin);
}
protected:
int pin;
};
void setup() {
Serial.begin(115200);
// Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
char GUID[SUPLA_GUID_SIZE] = {xxx};
// Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {xxx};
/*
* Having your device already registered at cloud.supla.org,
* you want to change CHANNEL sequence or remove any of them,
* then you must also remove the device itself from cloud.supla.org.
* Otherwise you will get "Channel conflict!" error.
*/
DeviceAddress term_grunt = {0x28, 0xC4, 0x85, 0x40, 0x5, 0x0, 0x0, 0x91};
auto lampa_plac = new Supla::Control::Relay(27, false);
auto lampa_ogrod = new Supla::Control::Relay(29, false);
auto brama_garaz = new Supla::Control::Relay(23, false);
auto brama = new Supla::Control::Relay(25, false);
auto kompresor = new Supla::Control::Relay(37, false);
//auto r2 = new Supla::Control::Relay(25, false);
//auto r2 = new Supla::Control::Relay(pin2, false);
//auto r2 = new Supla::Control::Relay(pin2, false);
new Supla::Sensor::DS18B20(ONE_WIRE);
new Supla::Sensor::Binary(kran_garaz, true);
new Supla::Sensor::Binary(kran_wjazd, true);
new AnalogValue(analogInPin);
/*
* SuplaDevice Initialization.
* Server address, LocationID and LocationPassword are available at https://cloud.supla.org
* If you do not have an account, you can create it at https://cloud.supla.org/account/create
* SUPLA and SUPLA CLOUD are free of charge
*
*/
SuplaDevice.begin(GUID, // Global Unique Identifier
"xxx", // SUPLA server address
"xxx", // Email address used to login to Supla Cloud
AUTHKEY); // Authorization key
}
void loop() {
SuplaDevice.iterate();
}https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
-
Antonio
- Posts: 140
- Joined: Sat Dec 18, 2021 4:15 pm
@SOYER
Dziękuje za podzieleniem się kodem
Jak jeszcze wrzucisz swój gadajacy kod DS18B20 pod DFplayer to społeczność Supli będzie Hapi
Dziękuje za podzieleniem się kodem
Jak jeszcze wrzucisz swój gadajacy kod DS18B20 pod DFplayer to społeczność Supli będzie Hapi
-
SOYER
- Posts: 1623
- Joined: Wed Aug 10, 2022 12:29 pm
- Location: Kryry
- Been thanked: 2 times
Jak tylko połączę to z suplą to dam znać.
Skoro już o tym mowa, mam w szkicu obsługę np. tego dfplayera, potrzebuję na jego użytek dane z odczytów czujników ds. Da się je jakoś wyciągnąć z supli, zwykłe int, bez przecinków.
Można też z drugiej strony, odpalać w kodzie dfplayera i odzyt ds osobnym kodem, a supla.iterate odpalać tylko co np 10 minut timerem. Zadziała to?
Odpalam timera, odlicza 10min, wtedy uruchamia supla.iterate, supla czyta kilka ds, wysyła na serwer i program znowu odlicza 10 min.
Tylko pytanie, czy w jednym obiegu pętli supla.iterate wykona się cały odczyt kilku czujników i wysyłka do cloud? Jak to jest zrobione? Mówimy tylko o odczycie ok. 4-5szt ds18b20 podpiętych do dwóch pinów.
Skoro już o tym mowa, mam w szkicu obsługę np. tego dfplayera, potrzebuję na jego użytek dane z odczytów czujników ds. Da się je jakoś wyciągnąć z supli, zwykłe int, bez przecinków.
Można też z drugiej strony, odpalać w kodzie dfplayera i odzyt ds osobnym kodem, a supla.iterate odpalać tylko co np 10 minut timerem. Zadziała to?
Odpalam timera, odlicza 10min, wtedy uruchamia supla.iterate, supla czyta kilka ds, wysyła na serwer i program znowu odlicza 10 min.
Tylko pytanie, czy w jednym obiegu pętli supla.iterate wykona się cały odczyt kilku czujników i wysyłka do cloud? Jak to jest zrobione? Mówimy tylko o odczycie ok. 4-5szt ds18b20 podpiętych do dwóch pinów.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
-
SOYER
- Posts: 1623
- Joined: Wed Aug 10, 2022 12:29 pm
- Location: Kryry
- Been thanked: 2 times
Dzisiaj dołożyłem do megi kolejny przekaźnik, a także asystenta google. Działa świetnie
. Ktoś coś na temat moich pytań w poprzednim poście?
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
viewtopic.php?p=85384#p85384SOYER wrote: Thu Aug 25, 2022 6:48 pm Jak tylko połączę to z suplą to dam znać.
Skoro już o tym mowa, mam w szkicu obsługę np. tego dfplayera, potrzebuję na jego użytek dane z odczytów czujników ds. Da się je jakoś wyciągnąć z supli, zwykłe int, bez przecinków.
Można też z drugiej strony, odpalać w kodzie dfplayera i odzyt ds osobnym kodem, a supla.iterate odpalać tylko co np 10 minut timerem. Zadziała to?
Odpalam timera, odlicza 10min, wtedy uruchamia supla.iterate, supla czyta kilka ds, wysyła na serwer i program znowu odlicza 10 min.
Tylko pytanie, czy w jednym obiegu pętli supla.iterate wykona się cały odczyt kilku czujników i wysyłka do cloud? Jak to jest zrobione? Mówimy tylko o odczycie ok. 4-5szt ds18b20 podpiętych do dwóch pinów.
Pewnie Tobie będzie wygodniej po prostu trzymać wskaźniki na klasy termometrów i bezpośrednio na nich wołać: temp->getChannel()->getValueDouble()
Termometry w Supli są jako liczby zmiennoprzecinkowe, więc masz tam double. Rzutowanie na int (jeśli potrzeba) możesz łatwo sam zrobić.
Metoda SuplaDevice.iterate() powinna być odpalana często bez większych przerw. Odczyt termometrów jest robiony w sposób nieblokujący, czyli najpierw jest wysyłane polecenie wykonania pomiaru temperatury do DS i dopiero po 750 ms (? nie pamiętam dokładnie) jest robiony odczyt.
Supla aktualnię dość słabo wspiera usypiające się czujniki. Da się to zrobić z pewnymi ograniczeniami, ale jak nie jesteś ograniczony do baterii, to raczej nie ma to sensu.
Najlepsze suple dla Twojego domu 
-
SOYER
- Posts: 1623
- Joined: Wed Aug 10, 2022 12:29 pm
- Location: Kryry
- Been thanked: 2 times
Dzięki, będę walczył. Supla mi się spodobała. Już wsiąknąłem.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
-
SOYER
- Posts: 1623
- Joined: Wed Aug 10, 2022 12:29 pm
- Location: Kryry
- Been thanked: 2 times
Code: Select all
void loop() {
gadajacyPiec();
Serial.println("5");
if((sekund30.available()) && (supla==0)){
Serial.println("6");
sekund10.restart();
supla = 1;
}
while(!sekund10.available()){
Serial.println("7");
SuplaDevice.iterate();
sekund30.restart();
}
if(sekund10.available()){
Serial.println("8");
supla=0;
}
}Teoretycznie powinno działać bez tych wszystkich wymyslnych if-ów, ale lekko musiałbym zmienić sprawdzanie ruchu w kotłowni, bo teraz Supla zajmuje czas na potwierdzenie obecności, długo by tlumaczyć. Zajmę się tym w wolnej chwili.
Zostało do osuplowania urządzenie do pomiaru jakości powietrza oparte o PMS5003:
https://youtu.be/z2xPkTUbpUo
Last edited by SOYER on Sun Aug 28, 2022 6:21 pm, edited 1 time in total.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
-
SOYER
- Posts: 1623
- Joined: Wed Aug 10, 2022 12:29 pm
- Location: Kryry
- Been thanked: 2 times
You do not have the required permissions to view the files attached to this post.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
