Witam, przyszło Arduino MEGA (na razie jedno - testowo). Próbuję coś posklejać ze znanych mi, gotowych rozwiązań, ale na razie nie chce działać. Poniżej przesyłam kod:
Code: Select all
#include <SPI.h>
#include <SuplaDevice.h>
// Arduino Mega with EthernetShield W5100:
#include <supla/network/ethernet_shield.h>
// Ethernet MAC address
uint8_t mac[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};
Supla::EthernetShield ethernet(mac);
#include <supla/control/light_relay.h>
#include <supla/control/simple_button.h>
#include <supla/io.h>
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] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
// Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
pinMode(22, OUTPUT); // ustawia pin jako wyjście
pinMode(23, OUTPUT); // ustawia pin jako wyjście
pinMode(24, OUTPUT); // ustawia pin jako wyjście
pinMode(25, OUTPUT); // ustawia pin jako wyjście
pinMode(26, OUTPUT); // ustawia pin jako wyjście
pinMode(47, INPUT_PULLUP); // ustawia pin jako wejście z podciągnięciem do zasilania 5V
pinMode(48, INPUT_PULLUP); // ustawia pin jako wejście z podciągnięciem do zasilania 5V
pinMode(49, INPUT_PULLUP); // ustawia pin jako wejście z podciągnięciem do zasilania 5V
pinMode(50, INPUT_PULLUP); // ustawia pin jako wejście z podciągnięciem do zasilania 5V
pinMode(51, INPUT_PULLUP); // ustawia pin jako wejście z podciągnięciem do zasilania 5V
pinMode(52, INPUT_PULLUP); // ustawia pin jako wejście z podciągnięciem do zasilania 5V
//ustawienia
auto r1 = new Supla::Control::LightRelay(22, true);
auto r2 = new Supla::Control::LightRelay(23, true);
auto r3 = new Supla::Control::LightRelay(24, true);
auto r4 = new Supla::Control::LightRelay(25, true);
auto r5 = new Supla::Control::LightRelay(26, true);
auto b0 = new Supla::Control::SimpleButton(47, true, true); // ustawia przycisk z input pullup i odwróconą logiką (zwieranie do gnd)
b0->addAction(Supla::TURN_OFF, r1, r2, r3, r4, r5, Supla::ON_PRESS);
auto b1 = new Supla::Control::SimpleButton(48, true, true); // ustawia przycisk z input pullup i odwróconą logiką (zwieranie do gnd)
b1->addAction(Supla::TOGGLE, r1, Supla::ON_PRESS);
auto b2 = new Supla::Control::SimpleButton(49, true, true); // ustawia przycisk z input pullup i odwróconą logiką (zwieranie do gnd)
b2->addAction(Supla::TOGGLE, r2, Supla::ON_PRESS);
auto b3 = new Supla::Control::SimpleButton(50, true, true); // ustawia przycisk z input pullup i odwróconą logiką (zwieranie do gnd)
b3->addAction(Supla::TOGGLE, r3, Supla::ON_PRESS);
auto b4 = new Supla::Control::SimpleButton(51, true, true); // ustawia przycisk z input pullup i odwróconą logiką (zwieranie do gnd)
b4->addAction(Supla::TOGGLE, r4, Supla::ON_PRESS);
auto b5 = new Supla::Control::SimpleButton(52, true, true); // ustawia przycisk z input pullup i odwróconą logiką (zwieranie do gnd)
b5->addAction(Supla::TOGGLE, r5, Supla::ON_PRESS);
SuplaDevice.begin(GUID, // Global Unique Identifier
"svr1.supla.org", // SUPLA server address
"email@address", // Email address used to login to Supla Cloud
AUTHKEY); // Authorization key
}
void loop() {
SuplaDevice.iterate();
}
Gdy próbuję zweryfikować kod za pomocą narzędzia Weryfikuj/Kompiluj, to otrzymuję taką informację:
Code: Select all
Arduino:1.8.13 (Windows 10), Płytka:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
C:\Users\jakub\Desktop\supla_projekt_dom\supla_projekt_dom.ino: In function 'void setup()':
supla_projekt_dom:41:67: error: no matching function for call to 'Supla::Control::SimpleButton::addAction(Supla::Action, Supla::Control::LightRelay*&, Supla::Control::LightRelay*&, Supla::Control::LightRelay*&, Supla::Control::LightRelay*&, Supla::Control::LightRelay*&, Supla::Event)'
b0->addAction(Supla::TURN_OFF, r1, r2, r3, r4, r5, Supla::ON_PRESS);
^
In file included from C:\Users\jakub\Documents\Arduino\libraries\SuplaDevice\src/supla/channel.h:23:0,
from C:\Users\jakub\Documents\Arduino\libraries\SuplaDevice\src/supla/element.h:23,
from C:\Users\jakub\Documents\Arduino\libraries\SuplaDevice\src/supla/clock/clock.h:22,
from C:\Users\jakub\Documents\Arduino\libraries\SuplaDevice\src/SuplaDevice.h:23,
from C:\Users\jakub\Desktop\supla_projekt_dom\supla_projekt_dom.ino:2:
C:\Users\jakub\Documents\Arduino\libraries\SuplaDevice\src/supla/local_action.h:30:16: note: candidate: virtual void Supla::LocalAction::addAction(int, Supla::ActionHandler&, int)
virtual void addAction(int action, ActionHandler &client, int event);
^~~~~~~~~
C:\Users\jakub\Documents\Arduino\libraries\SuplaDevice\src/supla/local_action.h:30:16: note: candidate expects 3 arguments, 7 provided
C:\Users\jakub\Documents\Arduino\libraries\SuplaDevice\src/supla/local_action.h:31:16: note: candidate: virtual void Supla::LocalAction::addAction(int, Supla::ActionHandler*, int)
virtual void addAction(int action, ActionHandler *client, int event);
^~~~~~~~~
C:\Users\jakub\Documents\Arduino\libraries\SuplaDevice\src/supla/local_action.h:31:16: note: candidate expects 3 arguments, 7 provided
exit status 1
no matching function for call to 'Supla::Control::SimpleButton::addAction(Supla::Action, Supla::Control::LightRelay*&, Supla::Control::LightRelay*&, Supla::Control::LightRelay*&, Supla::Control::LightRelay*&, Supla::Control::LightRelay*&, Supla::Event)'
Bibliotekę SuplaDevice mam zainstalowaną z poziomu Arduino IDE. Proszę o pomoc.