DFRobot DFR1184 wykorzystuje ADS1115 i udostępnia dwa wejścia napięciowe 0–10 V. Producent deklaruje efektywną rozdzielczość 15 bitów, krok około 0,3125 mV oraz błąd mniejszy niż 2 mV. Moduł może być zasilany napięciem 3,3–5 V i pracować przez I²C albo UART.
Docelowy wariant OqlOS używa bezpośredniego UART Raspberry Pi 3: /dev/serial0,
9600 bit/s, 8 bitów danych, brak parzystości, jeden bit stopu (8N1).
Ustaw przełącznik DFR1184 w położeniu UART przy wyłączonym zasilaniu.
| Raspberry Pi 3 | Pin fizyczny | DFR1184 | Funkcja |
|---|---|---|---|
| 3V3 | 1 | VCC | zasilanie i logika 3,3 V |
| GND | 6 | GND | wspólna masa |
| GPIO14 / TXD | 8 | C/R / RXD | Pi nadaje, DFR1184 odbiera |
| GPIO15 / RXD | 10 | D/T / TXD | DFR1184 nadaje, Pi odbiera |
TX i RX muszą być skrzyżowane. Zalecane jest zasilanie DFR1184 z 3,3 V, aby sygnał TX modułu nie przekroczył dopuszczalnego poziomu GPIO Raspberry Pi. Wejścia GPIO Pi nie są odporne na logikę 5 V.
Raspberry Pi 3 DFR1184 (tryb UART)
pin 1 3V3 ───────────────────────── VCC
pin 6 GND ───────────────────────── GND
pin 8 TXD ───────────────────────── C/R (RXD)
pin 10 RXD ───────────────────────── D/T (TXD)
Sygnał 0–10 V (+) ─────────────────── AIN1 albo AIN2
Masa sygnału ─────────────────── GND wejściowe
sudo raspi-config.Interface Options → Serial Port wyłącz konsolę logowania na porcie szeregowym.enable_uart=1.readlink -f /dev/serial0.W zależności od wydania Raspberry Pi OS konfiguracja znajduje się w
/boot/config.txt albo /boot/firmware/config.txt. Na Raspberry Pi 3 Bluetooth może
zajmować pełny UART PL011. Jeżeli wymagana jest najwyższa stabilność, można świadomie
przenieść/wyłączyć Bluetooth odpowiednią nakładką, ale nie jest to wykonywane przez
ten projekt automatycznie.
Użytkownik usługi musi należeć zwykle do grupy dialout:
sudo usermod -aG dialout oqlos
Zmiana grupy zaczyna działać po ponownym zalogowaniu lub restarcie usługi.
Test obecności:
TX: 41 54 0d 0a AT\r\n
RX: 4f 4b 0d 0a OK\r\n
Odczyt kanału:
CC 20 01 <kanał>.BB 31 03.raw = byte0 × 65536 + byte1 × 256 + byte2
millivolts = raw / 100
volts = raw / 100000
Jednostka surowego wyniku to 0,01 mV. Jest to format raportowania protokołu, a nie
rzeczywista rozdzielczość fizyczna toru.