1

Temat: DS1820 przez USB bez interfejsu DS2490??

Jako, że ciężko dostać wskazany interfejs (DS2490), pomyślałem, czy dam radę odczytać temperaturę z czujników DS1820 przy pomocy urządzenia ze schematu z tego opisu, podłaczając całość przez zwykły konwerter RS232<->USB do portu USB w moim routerze (Netgear WNDR4300).

Jakie pakiety to obsłużą??

2

Odp: DS1820 przez USB bez interfejsu DS2490??

digitemp. I nie działa to na każdej przejściówce.

Prościej już zwykły attiny85 + program w arduino lub gotowiec typu littlewire.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: DS1820 przez USB bez interfejsu DS2490??

nie chcę angażować w to arduino (mam wobec niego inne plany wink ), przynajmniej na tym etapie. Jeśli jestem w stanie zrobić to prościej i taniej bez arduino to tak chciałbym zrobić. stąd pomysł ze zwykłym konwerterem RS232<->USB, tymbardziej, że taką mam. A jeśli nei zadziala, spróbuję zrobić sobie kolejny

4 (edytowany przez manguscik 2016-03-03 19:54:55)

Odp: DS1820 przez USB bez interfejsu DS2490??

Ale arduino mini kosztuje grosze około 9.99 PLN + koszty wysyłki np tu  :

http://allegro.pl/promocja-na-modul-ard … 92570.html

więc ja bym się nie bawił w przejściówki RS232<->USB ale decyzja należy do Ciebie.

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

5

Odp: DS1820 przez USB bez interfejsu DS2490??

OT: Poczta zdrożała, więc brać dopóki nie podniosą kosztów wysyłki smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

6

Odp: DS1820 przez USB bez interfejsu DS2490??

Lub ewentualnie Arduino mini USB klon za 8.99

http://allegro.pl/uno-nano-mini-usb-r3- … 47836.html

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

7

Odp: DS1820 przez USB bez interfejsu DS2490??

hmmm, te klony arduino nie głupie są. ja swoje kupowałem za 50zł, dlatego szukałem tańszego rozwiązania. ale skoro tutaj podsyłacie za 9zł to biorę bez zastanowienia! jutro zamawiam wink

8 (edytowany przez snifer 2016-03-03 22:17:35)

Odp: DS1820 przez USB bez interfejsu DS2490??

manguscik napisał/a:

Lub ewentualnie Arduino mini USB klon za 8.99

http://allegro.pl/uno-nano-mini-usb-r3- … 47836.html

Wysyłka z zagranicy, czytaj - z Chin, to już lepiej samemu sobie na ali zamówić, trochę takiej wyjdzie, szczególnie przy większej ilości, darmowa dostawa a czas oczekiwania taki sam. Klona mini kupisz na $1.5 a nano za $1.9, wysyłka darmowa.

Archer C7 v.2 + LEDE by Cezary http://beta.speedtest.net/pl/result/6621599402

9

Odp: DS1820 przez USB bez interfejsu DS2490??

snifer napisał/a:
manguscik napisał/a:

Lub ewentualnie Arduino mini USB klon za 8.99

http://allegro.pl/uno-nano-mini-usb-r3- … 47836.html

Wysyłka z zagranicy, czytaj - z Chin, to już lepiej samemu sobie na ali zamówić, trochę takiej wyjdzie, szczególnie przy większej ilości, darmowa dostawa a czas oczekiwania taki sam.

Że też AlleDrogo nadal zezwala na takie "pośrednictwo"... nakopałbym do dup.

10 (edytowany przez siutek 2016-03-10 13:52:00)

Odp: DS1820 przez USB bez interfejsu DS2490??

tak dla jasności:
jeśli w arduino wgrywam program z biblioteką do obsługi DS18B20 oraz 1wire, to programu digitemp na routerze instalować już nie muszę prawda??

czy jednak powinienem go zainstalować choćby po to, by zapisywać dane pochodzące z portu USB?? chciałbym wszystko zapisywać w bazie SQLlite

11

Odp: DS1820 przez USB bez interfejsu DS2490??

digitemp nie jest od tego. Jak zrobisz arduino to musisz też zrobić wysyłania danych z niego po usb.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12

Odp: DS1820 przez USB bez interfejsu DS2490??

w programie jest juz wysyłanie danych na port serial, na kompie, podłączając się do arduino przez PUTTY (czy też monitor portu szeregowego w Arduino IDE) jestem w stanie odczytać wysyłane dane. więc pozostaje mi tylko odbiór tych danych, które już są nadawane i zapisanie ich do bazy

13

Odp: DS1820 przez USB bez interfejsu DS2490??

Odczytujesz zwykłym catem/grepem co tam zrobisz a dalej to już co chcesz. Był tu już podobny temat.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14 (edytowany przez manguscik 2016-03-10 17:43:45)

Odp: DS1820 przez USB bez interfejsu DS2490??

Siutek jak trzeba pomocy to pytaj bo ja przy arduino i openwrt nie przespałem trochę nocek aby to rozgryźć big_smile aby moja meteo działa jak ma działać big_smile

W pierwszej wersji skryptem napisanym w  paythonie przechwytywałem to co pojawia się na serial porcie i zapisywałem do bazy Sqlite   ale kolidowało mi to z załącz wyłącz przekaźnik więc zrobiłem to w ten sposób że router wysyła zapytanie do arduino i dopiero wtedy on podaje daną temperaturę i zaczytuje dane do bazy MySQL 

lkink do mojej stacji  meteo   www.dominikowice.one.pl działające na arduino leonardo i openwrt z czujnikami:

- DS18b20 w ilość 10 szt ( czujniki temperatury wewnątrz domu)
- DHT22 w ilości 2 szt ( wilgotność i temperatura wewnątrz w domu)
- DHT21 w ilośći 1 szt  ( wilgotność i temperatura na zewnątrz)
- BMP180 w ilośći 1 szt (cisnienie i temperatura)

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

15 (edytowany przez siutek 2016-03-10 21:03:06)

Odp: DS1820 przez USB bez interfejsu DS2490??

nooo, manguscik, skoro się oferujesz to wiedz, że nie prześpisz kolejnych kilku nocek wink

pythona niestety nie znam wcale, dlatego wolałbym zrobić to przez php + SQLlite, i tak jak napisałeś - nie chcę by arduino zasypywało mnie danymi, wolałbym otrzymywać je na żądanie. chciałbym aktualizować temperaturę np co sekundę, co więcej chciałbym zapisywać do bazy tylko zmiany temperatury, a nie każdy raport z czujników wykonywany co sekundę.

na chwilę obecną korzystam z programu ze strony http://akademia.nettigo.pl/ds18b20/#odc … ow_ds18b20, część z kodem do odczytu temperatury z kilku czujników. i ten kod chcę zmodyfikować pod swoje potrzeby

na chwilę obecną jedyne co zrobiłem, to opóźnienie wykonania kolejnej pętli poprzez dodanie delay(5000); do środka pętli.

Ale nadal to arduino samo do mnie gada, nieproszone. a chcę by gadało na wyraźne życzenie wink

16 (edytowany przez manguscik 2016-03-10 21:03:17)

Odp: DS1820 przez USB bez interfejsu DS2490??

Tylko że odczytywanie ręczne czujników jest trochę nie praktyczne bo jak podłączysz nowy to trzeba z reki by mu dodawać i zmieniać program arduino  nie lepiej aby on sam wykrywał czujniki i przypisywał je  jako T0, T1, T2 i tak dalej opisując adres czujnika .

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

17

Odp: DS1820 przez USB bez interfejsu DS2490??

nie wiem czy jest to konieczne, nie przewiduję zbyt częstego dodwania nowych czujników. jeśli przybędzie nowy - to go dodam w programie. ale zastanowię się jeszcze nad Twoją propozycją.

18

Odp: DS1820 przez USB bez interfejsu DS2490??

Zamiast T0, T1 itd wyświetlaj serial number czujnika, tak po prostu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19

Odp: DS1820 przez USB bez interfejsu DS2490??

tiaaa... na chwilę obecną potrafię odczytać temperaturę z czujników zdefiniowanych w programie. chociaż sama idea automatycznego wykrywania nowych czujników jest jak najbardziej OK, to najnormalniej w świecie... nie wiem jak to zrobić sad

20

Odp: DS1820 przez USB bez interfejsu DS2490??

Masz pewnie w arduino wykrywania magistrali i latanie po wszystkich wykrytych.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

21

Odp: DS1820 przez USB bez interfejsu DS2490??

owszem, widziałem już gdzieś (a nawet stosowałem) kod, do sprawdzenia adresów podłączonych czujników, więc tego samego można by użyć do automatyzacji całości

22 (edytowany przez manguscik 2016-03-10 21:32:10)

Odp: DS1820 przez USB bez interfejsu DS2490??

Moj program do odczytu temperatury przerób i będzie git

#include <OneWire.h>
#include <DallasTemperature.h>

// Czujnik oneWire podlaczony do wejscia nr 2 w Arduino
#define ONE_WIRE_BUS 2
#define TEMPERATURE_PRECISION 12 // 


OneWire oneWire(ONE_WIRE_BUS);


DallasTemperature sensors(&oneWire);

int numberOfDevices; // Wykrywanie czujnikow

DeviceAddress tempDeviceAddress; // Bedziemy uzywać tej zmiennej aby znaleźć adres urządzenia

void setup(void)
{
  // uruchomienie portu szeregowego
  Serial.begin(9600);
  while(!Serial);
 
   // uruchomienie biblioteki
  sensors.begin();
  
  // Znajdowanie urzadzen na linii
  numberOfDevices = sensors.getDeviceCount();
  
  // Wykryte urzadzenia na magistrali 
  Serial.print("Wykrywanie czujnikow ... ");
  
  Serial.print("wykryto ");
  Serial.print(numberOfDevices, DEC);
  Serial.println(" czujnikow.");

  // Wykrycie trybu pracy
  Serial.print("Tryb pasozytniczy: "); 
  if (sensors.isParasitePowerMode()) Serial.println("Tak");
  else Serial.println("Nie");
  
  // Petla dla kazdego urzadzenia i wyswietlanie opisu
  for(int i=0;i<numberOfDevices; i++)
  {
    // Szukanie adresow czujnikow
    if(sensors.getAddress(tempDeviceAddress, i))
    {
        Serial.print("Znaleziono  ");
        Serial.print(i, DEC);
        Serial.print(" urzadzenie z adresem: ");
        printAddress(tempDeviceAddress);
        Serial.println();
        
        Serial.print("Ustawiono rozdzielczosc ");
        Serial.println(TEMPERATURE_PRECISION, DEC);
        
        // ustawianie rozdzielczosci
        sensors.setResolution(tempDeviceAddress, TEMPERATURE_PRECISION);
        
         Serial.print("Rozdzielczosc ustawiona: ");
        Serial.print(sensors.getResolution(tempDeviceAddress), DEC); 
        Serial.println();
    }else{
        Serial.print("Znaleziono urzadzenie ");
        Serial.print(i, DEC);
        Serial.print(" o nie zidentyfikowanym adresie. Sprawdz zasilanie i przewody");
    }
  }

}

// Wysiwetlanie i czytanie temperatury z czujnika
void printTemperature(DeviceAddress deviceAddress)
{
   float tempC = sensors.getTempC(deviceAddress);
  Serial.print(tempC);
  Serial.print(" C ; ");
}

void loop(void)
{ 
  // Zapytanie o temperature wszystkich urzadzen
  sensors.requestTemperatures(); 
  Serial.println("OK");
  delay(5000);
  // Petla po kazdym urzadzeniu aby odczytac czujnik
  for(int i=0;i<numberOfDevices; i++)
  {
    // Wyszukiwanie na lini czujnikow
    if(sensors.getAddress(tempDeviceAddress, i))
    {
        // Wyswietlenie opisu czujnika
        Serial.print("T");
        Serial.print(i,DEC);
    Serial.print(":");
    Serial.print(" ");
        
        
        printTemperature(tempDeviceAddress); 
    } 
        
  }
}

// Wyswietlanie adresu czujnika
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    if (deviceAddress[i] < 16) Serial.print("1");
    Serial.print(deviceAddress[i], HEX);
    
  }
}


o poźniej dodaj w  programie który masz dodaj sobie nasłuchiwanie aby arduino czekało na komendę aby wyświetlić pomiary.

Na samym początku programu dodaj string:

String odebraneDane = "";

przed
void setup()  

i w 

void loop(void)

dodaj 
{
   if(Serial.available() > 0) { 
   odebraneDane = Serial.readStringUntil('\n'); 
   if (odebraneDane == "odczyt") { 
         
  // I tutaj już dalsza cześć twojego programu z odczytem temperatury 

w tym przypadku wysłanie do arduiono tekstu odczyt spowoduje popranie i wyswietlenie temperatury

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

23

Odp: DS1820 przez USB bez interfejsu DS2490??

poprawiłem swój program według Twoich pierwszych wskazówek, jeszcze przed edycją postu - działa elegancko wink zaraz sprawdzę dokładnie Twój program i popatrzę co Ci jeszcze mogę "ukraść" wink

będę musiał się pobawić elektroniką, bo jak narazie wszystko mam na płytce stykowej, a chcę to porozkładać po całym mieszkaniu, więc będę musiał metodą prób i błędów dobrać opornik podciągający. Na ilu żyłach masz czujniki DS18B20? 2 czy 3?

24 (edytowany przez manguscik 2016-03-10 21:48:02)

Odp: DS1820 przez USB bez interfejsu DS2490??

Na 3 żyłach  bez trybu pasożytniczego bo  na dwóch wyskakiwały błędne odczyty. Umnie jest około  50 mb przewodu trzy żyłowego.

A co do rezystora to daj 4.7 k i będzie git

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

25

Odp: DS1820 przez USB bez interfejsu DS2490??

wiem, to jest standard. ale przy dłuższych przewodach w kablach zachodzi magia, i trzeba dobierać inny rezystor