Hej.
Chodzi mi po głowie pomysł. Chciałbym na strychu (wyłazie dachowym) zamontować czujnik pracujący na i2c BH1750, ale jako magistralę wykorzystać istniejącą już 1-wire. Robiłem wstępne testy na module arduino nano w roli konwertera i2c -> 1 wire udającego dwa czujniki DS18b20 żeby móc przesłać dwie liczby 8 bitowe (BH1750 daje wynik 16 bitowy). Ma ktoś jakieś doświadczenie w podobnym temacie i podzielił by się wiedzą?
Emulowanie magistrali 1-wire
widziałem ekspandery 1-wire -> IODuch__ wrote: Wed Feb 28, 2024 8:14 pm Hej.
Chodzi mi po głowie pomysł. Chciałbym na strychu (wyłazie dachowym) zamontować czujnik pracujący na i2c BH1750, ale jako magistralę wykorzystać istniejącą już 1-wire. Robiłem wstępne testy na module arduino nano w roli konwertera i2c -> 1 wire udającego dwa czujniki DS18b20 żeby móc przesłać dwie liczby 8 bitowe (BH1750 daje wynik 16 bitowy). Ma ktoś jakieś doświadczenie w podobnym temacie i podzielił by się wiedzą?
ale konwerter 1-wire na i2c raczej takiego nie ma jako scalak.
Nie wiem czy nie łatwiej i nie wiem czy to nie jedyne rozwiązanie zastosować arduino/attiny jako gate.
-
klew
- Posts: 13911
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 135 times
- Been thanked: 137 times
Ja się nie bawiłem 
Ale nie widzę żadnego powodu dlaczego to by miało nie działać.
Komunikacja 1-wire jest cyfrowa i jeśli zaimplementujesz obsługę odpowiednich poleceń, to możesz udawać DS18B20.
Ale nie widzę żadnego powodu dlaczego to by miało nie działać.
Komunikacja 1-wire jest cyfrowa i jeśli zaimplementujesz obsługę odpowiednich poleceń, to możesz udawać DS18B20.
Najlepsze suple dla Twojego domu 
-
Duch__
- Posts: 2199
- Joined: Wed Aug 24, 2016 7:26 pm
- Location: Opole
- Been thanked: 6 times
Największym dla mnie obecnie problemem jest przesylanie dużych wartości liczbowych większych niż typu word. Obecnie word rozbijam (koduje) na dwie wartości typu byte i przekształcam na wartość temperaturową z zakresu -55 do 125st C z krokiem 0.25st C. W układzie odbiorczym dekoduje je spowrotem na wartości typu byte i formuje z nich typu word. Na razie szukam sposobu by przesłac jednarazowo jedna wartosc float, double itp, a nie rozbijac tego na dwa sztuczne czujniki.
-
maciej38
- Posts: 29
- Joined: Tue Sep 11, 2018 8:07 pm
Ja się też trochę bawiłem w "erze przedsuplowej".
Najpierw z ATMEGA32 jako master potem Z RPI. Topologia gwiazdy gdzie jedno z ramion miało 25 m!
Jeśli jako hosta chcesz użyć RPI z OWFSem - tak ja robiłem - Jako konwerter I2C-1Wire
użyj tego:
https://www.edom-plc.pl/index.php/pl/1 ... e-ver-2-0
w wersji 1.0 bodajże ale działał niezawodnie - zresztą działa do dzisiaj, ale ze suplą już.
Nie wiem tylko jak z dostępnością tego scalaka teraz - DS2482.
Z moich potyczek z magistralą wynika, że ograniczeniem jest wydajność
prądowa portu mikrokontrolera ( odległość pomiędzy masterem a slavami i ich ilość ).
Dlatego kluczem jest ten konwerter w którym, zasilanie magistrali
1W masz z osobnego źródła napięcia 5v, a konwerter I2C z 3,3V.
Do tego jako slavów używałem ATMEGi8 z programem, który udawał DS2430. To pamięć 1Wire.
Z dugiej strony ATmegi była szyna I2c z czujnikami SHT, MPL3115A2, BMP BME co tam sobie wymyślisz.
Równie dobrze może być po RS232 czy innym.
ATmega odczytywała po I2c czujniki. I potem odczyt jakiś skryptem w bashu po 1W Atmegi jako DS2430.
Niestety strona z programem na tą ATMEG8 już nie jest dostępna ( mam jej kopię offline )
no i mam swoje programy + skrypty w bashu.
Jeśli jesteś zainteresowany pisz na piva.
Najpierw z ATMEGA32 jako master potem Z RPI. Topologia gwiazdy gdzie jedno z ramion miało 25 m!
Jeśli jako hosta chcesz użyć RPI z OWFSem - tak ja robiłem - Jako konwerter I2C-1Wire
użyj tego:
https://www.edom-plc.pl/index.php/pl/1 ... e-ver-2-0
w wersji 1.0 bodajże ale działał niezawodnie - zresztą działa do dzisiaj, ale ze suplą już.
Nie wiem tylko jak z dostępnością tego scalaka teraz - DS2482.
Z moich potyczek z magistralą wynika, że ograniczeniem jest wydajność
prądowa portu mikrokontrolera ( odległość pomiędzy masterem a slavami i ich ilość ).
Dlatego kluczem jest ten konwerter w którym, zasilanie magistrali
1W masz z osobnego źródła napięcia 5v, a konwerter I2C z 3,3V.
Do tego jako slavów używałem ATMEGi8 z programem, który udawał DS2430. To pamięć 1Wire.
Z dugiej strony ATmegi była szyna I2c z czujnikami SHT, MPL3115A2, BMP BME co tam sobie wymyślisz.
Równie dobrze może być po RS232 czy innym.
ATmega odczytywała po I2c czujniki. I potem odczyt jakiś skryptem w bashu po 1W Atmegi jako DS2430.
Niestety strona z programem na tą ATMEG8 już nie jest dostępna ( mam jej kopię offline )
no i mam swoje programy + skrypty w bashu.
Jeśli jesteś zainteresowany pisz na piva.
--
Każda dostatecznie zaawansowana technologia niczym nie różni się od magii.
Arthur C. Clarke
Każda dostatecznie zaawansowana technologia niczym nie różni się od magii.
Arthur C. Clarke
