Vai al contenuto
PLC Forum


Loop Infinito su raspberry con Python


Geco_Inf

Messaggi consigliati

Buongiorno a tutti, 
non sò se è la categoria giusta, ho un quesito, ho scritto questo programmino che deve vedere la presenza di energia elettrica, all'assenza di questa deve mandare una mail e avvisare anche al ritorno.

sembri funzionare bene, ma non mi da il ciclo infinito che while dovrebbe fornire, tanto che in compilazione al verificarsi di una delle due condizioni la esegue giustamente ma poi si chiude e non va avanti. chi mi può aiutare? 
Grazie mille.

 

incollo qui di seguito il programmino:

#!/bin/usr/python
import smtplib
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(26, GPIO.IN)

fromaddr = 'mittente@gmail.com'
toaddrs  = 'destinatario@gmail.com'

msg = "\r\n".join([
   "From: mittente@gmail.com",
   "To: destinatario@gmail.com",
   "Subject: Assenza rete elettrica",
   "",
   "E' incorso un assenza di energia elettrica"
   ])

msg2 = "\r\n".join([
   "From: mittente@gmail.com",
   "To: destinatario@gmail.com",
   "Subject: Ripristino rete elettrica",
   "",
   "energia elettrica si e' ripristinata"
   ])

username = 'mittente@gmail.com'
password = 'xxx'
server = smtplib.SMTP('smtp.gmail.com:587')

cont = 0
print("1",cont)

condi = True

while condi:
pippo = GPIO.input(26)

while (pippo == GPIO.LOW):
    #NO CORRENTE
    server.starttls()
    server.login(username,password)
    server.sendmail(fromaddr, toaddrs, msg) 
    #server.quit()
    #time.sleep(30)
    cont = cont + 1
    print("4",cont)
if (cont > 0):
 print("2")
 server.starttls()
 server.login(username,password)
 server.sendmail(fromaddr, toaddrs, msg2)
 #server.quit()
else:
 print("3")
 cont = cont + 1
 
#Geco_Inf

 

Link al commento
Condividi su altri siti


No Livio, non è distratto... non c'è, non so ancora usare molto i linguaggi, quindi non sapevo andassero chiusi, ora mi vedo come si fa la ringrazio tantissimo.

Quando le è comodo può dirmi come si fa, dopo averle risposto ho fatto una breve ricerca ma non riesco a capire, ho visto che in C si usano le {} ma in python non mettono nulla... O son io che non capisco?!

 

Grazie acora

Link al commento
Condividi su altri siti

Python è un linguaggio che non uso molto.

 

Il consiglio migliore che mi sento di darti è quello di inziare con programmini molto semplici, come far accendere e spegnere un LED. Magari cercarsi un tutorial su raspberry, tipo il libro di ElettronicaIn, e seguirlo dall'inizio alla fine senza saltare i vari passi.

Link al commento
Condividi su altri siti

  • 2 months later...

Livio ...python tu non lo usi proprio ahahahahah

Geco ....python si basa sulla indentazione del codice , non usa parentesi etc

Devi usare il TAB della tua tastiera per dare la profondità che avresti con l'annidamento delle parentesi graffe del C

 

Link al commento
Condividi su altri siti

Quote

Livio ...python tu non lo usi proprio ahahahahah

 

Walter perchè parli sempre di cose che non sai?

Qualche prova con python ogni tanto la faccio, così per sfizio, però è un liguaggio che non mi piace, proprio per la sua filosofia.

Link al commento
Condividi su altri siti

Livio , Python è potentissimo e ben fornito oltrechè gratuito e supportato da winzoz e tutte le distro di linux kernel.

Da linguaggio di scripting sta diventando sempre più un linguaggio sostitutivo e supportato anche in automazione industriale.

A me piace relativamente, un programmatore non può permettersi di dire se un linguaggio piace o no .Se in un ambiente lo devi usare lo usi e basta senza farla troppo lunga 

Poi diventerà  anche piacevole . 

Personalmente piuttosto che imparare il basic preferisco imparare il python a parità di linguaggi interpretati 

Ci sono librerie per python , tipo numpy o altre che te le sogni in basic .

Lo sai che ifach si sposa ....azz io sono ancora qua in iveco a torino e poi andrò a salerno , non riesco proprio andarci al matrimonio , un peccato ....

 

Link al commento
Condividi su altri siti

Quote

A me piace relativamente, un programmatore non può permettersi di dire se un linguaggio piace o no

 

Questa è solo una tua personale opinione.

 

Un programmatore può benissimo non gradire un linguaggio, un ambiente di sviluppo, una piattaforma, un sistema operativo.

Ci mancherebbe altro!

Tu stesso ti contraddici, dicendo che preferisci imparare python invece che basic.:)

 

Non non sapevo del nuovo progetto amtrimonuale di Claudio; l'ultima volta che l'ho sentito era forse appena dopo Pasqua.

 

Meglio Torino e Salerno che Theran.:lol:

Almeno mangi decentemente.;)

 

Sai che ci son momenti in cui ho nostalgia delle trasferte e della vita sugli impianti; però è solo un momento di idiozia, poi rinsavisco velocemente.:)

Link al commento
Condividi su altri siti

  • 3 weeks later...

se devi fare un lavoro sotto contratto non puoi permetterti di dire che un linguaggio ti piace o no.

La mia preferenza è giustificata da molte cose in termini di imparare un nuovo linguaggio come python che è molto piu fornito e potente del basic che ha 50 anni

Sono due cose differenti , non mi contraddico stai tranquillo

Link al commento
Condividi su altri siti

ritornando al problema di geco , gli IF di controllo sono fuori dal while , devi guardare l'indentazione del codice che sostituisce le parentesi altri linguaggi

Livio a parte gli scherzi , il python è potente ma faccio fatica anche io a digerirlo anche perche sto usando solo awl a tutta birra, ladder ,C/C++ su linux e C# sotto winzoz

I linguaggi per apprezzarli li devi usare continuamente e spremerli quanto possibile

Per fare il print di ciao mondo van bene tutti 

Link al commento
Condividi su altri siti

Walter, forse in giro per il mondo c'è ancora qualche macchina funzionante che ho fatto io e certo non per fare il print ciao mondo.:)

Tu non puoi fare lo schizzinoso ma io, fortunatamente, posso fare ed usare solo quello che mi piace. Magari fra una ventina d'anni ti troverai nella medesima condizione.;)

Ora basta con gli OT

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...