Arduino Yun eseguire script python

Ciao a tutti, vi scrivo perché non riesco a scovare l'errore nel codice prodotto. Vi descrivo cosa vorrei ottenere. Vorrei eseguire, tramite Arduino Yun, uno script scritto in Python. Vi riporto il codice lato Arduino

void loop() {
  
  temp1 = analogRead(TempPT); //leggo la temperatura dal sensore 1
  temp2 = analogRead(TempPP); //leggo la temperatura dal sensore 2
  temp1 = (5.0 * temp1 * 100.0)/1024.0 ; 
  temp2 = (5.0 * temp2 * 100.0)/1024.0 ; 
  mediaTemp = (temp1+temp2)/2;
  Serial.print("Temperatura Media : ");
  Serial.println(mediaTemp,2);  
  

  p.begin("python");  // Linino Command
  p.addParameter("/mnt/sda1/python/T2.py"); // Parametri comando
  p.run();

  if(mediaTemp>25)
  {
    digitalWrite(13,HIGH);
  }
  else
  {
    digitalWrite(13,LOW);
  }

  delay(10000);
}

Di seguito vi riporto il codice relativo a Python

out_file = open("/mnt/sda1/python/MkLog.txt","w")
out_file.write("This Text is going to out file\nLook at it and see\n")
out_file.close()

Lato Arduino quando esegue il codice fa tutto tranne eseguire lo script Python. Avete suggerimenti ? Mirko

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento: Regolamento - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Zirko:
Ciao a tutti,
vi scrivo perché non riesco a scovare l’errore nel codice prodotto.
Vi descrivo cosa vorrei ottenere. Vorrei eseguire, tramite Arduino Yun, uno script scritto in Python. Vi riporto il codice lato Arduino

void loop() {

temp1 = analogRead(TempPT); //leggo la temperatura dal sensore 1
 temp2 = analogRead(TempPP); //leggo la temperatura dal sensore 2
 temp1 = (5.0 * temp1 * 100.0)/1024.0 ;
 temp2 = (5.0 * temp2 * 100.0)/1024.0 ;
 mediaTemp = (temp1+temp2)/2;
 Serial.print("Temperatura Media : ");
 Serial.println(mediaTemp,2);

p.begin(“python”);  // Linino Command
 p.addParameter("/mnt/sda1/python/T2.py"); // Parametri comando
 p.run();

if(mediaTemp>25)
 {
   digitalWrite(13,HIGH);
 }
 else
 {
   digitalWrite(13,LOW);
 }

delay(10000);
}





Di seguito vi riporto il codice relativo a Python 



out_file = open("/mnt/sda1/python/MkLog.txt",“w”)
out_file.write(“This Text is going to out file\nLook at it and see\n”)
out_file.close()





Lato Arduino quando esegue il codice fa tutto tranne eseguire lo script Python.
Avete suggerimenti ?
Mirko

prova così, dichiari all’inizio del codice :

#include <Bridge.h>
Process Phyton;

poi nel punto del loop in cui vuoi eseguire quello script fai:

Phyton.runShellCommand("/mnt/sda1/python/T2.py");

Ciao

Phyton.runShellCommand("/mnt/sda1/python/T2.py");

.. solo se in testa al file .py ci mette

#!/usr/bin/env python

Ciao. ho provato entrambi i suggerimenti ma non ho avuto nessun effetto. Mi chiedevo è possibile che ci sia un qualche problema con i permessi sul file di testo che lo script python tenta di scrivere ? Mirko

Mi chiedevo è possibile che ci sia un qualche problema con i permessi sul file di testo che lo script python tenta di scrivere ?

o che forse ci siano invece problemi sui permessi di esecuzione del file python stesso? Lancia questo comando:

chmod u+x /mnt/sda1/python/T2.py

e poi riporva ad eseguirlo!

Zirko: Ciao. ho provato entrambi i suggerimenti ma non ho avuto nessun effetto. Mi chiedevo è possibile che ci sia un qualche problema con i permessi sul file di testo che lo script python tenta di scrivere ? Mirko

Ciao a tutti, smanettando un po alla fine ci sono riuscito. Funziona. Avevo modificato lo script secondo i vostri suggerimenti ma non girava perché mancava

Bridge.begin();

Grazie per i consigli !!! Mirko

Ciao, effettivamete non avevi postato il setup..