26/03/2017, 18:16
(Questo messaggio è stato modificato l'ultima volta il: 26/03/2017, 23:07 da Zzed.)
Ciao a tutti, ho collegato un sensore DHT11 al mio RPi 3 e funziona tutto perfettamente.
Il problema sorge solo quando vado ad interrogare il sensore tramite il mio bot di telegram con il comando /temp, perchè i risultati li vedo solo sulla shell di comando e non so come recuperarli per farmeli inviare sul bot.
L'output della shell è: Temperatura = 22.0*C Umidita = 47.0%
Questo è il mio programma:
Chiaramente sono da sostituire id_a e TOKEN, ma chiedo aiuto per riuscire a recuperare l'output dalla shell.
Ho provato anche ad aggiungere:
import commands
import subprocess
batcmd = "dir"
stderr = subprocess.STDOUT
result = subprocess.check_output([batcmd], stderr=subprocess.STDOUT)
bot.sendMessage(chat_id, str(result))
ma l'unico risultato che mi compare sulla notifica di telegram, sono i nomi di alcuni programmi e di alcune cartelle....
Spero nell'aiuto di qualche buon programmatore!
Il problema sorge solo quando vado ad interrogare il sensore tramite il mio bot di telegram con il comando /temp, perchè i risultati li vedo solo sulla shell di comando e non so come recuperarli per farmeli inviare sul bot.
L'output della shell è: Temperatura = 22.0*C Umidita = 47.0%
Questo è il mio programma:
import time
import datetime
import telepot
import os
import sys
id_a = [1111111]
def handle(msg):
chat_id = msg['chat']['id']
command = msg['text']
sender = msg['from']['id']
print 'Got command: %s' % command
if sender in id_a:
if command == '/led':
os.system("sudo python /home/pi/led.py") #avvia un programma che accende un led
bot.sendMessage(chat_id, str('Led acceso')) #per 5 secondi
elif command == '/temp':
os.system("sudo python /home/pi/sensoreDHT.py 11 14")
bot.sendMessage(chat_id, str())
else:
bot.sendMessage(chat_id, str('Non sei autorizzato a darmi ordini!'))
bot = telepot.Bot('TOKEN')
bot.message_loop(handle)
print 'Sono pronto ...'
while 1:
time.sleep(10)
Chiaramente sono da sostituire id_a e TOKEN, ma chiedo aiuto per riuscire a recuperare l'output dalla shell.
Ho provato anche ad aggiungere:
import commands
import subprocess
batcmd = "dir"
stderr = subprocess.STDOUT
result = subprocess.check_output([batcmd], stderr=subprocess.STDOUT)
bot.sendMessage(chat_id, str(result))
ma l'unico risultato che mi compare sulla notifica di telegram, sono i nomi di alcuni programmi e di alcune cartelle....
Spero nell'aiuto di qualche buon programmatore!