Rpi in python

Maline, robidnice in podobni elektronski sadeži, ki imajo integriranega kar precej HW.

Moderator: tilz0R

Rpi in python

OdgovorNapisal/-a kose19 » 19 Jan 2021, 12:11

V tem sem popoln novinec. Imam pa rpi na katerega preko serijskega porta pošiljam podatke. Trenutno se povežem preko Anydesk, da vidim vrednosti na terminalu, v obliki xx,yy,zz,...
Rad pa bi te podatke shranjeval v csv format.

Z raznimi tutoriali mi ni še nič uspelo. Zasledil sem tudi mirror ukaz s katerim naj bi "preslikal" stanje iz rx direkt v string. Ta string pa bi potem rad shranil v csv.
Uspelo mi je kreirati data.csv vendar ni nič v njem.
Nekaj sem poskušal z MUjem, ki je že naložen na malini, pa ni bilo uspeha.

Kje naj se lotim? Mogoče kakšen enostaven primer?
kose19
 
Prispevkov: 332
Pridružen: 19 Jan 2015, 18:01
Kraj: Kobarid
Zahvalil se je: 13 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 58

Re: Rpi in python

OdgovorNapisal/-a lojzek » 19 Jan 2021, 13:16

Ali si gledal "NodeRed", ki je že na malini? (za resnejšo uporabo ga je dobro malo nadgraditi, da imaš tudi možnost uporabe dashboarda).

Če imam po spominu prav, je en dodatek (node), ki shranjuje podatke. Ga pa nisem še uporabljal. Pa NodeRed zna zajemati podatke preko serijskega porta.
lojzek
 
Prispevkov: 236
Pridružen: 25 Feb 2015, 13:18
Zahvalil se je: 5 krat
Prejel zahvalo: 60 krat
Uporabnika povabil: Proteus
Število neizkoriščenih povabil: 6

Re: Rpi in python

OdgovorNapisal/-a kose19 » 19 Jan 2021, 20:24

Hmm, v tem se še manj znajdem. Do sedaj sem programiral v bascomu in bi mi kakšen podoben način najbolj vztrezal.
S programiranjem industrijskih plcjev pa tudi ne najdem skupnega načina.

Poizkušal sem tudi po tem primeru pa ni šlo
https://projects.raspberrypi.org/en/pro ... ture-log/2
Zadnjič spremenil kose19, dne 19 Jan 2021, 20:30, skupaj popravljeno 1 krat.
kose19
 
Prispevkov: 332
Pridružen: 19 Jan 2015, 18:01
Kraj: Kobarid
Zahvalil se je: 13 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 58

Re: Rpi in python

OdgovorNapisal/-a zanka » 19 Jan 2021, 20:27

python bere iz serijskega in izpisuje v terminal ?
Na spletu sem našel:
Koda: Izberi vse
import os

with open('./output.txt', 'a') as f1:
    f1.write(content + os.linesep)

Kar je potrebno narediti, je tvojo kodo spraviti pred f1.write in klicati f1.write( ... takrat ko izpišeš na terminal.
Uporabniški avatar
zanka
 
Prispevkov: 3053
Pridružen: 17 Mar 2016, 00:16
Kraj: SI-8000
Zahvalil se je: 120 krat
Prejel zahvalo: 346 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 69

Re: Rpi in python

OdgovorNapisal/-a kose19 » 19 Jan 2021, 20:31

Iz terminala berem, pisal bi v cvs file
kose19
 
Prispevkov: 332
Pridružen: 19 Jan 2015, 18:01
Kraj: Kobarid
Zahvalil se je: 13 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 58

Re: Rpi in python

OdgovorNapisal/-a kose19 » 27 Jan 2021, 09:18

Zaenkrat mi shranjuje v .csv datoteko vsakič, ko dobi paket na serijski port.
Sicer me moti, ker doda na začetku in koncu tistih par znakov obarvanih v rdečo, saj so na začetku vrinjeni za datum in uro pri shranjenem zapisu.
b'\x020,0,0,56,35,18,25,1,32,27,0,39,35,0,40,40,0,34,19,0\r\n'

Treba bo še narediti avtomatski zagon programa v ozadju ob vklopu maline.
Koda: Izberi vse
import time
import datetime
import serial

i = 0
while 0 < 1:
    ser = serial.Serial('/dev/ttyS0', 9600)
    s = ser.readline(100)
    x = datetime.datetime.now()
    f = open("data.csv", "a")
    f.write(str(x) + str(s) + '\n')
    f.close()
kose19
 
Prispevkov: 332
Pridružen: 19 Jan 2015, 18:01
Kraj: Kobarid
Zahvalil se je: 13 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 58

Re: Rpi in python

OdgovorNapisal/-a eddie » 27 Jan 2021, 14:17

Nekaj v tej smeri?
Koda: Izberi vse
a=b'\x020,0,0,56,35,18,25,1,32,27,0,39,35,0,40,40,0,34,19,0\r\n'
print(a)
b=a.decode('utf-8')
print(b)
c=b[1:][:-2]
print(c)


Kaj ti pomeni tisti \x20 na začetku? je to že podatek?
Lp
eddie
 
Prispevkov: 56
Pridružen: 22 Jan 2015, 21:11
Zahvalil se je: 12 krat
Prejel zahvalo: 1 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 3

Re: Rpi in python

OdgovorNapisal/-a kose19 » 27 Jan 2021, 20:04

Hvala, tako pa shranjuje kar jaz hočem.
Pythona še ne poznam in mi ni bilo jasno kako izrezat del katerega dolžina se lahko spreminja. S tem enostavno odrežeš poljubno število na začetku in koncu.

\x020 -> 020 je že podatek.
kose19
 
Prispevkov: 332
Pridružen: 19 Jan 2015, 18:01
Kraj: Kobarid
Zahvalil se je: 13 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 58

Re: Rpi in python

OdgovorNapisal/-a sundancer » 27 Jan 2021, 21:18

Dyslexic man walks into a bra.
Uporabniški avatar
sundancer
 
Prispevkov: 730
Pridružen: 16 Jan 2015, 22:36
Kraj: Domžale
Zahvalil se je: 282 krat
Prejel zahvalo: 393 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 50


Vrni se na Malina

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost