Mam malinę, że próbuję połączyć się z chmurą Ubidots IOT, ale dostałem ten błąd:

pi@raspberrypi:~/Downloads/raspbiDaniela/Ver 2016/ZonrProject $ python main.py
    Traceback (most recent call last):
      File "main.py", line 124, in <module>
        main()
      File "main.py", line 21, in main
        ser = serial.Serial(port=port, baudrate=baud)
      File "/usr/lib/python2.7/dist-packages/serial/serialutil.py", line 261, in __init__
        self.open()
      File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 278, in open
        raise SerialException("could not open port %s: %s" % (self._port, msg))
    serial.serialutil.SerialException: could not open port /dev/ttyAMA0: [Errno 13] Permission denied: '/dev/ttyAMA0'
0
adi epsicom 19 listopad 2018, 16:23
1
Biegać z sudo ?
 – 
themadmax
19 listopad 2018, 16:39

2 odpowiedzi

Najlepsza odpowiedź

Nie musisz uruchamiać skryptu za każdym razem z sudo, jak sugerowano w komentarzach, ale musisz upewnić się, że masz uprawnienia do odczytu/zapisu dla /dev/ttyAMA0. Możesz modyfikować uprawnienia za pomocą:

sudo chmod 666 /dev/ttyAMA0

Jeśli urządzenie można odłączyć, możesz również rozważyć utworzenie reguły udev, która będzie stosować odpowiednie uprawnienia za każdym razem, gdy je podłączysz. Możesz przeczytać więcej o regułach udev na wiki Debiana.

2
machnic 19 listopad 2018, 18:03

Spotkałem się z tym problemem, gdy włączałem SSH przez serial. Kiedy go wyłączam i włączam tylko interfejs szeregowy przez sudo raspi-config, wszystko działa dobrze bez problemów z uprawnieniami.

Mam nadzieję, że pomoże to innym programistom.

0
Pakpoom Tiwakornkit 23 październik 2020, 14:22