Permalänk
Medlem

RPI + 1-wire

Halloj,

Jag har planer på¨att sätta upp en RPI för att ta in mätvärden från 1-wire tempsensorer.
Mätvärdena vill jag sedan "skicka"/"ta in" i NodeRed, på samma RPI och skicka vidare till KNX över ethernet med multicast.
So far, so good!

Har sett att man kan ta in värdena på GPIO med motstånd etc. dock hajjar jag inte hur många sensorer jag kan lägga på?
Sen verkar man kunna ha hårdvarustöd, genom att köpa USB bus host, alternativt en HAT med stöd för 1-wire.
Antar att hårdvarustöd är tillförlitligare över GPIO?

Tänker mig att jag installerar OWFS (one wire file system) och RedNode. Men sen då? Behöver man skriva egna script, eller är det bara om man tar det på GPIO? Medan om man har hårdvarustödet så är det enklare att mappa upp givarna via OWFS?

Någon som har gjort detta tidigare och kan komma med tips och glada tillrop?
Finns t.ex hattar med 17st 1-wire kanaler, betyder det 17 sensorer eller kan man hänga på fler sensorer per kanal? Dvs att dom är egna bussar?

Permalänk
Medlem

Enklast är väl att köra OneWire/1-wire på en UART-kanal (googla hw-setupen, men den är rätt simpel). Du kan köra flera 1-wireenheter på samma kanal, de har sitt egna unika id som du enklast först pollar efter och sen adresserar du enheten du vill prata med.

Det är lite fiddlande med ett par olika baudrates för UARTen (för att matcha onewire-timingen), men det finns exempel på nätet

Permalänk
Medlem

Okej, UART kanal, då använder man en GPIO antar jag.
Det var här jag tänkte att det blir lättare om man skaffar sig hårdvarustöd iform av ett MAXIM chipset som sköter komminikationen med baudrates och allt vad det heter?

Permalänk
Medlem
Skrivet av KjellTimell:

Okej, UART kanal, då använder man en GPIO antar jag.
Det var här jag tänkte att det blir lättare om man skaffar sig hårdvarustöd iform av ett MAXIM chipset som sköter komminikationen med baudrates och allt vad det heter?

Yes, eller två av pinnarna i "GPIO-headern" är UART (se denna länk som exempel).

Kika sedan på följande sida, det är enligt bild 2 du ska koppla. Högersidan är din OneWire-bus. All kod du behöver finns dessutom i det repot mer eller mindre OneWire är ett protokoll som kräver ganska precis timing, och ett par UART-baudrates lyckas tima väldigt väl med kraven för OneWire.

Du kan givetvis även skaffa en separat IC som pratar OneWire, men det är en extra onödig krets och du måste dessutom sen prata med den enheten istället för direkt med temperatursensorerna

RPi har 3.3V UART's så det bör fungera fint med dina tempsensorer (de brukar vara för 3.3V).