ESP8266 i DS18B20
-
0xFF
- Posts: 308
- Joined: Sat Feb 20, 2016 8:54 pm
Mam ESP8266 podłączone do Raspberry Pi, niestety UART nie obsługuje 74880 b/s.
Przejściówka USB-TTL, którą mam też chyba nie obsługuje, bo Putty wyrzuca krzaczki.
Da się łatwo przekonfigurować UART ESP8266 na jakąś "tradycyjną" szybkość ?
Przejściówka USB-TTL, którą mam też chyba nie obsługuje, bo Putty wyrzuca krzaczki.
Da się łatwo przekonfigurować UART ESP8266 na jakąś "tradycyjną" szybkość ?
-
0xFF
- Posts: 308
- Joined: Sat Feb 20, 2016 8:54 pm
Po długich bojach udało mi się odczytać z UART-a Raspberry.
Dla temperatury 19-20C dane wyglądają tak:
Kod ze strony http://tech.scargill.net/esp8266-and-th ... -ds18b20p/ ma warunek:
W repozytorium SUPLA jest
W moim przypadku to chyba nie ma znaczenia, bo data[1]=0
Ostatnia sprawa, mój DS jest oznaczony DS1820 , bez "B". Już nie pamiętam jaki model kupowałem, ale nie powinno mieć to znaczenia - różnią się tylko dokładnością odczytu temperatury .
Testowałem 2 sztuki, oba dają za niską temperature. Podłączałem pod RPi - tam działają poprawnie.
Dla temperatury 19-20C dane wyglądają tak:
Code: Select all
data[0]=40
data[1]=0
data[2]=75
data[3]=70
data[4]=255
data[5]=255
data[6]=9
data[7]=16Code: Select all
if (temperature>100) temperature-=4096; Code: Select all
if ( t > 1000 )
t-=4096;Ostatnia sprawa, mój DS jest oznaczony DS1820 , bez "B". Już nie pamiętam jaki model kupowałem, ale nie powinno mieć to znaczenia - różnią się tylko dokładnością odczytu temperatury .
Testowałem 2 sztuki, oba dają za niską temperature. Podłączałem pod RPi - tam działają poprawnie.
-
0xFF
- Posts: 308
- Joined: Sat Feb 20, 2016 8:54 pm
Przy próbie ogrzania suszarką zmieniają się wartości
Pozostałe bajty bez zmiany.
Code: Select all
data[0]
data[6]
data[7]-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
W funkcji supla_ds18b20_read_temperatureB
Zamień
t = (data[0]+(data[1]*256))/16.0;
na
t = ((((int8_t)data[1])<<8) | data[0]) / 2.0;
i usuń
if ( t > 1000 )
t-=4096;
Zastosowane przeliczanie było z przykładu http://tech.scargill.net/esp8266-and-th ... -ds18b20p/
teraz się temu przyjrzałem i wypracowałem wzór
t = ((((int8_t)data[1])<<8) | data[0]) / 16.0;
dla DS18B20 dla DS1820 będzie po prostu mniejsza precyzja.
daj znać czy działa.
Zamień
t = (data[0]+(data[1]*256))/16.0;
na
t = ((((int8_t)data[1])<<8) | data[0]) / 2.0;
i usuń
if ( t > 1000 )
t-=4096;
Zastosowane przeliczanie było z przykładu http://tech.scargill.net/esp8266-and-th ... -ds18b20p/
teraz się temu przyjrzałem i wypracowałem wzór
t = ((((int8_t)data[1])<<8) | data[0]) / 16.0;
dla DS18B20 dla DS1820 będzie po prostu mniejsza precyzja.
daj znać czy działa.
SUPLA.... Nareszcie w domu.
-
0xFF
- Posts: 308
- Joined: Sat Feb 20, 2016 8:54 pm
Właśnie przeglądałem dokumentację i faktycznie inne mapy pamięci mają te wersje.
Na szybko znalazłem w kernelu przeliczenia dla obu:
https://github.com/raspberrypi/linux/bl ... erm.c#L186
Na szybko znalazłem w kernelu przeliczenia dla obu:
https://github.com/raspberrypi/linux/bl ... erm.c#L186
-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
Nie mam na biurku teraz podłączonych tych czujników ale sprawdziłem wartości z tabel referencyjnych
(Table 1. Temperature/Data Relationship)
https://datasheets.maximintegrated.com/ ... S18B20.pdf
(TEMPERATURE/DATA RELATIONSHIPS Table 1)
http://www.systronix.com/Resource/ds1820.pdf
i teoretycznie powinno teraz działać stosując przelicznik:
((((int8_t)data[1])<<8) | data[0]) / 2.0; dla DS1820
i
((((int8_t)data[1])<<8) | data[0]) / 16.0; dla DS10B20
Jutro to w praktyce przetestuję przynajmniej dla DS18B20
(Table 1. Temperature/Data Relationship)
https://datasheets.maximintegrated.com/ ... S18B20.pdf
(TEMPERATURE/DATA RELATIONSHIPS Table 1)
http://www.systronix.com/Resource/ds1820.pdf
i teoretycznie powinno teraz działać stosując przelicznik:
((((int8_t)data[1])<<8) | data[0]) / 2.0; dla DS1820
i
((((int8_t)data[1])<<8) | data[0]) / 16.0; dla DS10B20
Jutro to w praktyce przetestuję przynajmniej dla DS18B20
SUPLA.... Nareszcie w domu.
