Per Stenebo
2013-11-06 17:57:37
2018-08-17 20:31:23
Seriell kommunikation
| Sparkfun tutorial | TLDP serial Howto | Using GNU screen to debug your serial port |
Interna sidor: | pySerial | Modbus | Telefoner | Raspberry Pi |
Lista seriella portar
ls /dev/ttyS* för integrerade portar
ls /dev/ttyUSB* eller lsusb för usb-anslutna portar
ls /dev/ttyAMA* för UART/TTL på Raspberry Pi GPIO
Visa info om seriella portar:
dmesg | grep tty
setserial -g /dev/ttyAMA0
För att läsa/skriva serieport behövs tillräckliga rättigheter:
ls -l /dev/ttyAMA0
crw-rw---- 1 root tty 204, 64 apr 29 16:17 /dev/ttyAMA0
Lägg till användaren per i gruppen tty:
sudo adduser per tty
Serial loopback / virtual serial port
| socat | Ubuntu socat man page |
Installera socat:
sudo apt install socat
Skapa två sammankopplade seriella portar (fungerar inte):
socat -d -d PTY: PTY:
2017/10/25 11:48:33 socat[2540] E PTY: wrong number of parameters (1 instead of 0) 2017/10/25 11:48:33 socat[2540] N exit(1)
Skapa två sammankopplade seriella portar, adressen skrivs ut:
socat -d -d pty,raw,echo=0 pty,raw,echo=0
2018/02/04 11:15:45 socat[10376] N PTY is /dev/pts/21 2018/02/04 11:15:45 socat[10376] N PTY is /dev/pts/22 2018/02/04 11:15:45 socat[10376] N starting data transfer loop with FDs [5,5] and [7,7]
Seriell över internet
| SSH Tunnel serial ports over the internet |
Jag har ett program i Windows 7 som ska konfigurera en mätare över RS-485. Problemet är att mätaren är 50 mil härifrån. Mätaren är ansluten till USB-RS485 på en raspberry Pi med internet.
- Skapa en virtuell serieport i Windows som pratar TCP/IP i andra änden: | HW VSP3 |
- Länka ihop TCP/IP-anslutningen i Raspian med den verkliga serieporten på Raspberryn: | socat | ser2net | ser2net tutor |
socat
sudo socat -x tcp-l:27644,reuseaddr,fork file:/dev/ttyUSB0,nonblock,waitlock=/var/run/tty0.lock
socat tcp-l:27644,fork,reuseaddr open:/dev/ttyUSB0,raw,n,echo=1
sudo socat -x tcp-l:27644,reuseaddr,fork open:/dev/ttyUSB0,nonblock,raw,echo=1
ser2net
sudo apt install ser2net
sudo nano /etc/ser2net.conf
27644:rawlp:0:/dev/ttyUSB0:remctl
ser2net -d
VirtualHere USB Server
| hemsida |
ip over serial
External links
How-To: Ethernet Bridge over serial(or xbee)
Connect the Raspberry Pi to Network Using UART
Bluetooth
Seriell kommunikation över Bluetooth. Para först ihop enheterna via GUI.
sudo hcitool scan
00:0E:07:27:95:47 T610per
sudo rfcomm bind /dev/rfcomm0 00:0E:07:27:95:47 1
ls -l /dev/rfcomm*
crw-rw---- 1 root dialout 216, 0 jan 5 22:06 /dev/rfcomm0
Jag fick inte detta att fungera med pySerial. Efter undersökning verkar det som att rfcomm ska kommunicera via sockets istället.
RS-485
Robot Electronics USB-RS485.
lsusb Ubuntu 14.04: Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
lsusb Raspbian 2015-07-29: Bus 001 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

| Tx+ | D+ | D0 | A | TRx+ |
| Tx- | D- | D1 | B | TRx- |
| GND | Ground | Common |
Baudrate
50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200.
Bps, bits per second.