❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

Raspberry script - pomoc

Příspěvky, které nespadají do žádného z vytvořených fór.
Uživatelský avatar
sub_zero
Příspěvky: 1741
Registrován: 19 years ago
antispam: Ano
Bydliště: Olomouc
Kontaktovat uživatele:

Raspberry script - pomoc

Příspěvekod sub_zero » 6 years ago

Ahoj,

není tu nějakej odborník na Python?
Kolega rozjíždí na Malině evidence docházky a potýká se s problémem, že pokud pustí script v Thonny, tak mu vše projde ok, ale přes cmd ne.

Kód: Vybrat vše

 import RPi.GPIO as GPIO # Import Raspberry Pi GPIO library
import time
from datetime import datetime
from time import sleep
import requests
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import os
import I2C_LCD_driver
import threading



GPIO.setwarnings(False) # Ignore warning for now
GPIO.setmode(GPIO.BOARD) # Use physical pin numbering
GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Set pin 10 to be an input pin and set initial value to be pulled low (off)
GPIO.setup(29, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(35, GPIO.OUT)
GPIO.output(35,False)


tlacitkoA = 0
url = httpskiss.xxxxx.xx8451apidochazka
mylcd = I2C_LCD_driver.lcd()
porovnej_cas = time.strftime(%d.%m.%Y %H%M)
mylcd.lcd_display_string(     Vitejte    , 1)
mylcd.lcd_display_string(                , 2)
time.sleep(3)

mylcd.lcd_display_string(time.strftime(%d.%m.%Y %H%M), 2)

def button_callback(channel)
            global tlacitkoA
            global a
            global mylcd
            print(Zmacknuto tlacitko 1)
            pin_status=GPIO.input(11)
            tlacitkoA = tlacitkoA + 1

            if tlacitkoA == 1
                mylcd.lcd_display_string(     ODCHOD     , 1)

            elif tlacitkoA  1
                mylcd.lcd_display_string(    PRICHOD     , 1)
                tlacitkoA = 0

def hodiny()
    global porovnej_cas
    threading.Timer(1.0, hodiny).start()
    if porovnej_cas != time.strftime(%d.%m.%Y %H%M)
        mylcd.lcd_display_string(time.strftime(%d.%m.%Y %H%M), 2)
        porovnej_cas = time.strftime(%d.%m.%Y %H%M)
hodiny()

GPIO.add_event_detect(11,GPIO.FALLING,bouncetime=1000)
GPIO.add_event_callback(11,button_callback)

while True
    f = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+.txt,a)
    mylcd.lcd_display_string(    PRICHOD     , 1)
    token = input ('zadej token ')

    data = {cisloImtoken,typZaznamutlacitkoA}
    try
        resp = requests.post(url, json=data)
        print (resp.status_code)
        f.write (datetime.now().strftime('%d-%m-%Y--%H-%M-%S')+ Token +token+ - Prichod(1)Odchod(0) +str(tlacitkoA)+ - Status serveru +str(resp.status_code)+n)
        f.close()
        if resp.status_code == 200
            mylcd.lcd_display_string(       OK       , 1)
            time.sleep(2)
            try
                file = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+CHYBA.txt,r)
                print (file.read())
                if file.read() is not None
                    file = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+CHYBA.txt,r)
                    fromaddr = m.migal@sigmasoft.cz
                    toaddr = m.migal@sigmasoft.cz
                    msg = MIMEMultipart()
                    msg['From'] = fromaddr
                    msg['To'] = toaddr
                    msg['Subject'] = Nalezen chybovy soubor
                    body = file.read()
                    msg.attach(MIMEText(body, 'plain'))
                    server = smtplib.SMTP('mail.xxxxxxxx.cz', 25)
                    server.starttls()
                    server.login(fromaddr, s15_28c4)
                    text = msg.as_string()
                    server.sendmail(fromaddr, toaddr, text)
                    server.quit()
                    print (mail poslan )
                    f.close()
                    f = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+.txt,a)
                    f.write (datetime.now().strftime('%d-%m-%Y--%H-%M-%S')+ Mail s chybarem odeslan +n)
                    f.close()
os.remove(homepiLOG+datetime.now().strftime('%d-%m-%Y')+CHYBA.txt)
            except
                print(Chybovy soubor nenalezen)


    except
        f = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+CHYBA.txt,a)
        f.write (datetime.now().strftime('%d-%m-%Y--%H-%M-%S')+ Token +token+ - Prichod(1)Odchod(0) +str(tlacitkoA)+n)
        f.close()
        f = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+.txt,a)
        f.write (datetime.now().strftime('%d-%m-%Y--%H-%M-%S')+ Token +token+ - Prichod(1)Odchod(0) +str(tlacitkoA)+ !!POZOR CHYBA!!+n)
        f.close()
        mylcd.lcd_display_string(ZAPSANO LOKALNE, 1)
        time.sleep(2)

    print ('bylo zadano ' + token + ' Tlacitko 1 ' + str(tlacitkoA))
    tlacitkoA = 0


GPIO.cleanup() # Clean up


a ve výsledku mu to hodí chybu:

Kód: Vybrat vše

pi@raspberrypi:~ $ sudo python3 buttons3.py
Traceback (most recent call last):
  File "buttons3.py", line 5, in <module>
    import requests
  File "/usr/lib/python3/dist-packages/requests/__init__.py", line 60, in <module>
    from .packages.urllib3.exceptions import DependencyWarning
ImportError: No module named 'requests.packages.urllib3'
pi@raspberrypi:~ $


Za vyřešení nějaký všimný klidně pošlu. Já vůbec nevím "která páčka"...
Diky moc!
0 x
Říkáš-li, že něco nejde, znamená to, že to neumíš.

Jirka Lazorčák

PS: Ta fotka je stará, už mám +15kilo..

mito
Příspěvky: 34
Registrován: 7 years ago

Příspěvekod mito » 6 years ago

Chýba ti modul v maline
0 x

Uživatelský avatar
sub_zero
Příspěvky: 1741
Registrován: 19 years ago
antispam: Ano
Bydliště: Olomouc
Kontaktovat uživatele:

Příspěvekod sub_zero » 6 years ago

mito píše:Chýba ti modul v maline


ten tam je:

Kód: Vybrat vše

pi@raspberrypi:~ $ pip install urllib3
Collecting urllib3
  Using cached https://files.pythonhosted.org/packages/62/00/ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/urllib3-1.24.1-py2.py3-none-any.whl
Installing collected packages: urllib3
Successfully installed urllib3-1.24.1
pi@raspberrypi:~ $


když jsem dle Googlu doplnil na začátek scriptu: import urllib3, výsledek po spuštění je:

Kód: Vybrat vše

pi@raspberrypi:~ $ sudo python3 buttons3.py
Traceback (most recent call last):
  File "buttons3.py", line 1, in <module>
    import urllib3
  File "/usr/lib/python3/dist-packages/urllib3/__init__.py", line 8, in <module>
    from .connectionpool import (
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 3, in <module>
    import logging
  File "/usr/lib/python3.5/logging/__init__.py", line 26, in <module>
    import sys, os, time, io, traceback, warnings, weakref, collections
  File "/usr/lib/python3.5/traceback.py", line 5, in <module>
    import linecache
  File "/usr/lib/python3.5/linecache.py", line 11, in <module>
    import tokenize
  File "/usr/lib/python3.5/tokenize.py", line 34, in <module>
    from token import *
  File "/home/pi/token.py", line 3, in <module>
    import threading
  File "/usr/lib/python3.5/threading.py", line 7, in <module>
    from traceback import format_exc as _format_exc
ImportError: cannot import name 'format_exc'
0 x
Říkáš-li, že něco nejde, znamená to, že to neumíš.

Jirka Lazorčák

PS: Ta fotka je stará, už mám +15kilo..

pavlos
Příspěvky: 104
Registrován: 14 years ago
Bydliště: Pardubice

Příspěvekod pavlos » 6 years ago

Přihlas se na facebooku do skupiny Programátoři, tam asi pochodíš spíše
0 x