Arduino + supla.org - początki

User avatar
pzygmunt
Posts: 19515
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków

Post

1. Należy dodać odpowiednią wielokrotność wywołania SuplaDevice.addDS18B20Thermometer(), następnie w get_temperature należy zwracać odczyt odpowiedniego termometru na podstawie numeru kanału.
2. 16 - takie ograniczenie jest ustawione w https://github.com/SUPLA/arduino/blob/m ... oto.h#L123 ale można to zwiększyć w zależności od dostępnej pamięci. Bez dodatkowych bibliotek spokojnie można zwiększyć do 128 i jeszcze zostanie trochę pamięci.
smola23
Posts: 27
Joined: Thu Apr 21, 2016 10:05 am

Post

Przez cały dzień miałem podłączone arduino do komputera bezpośrednio do gniazda usb i działa połączenie całą noc, mam też podłączony inny switch do sieci, zmienię później switch i przekonam się czy to jego wina.

Jeżeli chodzi o czujnik temperatury to czy będzie możliwość dodania czujnika DHT11 lub DHT22?

dzięki
User avatar
pzygmunt
Posts: 19515
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków

Post

Do Arduino można sobie podłączyć dowolny czujnik w tym DHT11 i DHT22 póki co jednak będzie tylko odczytywał temperaturę.
Mam już przygotowaną obsługę wilgotności ale jeszcze muszę dokończyć kilka rzeczy aby zrobić update serwera i aplikacji.
smola23
Posts: 27
Joined: Thu Apr 21, 2016 10:05 am

Post

podpowiedziałbyś co mam zmienić żeby mi odczytywał temperaturę na DHT11 bo ma inną bibliotekę niż Dallas
User avatar
pzygmunt
Posts: 19515
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków

Post

Nie sprawdzałem (napisane "na kolanie")

#include <SPI.h>
#include <Ethernet.h>
#include <DHT.h>
#include <SuplaDevice.h>

DHT dht(24, DHT11);

double get_temperature(int channelNumber, double last_val) {

double t = dht.readTemperature();
return isnan(t) ? -275 : t;
}

void setup() {

Serial.begin(9600);

dht.begin();

SuplaDevice.setTemperatureCallback(&get_temperature);
.......
smola23
Posts: 27
Joined: Thu Apr 21, 2016 10:05 am

Post

dzięki wielkie wieczorem spróbuje,
po co podaje się tą wartość -275?
User avatar
pzygmunt
Posts: 19515
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków

Post

Jak jest błąd odczytu lub brak czujnika to musimy przesłać odpowiednią informację na serwer. Nie możemy wysłać zera ponieważ to poprawna temperatura. -275 to ~2 stopnie poniżej zera absolutnego czyli spoza zakresu co serwer uznaje za błąd odczytu lub brak czujnika.
macco
Posts: 6
Joined: Wed Apr 20, 2016 10:43 am

Post

pzygmunt wrote:1. Należy dodać odpowiednią wielokrotność wywołania SuplaDevice.addDS18B20Thermometer(), następnie w get_temperature należy zwracać odczyt odpowiedniego termometru na podstawie numeru kanału.
2. 16 - takie ograniczenie jest ustawione w https://github.com/SUPLA/arduino/blob/m ... oto.h#L123 ale można to zwiększyć w zależności od dostępnej pamięci. Bez dodatkowych bibliotek spokojnie można zwiększyć do 128 i jeszcze zostanie trochę pamięci.
Dziękuję za odpowiedź.

Proszę o podpowiedź bo chyba sobie z tym nie poradzę (na dzień dzisiejszy za małe umiejętności w programowaniu) jak dodać czujniki ds18b20 do arduino mega, jakie pliki modyfikować aby poprawnie odczytywać temperaturę.
Czy czujniki dodajemy na tym samym porcie czy możemy wykorzystać kilka aby instalacja czujników była bardziej przejrzysta.
User avatar
pzygmunt
Posts: 19515
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków

Post

Jest gotowy przykład o nazwie SuplaEthernetShield_DallasTemperature
gdzie wystarczy uzupełnić GUID i podłączyć czujnik do pin-u 24.

Czujniki są na 1-wire tak więc na jednym pin-ie można podłączyć więcej czujników.
smola23
Posts: 27
Joined: Thu Apr 21, 2016 10:05 am

Post

Witam

kupiłem czujnik Sonda wodoodporna z czujnikiem temperatury DS18B20
i mam pytanie czy do arduino też muszę podłączyć go przez rezystor? czy nie? bo podłączyłem bez rezystora i nic nie wskazuje.

dzięki

Return to “Pomoc”