Nie, nie musisz, ale poczekaj z testowaniem dłuższą chwilę po resecie.(najlepiej kilka minut)
Akurat w tym momencie testuję moduł -15 rolet z przyciskami (czyli razem 60pinów!!)na arduino mega i jest OK.
Jak podłaczyć przyciski w Arduino Mega do rolet wstandardowej bibliotece supla
-
Maniek913
- Posts: 594
- Joined: Thu Feb 22, 2018 9:46 pm
- Been thanked: 3 times
Nie, wszystko jest opisane w przykładzie - najpierw podajesz piny dla przekażników, a następnie kolejno -numer kanału, pin dla przycsku1, pin dla przycisku 2.
np wpis:
SuplaDevice.addRollerShutterRelays(49,48, true);
SuplaDevice.setRollerShutterButtons(0,22,23);
Tworzy kanał"0" (czyli pierwszy)z dwoma przekażnikami na pinach 49 i 48 i przyciskami na pinach 22 i 23
np wpis:
SuplaDevice.addRollerShutterRelays(49,48, true);
SuplaDevice.setRollerShutterButtons(0,22,23);
Tworzy kanał"0" (czyli pierwszy)z dwoma przekażnikami na pinach 49 i 48 i przyciskami na pinach 22 i 23
-
damdud
- Posts: 9
- Joined: Wed Mar 20, 2019 9:47 pm
Przyciski się aktywują po podłączeniu do internetu ? dla przydzielonego kanału ? Następnie można się rozłączyć z internetem ?
czy Arduino na podstanie poniższego kodu ogarnia jaki pin działa z określonym przekaźnikiem ? bez podłączania do internetu ?
// CHANNEL0 - TWO RELAYS (Roller shutter operation)
SuplaDevice.addRollerShutterRelays(47, // 46 - Pin number where the 1st relay is connected
46); // 47 - Pin number where the 2nd relay is connected
SuplaDevice.setRollerShutterButtons(0,20,21) // 0 - Channel Number
// 20 - Pin where the 1st button is connected
// 21 - Pin where the 2nd button is connected
czy Arduino na podstanie poniższego kodu ogarnia jaki pin działa z określonym przekaźnikiem ? bez podłączania do internetu ?
// CHANNEL0 - TWO RELAYS (Roller shutter operation)
SuplaDevice.addRollerShutterRelays(47, // 46 - Pin number where the 1st relay is connected
46); // 47 - Pin number where the 2nd relay is connected
SuplaDevice.setRollerShutterButtons(0,20,21) // 0 - Channel Number
// 20 - Pin where the 1st button is connected
// 21 - Pin where the 2nd button is connected
-
damdud
- Posts: 9
- Joined: Wed Mar 20, 2019 9:47 pm
Zmieniłem nr pinów i grupy kanałów na poprawne. Po podaniu GND na pin przekaźniki zaczęły działać !!!
Dziękuje bardzo za pomoc , wskazówki i podpowiedzi.
-
Patryk
- Posts: 2944
- Joined: Mon Jan 07, 2019 7:51 pm
- Location: Rybnik
Mógłbyś opisać teraz "łopatologicznie" w czym był problem ???damdud wrote: Sat Apr 13, 2019 10:06 pm Zmieniłem nr pinów i grupy kanałów na poprawne. Po podaniu GND na pin przekaźniki zaczęły działać !!!Dziękuje bardzo za pomoc , wskazówki i podpowiedzi.
Dlaczego na początku nie chciało Ci to działać, a teraz działa.
W czym był problem ???
Oraz zamieścić kod (program), który ostatecznie wgrałeś.
-
Maniek913
- Posts: 594
- Joined: Thu Feb 22, 2018 9:46 pm
- Been thanked: 3 times
To może wiesz dlaczego u mnie przyciski fizyczne działają dopiero kilka minut po uruchomieniu? ( za bardzo obciążony mikroprocesor?)pzygmunt wrote: Sat Apr 13, 2019 10:04 pm Przyciski działają bez internetu i od razu. Wrzuć cały kod.
Skoro już poruszamy ten temat to może coś napiszesz o niedogodnościach w moim przypadku?- wgrałem taki projekt do arduino mega z popularnym scheldem W5100(na początku jest moja nieudana próba ogarnięcia zamykania i otwierania wszystkich rolet za pomocą jednej pary przycisków, ale mniejsza o to):
Code: Select all
/*
Copyright (C) AC SOFTWARE SP. Z O.O.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include <SPI.h>
#include <Ethernet.h>
#include <SuplaDevice.h>
//int customDigitalRead(int channelNumber, uint8_t pin)
{/*
if (digitalRead(16))
{
SuplaDevice.rollerShutterShut(0);
SuplaDevice.rollerShutterShut(1);
}
else if (digitalRead(17))
{
SuplaDevice.rollerShutterReveal(0);
SuplaDevice.rollerShutterReveal(1);
}
*/
return digitalRead(pin);
}
void supla_rs_SavePosition(int channelNumber, int position) {
// Save roller shutter position on flash memory.
// *Arduino EEPROM is not recommended because of write cycle limits.
}
void supla_rs_LoadPosition(int channelNumber, int *position) {
// Load roller shutter position from flash memory
}
void supla_rs_SaveSettings(int channelNumber, unsigned int full_opening_time, unsigned int full_closing_time) {
// Save roller shutter settings on flash memory.
// *Arduino EEPROM is not recommended because of write cycle limits.
}
void supla_rs_LoadSettings(int channelNumber, unsigned int *full_opening_time, unsigned int *full_closing_time) {
// Load roller shutter settings from flash memory
}
void setup() {
Serial.begin(9600);
// Replace the falowing GUID
char GUID[SUPLA_GUID_SIZE] = {--------------guid----------------};
// with GUID that you can retrieve from https://www.supla.org/arduino/get-guid
// Ethernet MAC address
uint8_t mac[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};
/*
* 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.
*/
SuplaDevice.setDigitalReadFuncImpl(&customDigitalRead);
// CHANNEL0 - TWO RELAYS (Roller shutter operation)
SuplaDevice.addRollerShutterRelays(22,23);
SuplaDevice.setRollerShutterButtons(0,11,12);
SuplaDevice.addRollerShutterRelays(24,25);
SuplaDevice.setRollerShutterButtons(1,8,9);
SuplaDevice.addRollerShutterRelays(26,27);
SuplaDevice.setRollerShutterButtons(2,6,7);
SuplaDevice.addRollerShutterRelays(28,29);
SuplaDevice.setRollerShutterButtons(3,3,5);
SuplaDevice.addRollerShutterRelays(30,31);
SuplaDevice.setRollerShutterButtons(4,14,2);
SuplaDevice.addRollerShutterRelays(32,33);
SuplaDevice.setRollerShutterButtons(5,16,15);
SuplaDevice.addRollerShutterRelays(34,35);
SuplaDevice.setRollerShutterButtons(6,18,17);
SuplaDevice.addRollerShutterRelays(36,37);
SuplaDevice.setRollerShutterButtons(7,20,19);
SuplaDevice.addRollerShutterRelays(38,39);
SuplaDevice.setRollerShutterButtons(8,A15,21);
SuplaDevice.addRollerShutterRelays(40,41);
SuplaDevice.setRollerShutterButtons(9,A13,A14);
SuplaDevice.addRollerShutterRelays(42,43);
SuplaDevice.setRollerShutterButtons(10,A11,A12);
SuplaDevice.addRollerShutterRelays(44,45);
SuplaDevice.setRollerShutterButtons(11,A9,A10);
SuplaDevice.addRollerShutterRelays(46,47);
SuplaDevice.setRollerShutterButtons(12,A7,A8);
SuplaDevice.addRollerShutterRelays(48,49);
SuplaDevice.setRollerShutterButtons(13,A5,A6);
SuplaDevice.addRollerShutterRelays(4,53);
SuplaDevice.setRollerShutterButtons(14,A3,A4);
SuplaDevice.setRollerShutterFuncImpl(&supla_rs_SavePosition, &supla_rs_LoadPosition, &supla_rs_SaveSettings, &supla_rs_LoadSettings);
/*
* 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
mac, // Ethernet MAC address
"svr", // SUPLA server address
xxxx, // Location ID
"xxxx"); // Location Password
}
void loop() {
SuplaDevice.iterate();
}
1.W ciągu kilku minut po uruchomieniu, gdy nie podłączamy sieci LAN nie działają fizyczne przyciski- potem jest OK
2.Przy normalnej pracy po utracie zasilania nie można wykonać kalibracji rolet z fizycznego przycisku- tylko z poziomu aplikacji.
3.Czas pracy przeaźnika sterowanego z fizycznego przycisku jest dokładnie 2 razy dłuższy niż z aplikacji -nie przeszkadza to w normalnej pracy-wiem że kiedyś była o tym mowa i to już wyjaśniałeś, ale wtedy była mowa o dołożeniu 10% czasu.
Piny których nie mogłem użyć to
D0 i D1- to jest chyba UART dla złącza USB
D13 -dioda "L" na płytce
D50 i D52 - to chyba drugi UART dla LAN(migają podczas trasmisji w LAN)
D51 - nie wiem ,tam jest ciągle "1" logiczna
D4 i D10 też sprawiały problemy, ale w końcu nie miałem wyjścia i użyłem jednego z nich (D4) i działa.
Czyli podsumowując mam jeszcze wolne piny D10,A0,A1,A2, czyli mozna by dołożyć 16-ty kanał rolety, ale na razie tesuję to co mam skonfigurowane.
Martwi mnie trochę zapis stanu rolety w epromie - po co ta funkcja skoro i tak po zaniku zasilania nie wiadomo czy roleta była przed tym zanikiem zamknięta czy otwarta - trzeba ponownie "przeklikać" czyli zamknąć i otworzyć z aplikacji wszystkie rolety.
Proszę więc o uwagi co tego projektu-ma to szanse działać długo i niezawodnie?
-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
Usuń cały swój kod oraz wszystkie rolety poza jedną i sprawdź czy nadal dzieje się tak jak opisujesz. Co do czasu x2 z fizycznego przycisku to jest to prawidłowe działanie.
SUPLA.... Nareszcie w domu.
-
Maniek913
- Posts: 594
- Joined: Thu Feb 22, 2018 9:46 pm
- Been thanked: 3 times
Tak zrobiłem i jest identyczny efekt.pzygmunt wrote: Sun Apr 14, 2019 10:28 am Usuń cały swój kod oraz wszystkie rolety poza jedną i sprawdź czy nadal dzieje się tak jak opisujesz. Co do czasu x2 z fizycznego przycisku to jest to prawidłowe działanie.
Ale większy problem jest z utrzymaniem porządku z stanami rolet.
Co do kalibracji rolet po zaniku zasilania -na szczęście można to zrobić za pomocą grupy kanałów, niestety nie mogę dodać do grupy więcej niż 10 kanałów- z czego wynika to ograniczenie?
Samo dodawanie kanałów też wygląda dziwnie -:
klikam 1 roletę , dodała się 1, klikam 2, to samo, ale już przy 5-tej dodaje się zamiast 5 roleta nr 7??? i tak dalej, potem już nie ma znaczenia którą się kliknie i tak dodaje się dowolna następna,ale nigdy ta kliknięta, tak więc trzeba trochę samozaparcia, by dodać te kanały co się chce, a nie te co chce system.
Ogólnie w tych grupach chyba coś się nie wyrabia - nie wiem czy to wina sprzętu czy clouda, w każdym razie gdy sterujemy dowolną z 15 rolet indywidualnie jest wszystko OK, ale gdy uruchomimy grupę ( ja z konieczności stworzyłem dwie - jedna 10 kanałów, jedna 5)to już się sypie:
Przy pierwszym użyciu fizycznie zamykają się wszystkie rolety, ale nie zawsze ta informacja zostaje odzwierciedlona w aplikacji (nie zdążą wszystkie trójkąciki dojść do dolnej części grafiki i wtedy całe "okno" nie jest zasłonięte. W tym stanie już nie można wykonać żadnej operacji na grupie - (chyba że kilka razy się kliknie polecenie zamknięcia ale nie zawsze działa) gdy jednak zdąży się cała operacja wykonać to jest OK. Myślałem że to wina dużej ilości kanałów w grupie, ale nie - to samo równie często występuje w grupie 5 kanałów jak i w grupie 10 kanałów.
W sumie korzystanie z grup kanałów jest niemożliwe - po użyciu stany faktyczne z stanami zapisanym w aplikacji kompletnie się rozjeżdżają i wtedy trzeba wszystkie rolety "przeklikać"
Możesz coś poradzić?
Widzę że nikt do tej pory nie "centralizował" supli, a szkoda, bo rozwiązanie z kablem zamiast WiFi jest idealne przy nowo budowanych instalacjach.
