No se que ocurre, raspberry se queda pillada...

¿Algo falla o no sabes como funciona? Pide ayuda aquí!
Responder
duffmann2
Pi Newbie
Pi Newbie
Mensajes: 9
Registrado: 27 Jun 2017, 09:04
Agradecido: 0
Agradecimiento recibido: 0

Buenas gente...

Hace un tiempo que estoy con un proyecto de domotizar una caseta.... el caso es que funcionar funciona, pero durante un cierto tiempo y es ahi mi problema.

Yo ejecuto mi script, python final.py y a funcionar todo bien, pero me voy y no se cuando ( 1, 2 o 3 horas despues) vuelvo y la raspberry esta pillada, tengo que reiniciar y empezar de nuevo.

He cambiado la raspberry, he cambiado la fuente ( 5v 7A) he comentado parte del script para que solo ejecute lo mas básico por así decirlo.... y es aquí mis pregunta, puede ser en el nuevo raspbian tenga un modo suspensión? puede que tenga algo en el scrip que se este volviendo loca?? alguien entendido en python puede revisar el codigo a ver si estoy haciendo algo que se vuelva loco? aguna idea o algo que pueda probar?, hay alguien que le haya ocurrido lo mismo? Aqui os dejo el codigo para que lo veais. Un saludo y gracias
#librerias
import pygame
#import lcddriver
import time
from time import sleep
import datetime
import os
import glob
import sys
#import Adafruit_DHT
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
#variables
#display = lcddriver.lcd()
#sensor = Adafruit_DHT.DHT22
BeepPin = 12 # pin12
pin = 4
relepin = 32
Motor1A = 11
Motor1B = 13
Motor1C = 15
Motor1D = 19
GPIO.setup(Motor1A,GPIO.OUT)
GPIO.setup(Motor1B,GPIO.OUT)
GPIO.setup(Motor1C,GPIO.OUT)
GPIO.setup(Motor1D,GPIO.OUT)
GPIO.setup(37, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(40, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(BeepPin, GPIO.OUT) # Set BeepPin's mode is output
GPIO.setup(relepin, GPIO.OUT)
TIME = 10
HOME = "/home/pi/Desktop/lcd/"
TONE1 = "tone1.mp3"

def buzzer():
GPIO.output(BeepPin, GPIO.LOW)
time.sleep(0.1)
GPIO.output(BeepPin, GPIO.HIGH)
time.sleep(0.1)

def rele():
GPIO.output(relepin, GPIO.LOW)
time.sleep(2)
def rele1():
GPIO.output(relepin, GPIO.HIGH)
time.sleep(2)

def abrimotor():
GPIO.output(Motor1A,GPIO.HIGH)
GPIO.output(Motor1B,GPIO.LOW)
sleep(2)
buzzer()

def cerrarmotor():
GPIO.output(Motor1A,GPIO.LOW)
GPIO.output(Motor1B,GPIO.HIGH)
sleep(2)

def pararmotor():
GPIO.output(Motor1A,GPIO.LOW)
GPIO.output(Motor1B,GPIO.LOW)
sleep(2)

#def lcd1():
# display.lcd_display_string("Bienvenido", 1) # Write line of text to first line of display
# display.lcd_display_string("Sr. Stark!", 2)
# sleep(3)
# display.lcd_clear()

#def lcd2():
# display.lcd_display_string("Hasta pronto", 1) # Write line of text to fir$
# display.lcd_display_string("Armando Sistema", 2)
# sleep(3)
# display.lcd_clear()

def musica():
pygame.mixer.music.load(HOME+TONE1)
pygame.mixer.music.play()
sleep(TIME)
pygame.mixer.music.fadeout(15000)
pygame.mixer.stop()

#def sensortemp():
# humidity, temperature = Adafruit_DHT.read_retry(sensor,pin)
# display.lcd_display_string(("H: %d %%" % humidity + "T: %d C" % temperature), 1)
#display.lcd_display_string("Hola ", 2)

GPIO.setwarnings(False)
pygame.init()
rele()
try:
print("Writing to display")
while True:
# display.lcd_display_string(str(datetime.datetime.now().time()), 2)
# sensortemp()
if (GPIO.input(37) ==1) :
# display.lcd_clear()
rele1()
sleep(0.1)
# lcd1()
sleep(0.1)
musica()
sleep(1)
elif ( GPIO.input(40) ==1) :
# display.lcd_clear()
# lcd2()
sleep(1)
rele()
except KeyboardInterrupt: # If there is a KeyboardInterrupt (when you press ctr$
# display.lcd_clear()
GPIO.cleanup()
ImagenImagen
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

Sinceramente, decir que la "raspberry esta pillada" es poca información, por no decir ninguna.
¿Responde a ping? ¿Puedes acceder por SSH? ¿Qué está mostrando en pantalla? ¿Puedes ejecutar un dmesg?
duffmann2
Pi Newbie
Pi Newbie
Mensajes: 9
Registrado: 27 Jun 2017, 09:04
Agradecido: 0
Agradecimiento recibido: 0

NO hace ping, no accede por ssh, en monitor se muestra pues eso pillada no mueve raton, no teclado .... pilada total. Apagar encender y funcionar de nuevo. He cambiado de raspberry y hace lo mismo ergo tiene que ser de codigo?
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

Habría que revisar los logs para ver qué ha ocurrido exactamente.
Podría ser un kernel panic, problema del sistema de ficheros, exceso de tempreratura...
Puedes instalar RPi-Monitor para tener gráficas y saber en qué momento ha dejado de funcionar y en qué estado estaba cuando ocurrió (http://rpi-experiences.blogspot.com.es/ ... nitor.html)
Pero igualmente debes mirar en el syslog (o con journalctl) para ver qué ha ocurrido antes de colgarse.
duffmann2
Pi Newbie
Pi Newbie
Mensajes: 9
Registrado: 27 Jun 2017, 09:04
Agradecido: 0
Agradecimiento recibido: 0

Muchisimas gracias, lo hare a ver que dice que pasa! muchas gracias por el aporte.
Avatar de Usuario
alexperezl
Pi Newbie
Pi Newbie
Mensajes: 1
Registrado: 19 Sep 2017, 17:24
Agradecido: 0
Agradecimiento recibido: 0

Me pasa más o menos lo mismo en otras condiciones.

Tengo una raspi3 enganchada a Boinc, 4 cores al 100% perpetuos, con un ventilador externo, la temperatura está monitorizada, la red está monitorizada con un script que si detecta que está down la vuelve a levantar.

Sin embargo, hay veces que se queda "frita", deja de ejecutar el script, de ser accesible por ssh etc.. Tendré también que revisar el syslog a ver si aparece algo.
duffmann2
Pi Newbie
Pi Newbie
Mensajes: 9
Registrado: 27 Jun 2017, 09:04
Agradecido: 0
Agradecimiento recibido: 0

no se ... estoy totalmente sin una idea de que hacer...
duffmann2
Pi Newbie
Pi Newbie
Mensajes: 9
Registrado: 27 Jun 2017, 09:04
Agradecido: 0
Agradecimiento recibido: 0

nueva update

si que puedo acceder por ssh cuando se queda pillada, vuelvo a ejecutar el scrip y funciona .... ergo tiene que ser algo de codigo y seguro que sera por el while....
Responder