Problema con Sensore temperatura\umidita' MTH02

Ciao a tutti, sono nuovo di Arduino, sono diplomato in elettronica ma è passato un bel po di tempo e sono arrugginito. Probabilmente per voi la mai domanda è banale ma non ne esco. Spero possiate aiutarmi.

Ho appena comprato Arduino (per complicarmi la vita Arduino Yun), e un sensore temperatura per monitorizzare l'ambiente MTH02. In internet prima dell' acquisto riportava "può sostituire la serie sht10" e visto il prezzo, ho preso MTH02. Dopo aver trovato con facilita' una libreria per SHT1x (SHT1x-master by Jonathan Oxer), ho collegato:

MTH02 -> Arduino

Vdd -> 5v Vss -> GND Data -> 11 PIN SNSB -> 10 PIN

ma non funziona.

vi riporto il link del Datasheet: http://www.elecrow.com/download/MYH02.pdf

Spero possiate aiutarmi.

Ps. ho cercato la libreria di MTH02 ma non si trova.

Al momento sto cercando di modificare la libreria di SHT1x ma non ne esco perché non sono sicuro nemmeno del collegamento hardwere.

STH1X.H

/**
 * SHT1x Library
 *
 * Copyright 2009 Jonathan Oxer <jon@oxer.com.au> / <www.practicalarduino.com>
 * Based on previous work by:
 *    Maurice Ribble: <www.glacialwanderer.com/hobbyrobotics/?p=5>
 *    Wayne ?: <ragingreality.blogspot.com/2008/01/ardunio-and-sht15.html>
 *
 * Manages communication with SHT1x series (SHT10, SHT11, SHT15)
 * temperature / humidity sensors from Sensirion (www.sensirion.com).
 */
#ifndef SHT1x_h
#define SHT1x_h

#if (ARDUINO >= 100)
#include <Arduino.h>
#else
#include <WProgram.h>
#endif

class SHT1x
{
  public:
    SHT1x(int dataPin, int clockPin);
    float readHumidity();
    float readTemperatureC();
    float readTemperatureF();
  private:
    int _dataPin;
    int _clockPin;
    int _numBits;
    float readTemperatureRaw();
    int shiftIn(int _dataPin, int _clockPin, int _numBits);
    void sendCommandSHT(int _command, int _dataPin, int _clockPin);
    void waitForResultSHT(int _dataPin);
    int getData16SHT(int _dataPin, int _clockPin);
    void skipCrcSHT(int _dataPin, int _clockPin);
};

#endif

STH1X.CPP

/**
 * SHT1x Library
 *
 * Copyright 2009 Jonathan Oxer <jon@oxer.com.au> / <www.practicalarduino.com>
 * Based on previous work by:
 *    Maurice Ribble: <www.glacialwanderer.com/hobbyrobotics/?p=5>
 *    Wayne ?: <ragingreality.blogspot.com/2008/01/ardunio-and-sht15.html>
 *
 * Manages communication with SHT1x series (SHT10, SHT11, SHT15)
 * temperature / humidity sensors from Sensirion (www.sensirion.com).
 */
#if (ARDUINO >= 100)
#include <Arduino.h>
#else
#include <WProgram.h>
#endif

#include "SHT1x.h"

SHT1x::SHT1x(int dataPin, int clockPin)
{
  _dataPin = dataPin;
  _clockPin = clockPin;
}


/* ================  Public methods ================ */

/**
 * Reads the current temperature in degrees Celsius
 */
float SHT1x::readTemperatureC()
{
  int _val;                // Raw value returned from sensor
  float _temperature;      // Temperature derived from raw value

  // Conversion coefficients from SHT15 datasheet
  const float D1 = -40.0;  // for 14 Bit @ 5V
  const float D2 =   0.01; // for 14 Bit DEGC

  // Fetch raw value
  _val = readTemperatureRaw();

  // Convert raw value to degrees Celsius
  _temperature = (_val * D2) + D1;

  return (_temperature);
}

/**
 * Reads the current temperature in degrees Fahrenheit
 */
float SHT1x::readTemperatureF()
{
  int _val;                 // Raw value returned from sensor
  float _temperature;       // Temperature derived from raw value

  // Conversion coefficients from SHT15 datasheet
  const float D1 = -40.0;   // for 14 Bit @ 5V
  const float D2 =   0.018; // for 14 Bit DEGF

  // Fetch raw value
  _val = readTemperatureRaw();

  // Convert raw value to degrees Fahrenheit
  _temperature = (_val * D2) + D1;

  return (_temperature);
}

/**
 * Reads current temperature-corrected relative humidity
 */
float SHT1x::readHumidity()
{
  int _val;                    // Raw humidity value returned from sensor
  float _linearHumidity;       // Humidity with linear correction applied
  float _correctedHumidity;    // Temperature-corrected humidity
  float _temperature;          // Raw temperature value

  // Conversion coefficients from SHT15 datasheet
  const float C1 = -4.0;       // for 12 Bit
  const float C2 =  0.0405;    // for 12 Bit
  const float C3 = -0.0000028; // for 12 Bit
  const float T1 =  0.01;      // for 14 Bit @ 5V
  const float T2 =  0.00008;   // for 14 Bit @ 5V

  // Command to send to the SHT1x to request humidity
  int _gHumidCmd = 0b00000101;

  // Fetch the value from the sensor
  sendCommandSHT(_gHumidCmd, _dataPin, _clockPin);
  waitForResultSHT(_dataPin);
  _val = getData16SHT(_dataPin, _clockPin);
  skipCrcSHT(_dataPin, _clockPin);

  // Apply linear conversion to raw value
  _linearHumidity = C1 + C2 * _val + C3 * _val * _val;

  // Get current temperature for humidity correction
  _temperature = readTemperatureC();

  // Correct humidity value for current temperature
  _correctedHumidity = (_temperature - 25.0 ) * (T1 + T2 * _val) + _linearHumidity;

  return (_correctedHumidity);
}


/* ================  Private methods ================ */

/**
 * Reads the current raw temperature value
 */
float SHT1x::readTemperatureRaw()
{
  int _val;

  // Command to send to the SHT1x to request Temperature
  int _gTempCmd  = 0b00000011;

  sendCommandSHT(_gTempCmd, _dataPin, _clockPin);
  waitForResultSHT(_dataPin);
  _val = getData16SHT(_dataPin, _clockPin);
  skipCrcSHT(_dataPin, _clockPin);

  return (_val);
}

/**
 */
int SHT1x::shiftIn(int _dataPin, int _clockPin, int _numBits)
{
  int ret = 0;
  int i;

  for (i=0; i<_numBits; ++i)
  {
     digitalWrite(_clockPin, HIGH);
     delay(10);  // I don't know why I need this, but without it I don't get my 8 lsb of temp
     ret = ret*2 + digitalRead(_dataPin);
     digitalWrite(_clockPin, LOW);
  }

  return(ret);
}

/**
 */
void SHT1x::sendCommandSHT(int _command, int _dataPin, int _clockPin)
{
  int ack;

  // Transmission Start
  pinMode(_dataPin, OUTPUT);
  pinMode(_clockPin, OUTPUT);
  digitalWrite(_dataPin, HIGH);
  digitalWrite(_clockPin, HIGH);
  digitalWrite(_dataPin, LOW);
  digitalWrite(_clockPin, LOW);
  digitalWrite(_clockPin, HIGH);
  digitalWrite(_dataPin, HIGH);
  digitalWrite(_clockPin, LOW);

  // The command (3 msb are address and must be 000, and last 5 bits are command)
  shiftOut(_dataPin, _clockPin, MSBFIRST, _command);

  // Verify we get the correct ack
  digitalWrite(_clockPin, HIGH);
  pinMode(_dataPin, INPUT);
  ack = digitalRead(_dataPin);
  if (ack != LOW) {
    //Serial.println("Ack Error 0");
  }
  digitalWrite(_clockPin, LOW);
  ack = digitalRead(_dataPin);
  if (ack != HIGH) {
    //Serial.println("Ack Error 1");
  }
}

/**
 */
void SHT1x::waitForResultSHT(int _dataPin)
{
  int i;
  int ack;

  pinMode(_dataPin, INPUT);

  for(i= 0; i < 100; ++i)
  {
    delay(10);
    ack = digitalRead(_dataPin);

    if (ack == LOW) {
      break;
    }
  }

  if (ack == HIGH) {
    //Serial.println("Ack Error 2"); // Can't do serial stuff here, need another way of reporting errors
  }
}

/**
 */
int SHT1x::getData16SHT(int _dataPin, int _clockPin)
{
  int val;

  // Get the most significant bits
  pinMode(_dataPin, INPUT);
  pinMode(_clockPin, OUTPUT);
  val = shiftIn(_dataPin, _clockPin, 8);
  val *= 256;

  // Send the required ack
  pinMode(_dataPin, OUTPUT);
  digitalWrite(_dataPin, HIGH);
  digitalWrite(_dataPin, LOW);
  digitalWrite(_clockPin, HIGH);
  digitalWrite(_clockPin, LOW);

  // Get the least significant bits
  pinMode(_dataPin, INPUT);
  val |= shiftIn(_dataPin, _clockPin, 8);

  return val;
}

/**
 */
void SHT1x::skipCrcSHT(int _dataPin, int _clockPin)
{
  // Skip acknowledge to end trans (no CRC)
  pinMode(_dataPin, OUTPUT);
  pinMode(_clockPin, OUTPUT);

  digitalWrite(_dataPin, HIGH);
  digitalWrite(_clockPin, HIGH);
  digitalWrite(_clockPin, LOW);
}

ESEMPIO PROGRAMMA

/**
 * ReadSHT1xValues
 *
 * Read temperature and humidity values from an SHT1x-series (SHT10,
 * SHT11, SHT15) sensor.
 *
 * Copyright 2009 Jonathan Oxer <jon@oxer.com.au>
 * www.practicalarduino.com
 */

#include <SHT1x.h>

// Specify data and clock connections and instantiate SHT1x object
#define dataPin  10
#define clockPin 11
SHT1x sht1x(dataPin, clockPin);

void setup()
{
   Serial.begin(38400); // Open serial connection to report values to host
   Serial.println("Starting up");
}

void loop()
{
  float temp_c;
  float temp_f;
  float humidity;

  // Read values from the sensor
  temp_c = sht1x.readTemperatureC();
  temp_f = sht1x.readTemperatureF();
  humidity = sht1x.readHumidity();

  // Print the values to the serial port
  Serial.print("Temperature: ");
  Serial.print(temp_c, DEC);
  Serial.print("C / ");
  Serial.print(temp_f, DEC);
  Serial.print("F. Humidity: ");
  Serial.print(humidity);
  Serial.println("%");

  delay(2000);
}

Nota del moderatore: Ricorda di utilizzare i tag CODE e non i tag QUOTE - gpb01

Essendo tu nuovo del forum Ti invitiamo a presentarti QUI
(dicci quali conoscenze hai di elettronica e di programmazione) e a leggere il regolamento QUI
se non lo hai già fatto.

Inoltre, come riportato al punto 7 del regolamento di questo forum, dovresti racchiudere il codice negli appositi tag (vedi simbolo “</>” in alto a sinistra nella finestra “post replay”).

Comunque benvenuto sul forum.

Attilio

Premesso che non conosco Arduino Yun nè il sensore che stai usando, oltre alla parte software, per completezza di informazione, dovresti postare anche uno schema/foto dei collegamenti che hai fatto tra il sensore e arduino.

Ciao

Attilio

Foto: |500x447 |400x500 |500x263 |500x277

ps. ho provato a inserirli come allegati ma non sono stati caricati. Ho messi come collegamento

Cippa149: Foto:

Non c'è nessuna foto

Mi sapete dire a cosa serve il pin PON di questo sensore?

Cippa149: Mi sapete dire a cosa serve il pin PON di questo sensore?

Come ti ho già detto prima non conosco e non ho mai usato quel sensore, ho usato in passato i DHT-11 e ora uso i DHT-22 che sono più precisi dei DHT-11.

Comunque se ti può essere utile QUI riporta i collegamenti dei 6 pin del tuo modulo e sembra che il pin 3 "PON" non sia collegato così come non sono collegati il 5 "SNSA" e il 6 "SNSB".

Ciao

Attilio

Ma essendo un sensore digitale non servono 2 pin : 1 clock e 1 data?

Cippa149: Ma essendo un sensore digitale non servono 2 pin : 1 clock e 1 data?

No, ne usa solo 3: V+, V- e Data.

Anche il DHT-22 è digitale e ne usa solo 3.

Attilio

Grazie, sta sera provo a guardarmi la libreria dth-22.

Per non perderci altro tempo ho deciso di acquistare il sensore SHT11. Se mai dovessi mai riuscire a trovare del tempo da dedicarci aggiorno il forum.

Grazie a tutti

Ambedue i sensori non sono per nulla precisi.

Il primo è un one wire, similmente all'SHT11, ma ha un pin Chip Select e protocollo diverso, quindi per usarlo dovresti scrivere il driver.

Dici di non voler perdere tempo, ma a parte che il tempo per imparare non è mai perso (la cultura è utile), casomai usare sensori pari a rifiuti biologici dell'apparato digerente, quello si che è tempo perso, perché è certo che non otterrai risultati. L'SHT11 non restituisce neanche valori decimali di temperatura...

Il 22, invece, è un sensore abbastanza decente. La differenza di prezzo, in Cina, è di qualche decina di centesimi di Euro.

Grazie per il consiglio, preciso che ho necessità di installare questo sensore quanto prima per problemi tecnici, poi sicuramente approfondisco con più calma la cosa per migliorare il mio progetto. Non sono uno che molla alla prima difficoltà e voglio far andare anche quei sensori maledetti MTH02. Non escludo nemmeno che procedo con l'acquisto dei sensori DHT22 di cui elogi.

N.b. Spero di ricordarmi di questo post per aggiornarlo appena riesco a far funzionare MTH02.

Nel secondo link di google cercando MTH02 c’è questo.

/****************************************Copyright (c)****************************************************
**                            Jiangsu Acxion Electrical Co., LTD
**
**                                 http://www.acxion.cn
**
**--------------File Info---------------------------------------------------------------------------------
** File name:           MTH02.C
** Last modified Date:  2011-04-02
** Last Version:        V1.0
** Descriptions:        MTH02´«¸ÐÆ÷¶ÁÈ¡
**
**--------------------------------------------------------------------------------------------------------
** Created by:         
** Created date:       
** Version:             
** Descriptions:        
**
**--------------------------------------------------------------------------------------------------------
** Modified by:         
** Modified date:       
** Version:             
** Descriptions:        
**
**--------------------------------------------------------------------------------------------------------
** Modified by:        
** Modified date:      
** Version:            
** Descriptions:       
**
** Rechecked by:
*********************************************************************************************************/
#include<reg51.h>
sbit P1_1=P1^1;//´«¸ÐÆ÷IO
uchar  FLAG;
uchar  U8count,U8temp;
uchar  U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
uchar  U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
uchar  U8comdata;
uint tmp1=0;
uint rh1=0;
bit TFLAG=0;
/******************************************************************************
** Function name:       delay
** Descriptions:        ¼òµ¥ÑÓʱ
** input parameters:   ÎÞ
** output parameters:   ÎÞ
** Returned value:      
******************************************************************************/
void delay(uint t)
{
	uchar ms;
	for(t;t>0;t--)
		for(ms=100;ms>0;ms--) _nop_();				                                                                                                                                                                                                                                   
}
/******************************************************************************
** Function name:       Delay_10us
** Descriptions:        10usµÄÑÓʱ	£¬¸ù¾Ýµ¥Æ¬»úµÄʱÖÓƵÂʵ÷Õû	  STC11FXXϵÁÐ
** input parameters:   ÎÞ
** output parameters:   ÎÞ
** Returned value:      
******************************************************************************/
void  Delay_10us(void)
{
  uchar i;
  for(i=20;i>0;i--)
	{
		_nop_();  
	}
}
/******************************************************************************
** Function name:       ReadOneByte
** Descriptions:        ¶ÁÈ¡1×Ö½ÚÊý¾Ý
** input parameters:   ÎÞ
** output parameters:   ÎÞ
** Returned value:      
******************************************************************************/
void ReadOneByte(void)
{
	uchar i;
    for(i=0;i<8;i++)	   
	{
		FLAG=2;
	   	while((!P1_1)&&FLAG++);
		Delay_10us();
		Delay_10us();
		Delay_10us();
	  	U8temp=0;
	    if(P1_1)U8temp=1;
		FLAG=2;
		while((P1_1)&&FLAG++);	   		  
	   	if(FLAG==1)break;	//³¬Ê±ÔòÌø³öforÑ­»·	   	 
		U8comdata<<=1;
	   	U8comdata|=U8temp;       
	 }
}  
/******************************************************************************
** Function name:       ReadSensor
** Descriptions:        ¶ÁÈ¡´«¸ÐÆ÷µÄÎÂʪ¶È
** input parameters:   ÎÞ
** output parameters:   tmp1£¬Î¶ÈÖµ£¬À©´ó10±¶Êä³ö£¬rh1,ʪ¶ÈÖµ	TFLAG=0£¬Î¶ÈΪÕý£¬=1£¬Î¶ÈΪ¸º
** Returned value:      
******************************************************************************/
void ReadSensor(void)
{
       P1_1=0; //À­µÍ×ÜÏß
	   delay(4);//ÑÓʱ
	   P1_1=1;//À­¸ß×ÜÏß
	   Delay_10us(); //µÈ´ý´«¸ÐÆ÷ÏìÓ¦
	   Delay_10us();
	   Delay_10us();
	   Delay_10us();
	   P1_1=1;	     
	   FLAG=2; 
	   while((!P1_1)&&FLAG++);//µÈ´ý¸ßµçƽµ½À´
	   FLAG=2;
	   ReadOneByte();	//¶ÁÈ¡5¸öByte
	   U8RH_data_H_temp=U8comdata;
	   ReadOneByte();
	   U8RH_data_L_temp=U8comdata;
	   ReadOneByte();
	   U8T_data_H_temp=U8comdata;
	   ReadOneByte();
	   U8T_data_L_temp=U8comdata;
	   ReadOneByte();
	   U8checkdata_temp=U8comdata;
	   U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);//¼ÆËã¶Á³öÊý¾ÝµÄУÑéºÍ
	   if(U8temp==U8checkdata_temp)//Èç¹ûУÑéÕýÈ·
	   {
	   	 U8RH_data_H=U8RH_data_H_temp;
	   	 U8RH_data_L=U8RH_data_L_temp;
	   	 U8T_data_H=U8T_data_H_temp;
	   	 U8T_data_L=U8T_data_L_temp;
	   	 U8checkdata=U8checkdata_temp;
		 tmp1=U8T_data_H<<8|U8T_data_L;	
		 rh1=U8RH_data_H<<8|U8RH_data_L;
		 if(tmp1>=400)//ζÈΪÕý
		 {
		 	tmp1-=400;
			TFLAG=0;	
		 }
		 else //ζÈΪ¸º
		 {
		 	tmp1=400-tmp1;//ת»»ÎªÕýζÈ
			TFLAG=1; //¸ºÎ¶ȷûºÅλÖÃλ
		 } 
	   }	   	   	    
}

Non ho idea se compili e cosa sia il file reg51.h

PaoloP: Non ho idea se compili e cosa sia il file reg51.h

Penso i registri MCU 8051 della serie" for 51 series microcontroller" che i cinesi su ebay citano spesso http://www.atmel.com/products/microcontrollers/8051Architecture/default.aspx

Ho Arduinizzato il codice.

#define DATA 2
#define PON 3

unsigned char FLAG;
int tmp1;
int rh1;


byte ReadOneByte(void)
{
  unsigned char  U8comdata = 0;
  unsigned char U8temp;
  for (byte i = 0; i < 8; i++)
  {
    FLAG = 2;
    while ((!digitalRead(DATA)) && FLAG++);
    delayMicroseconds(10);
    delayMicroseconds(10);
    delayMicroseconds(10);
    U8temp = 0;
    if (digitalRead(DATA)) U8temp = 1;
    FLAG = 2;
    while ((digitalRead(DATA)) && FLAG++);
    if (FLAG == 1)
      break;
    U8comdata <<= 1;
    U8comdata |= U8temp;
  }
  return U8comdata;
}


void ReadSensor(void)
{
  unsigned char  U8T_data_H, U8T_data_L, U8RH_data_H, U8RH_data_L, U8checkdata;
  unsigned char  U8T_data_H_temp, U8T_data_L_temp, U8RH_data_H_temp, U8RH_data_L_temp, U8checkdata_temp;

  digitalWrite(PON, LOW);
  delayMicroseconds(200);
  digitalWrite(PON, HIGH);
  delayMicroseconds(10);
  delayMicroseconds(10);
  delayMicroseconds(10);
  delayMicroseconds(10);
  digitalWrite(PON, LOW);
  FLAG = 2;
  while ((!digitalRead(DATA)) && FLAG++);
  FLAG = 2;

  U8RH_data_H_temp =  ReadOneByte();
  U8RH_data_L_temp =  ReadOneByte();
  U8T_data_H_temp =  ReadOneByte();
  U8T_data_L_temp =  ReadOneByte();
  U8checkdata_temp =  ReadOneByte();

  unsigned char U8temp = (U8T_data_H_temp + U8T_data_L_temp + U8RH_data_H_temp + U8RH_data_L_temp);
  if (U8temp == U8checkdata_temp)
  {
    U8RH_data_H = U8RH_data_H_temp;
    U8RH_data_L = U8RH_data_L_temp;
    U8T_data_H = U8T_data_H_temp;
    U8T_data_L = U8T_data_L_temp;
    U8checkdata = U8checkdata_temp;
    tmp1 = U8T_data_H << 8 | U8T_data_L;
    rh1 = U8RH_data_H << 8 | U8RH_data_L;
    if (tmp1 >= 400)
    {
      tmp1 -= 400;
    }
    else
    {
      tmp1 = 400 - tmp1;
    }
  }
  else
  {
    tmp1 = -1;
    rh1 = -1;
  }
}


void setup() {
  delay(1000);
  Serial.begin(9600);
  pinMode(DATA, INPUT);
  pinMode(PON, OUTPUT);
}


void loop() {
  ReadSensor();
  Serial.println("Tmp: " + tmp1);
  Serial.println("Hum: " + rh1);
  delay(5000);
}

Andrebbe provato col sensore, anche se dubito funzioni al primo colpo.

Ora lo provo

in base alla descrizione dei pin da datasheet ho collegato

sensore → arduino

pin_1 → 5v
pin_2 → Gnn
pin_3 → 3
pin_4 → 2

ho caricato il programma in arduino e il seriale restituisce

/Ÿ=üþoµ¦\´ÏÒs|ÌÓÇïŸN¼¥Íÿ�ÜxÚ÷
öÏ¿}Ï¿]±ûë×Ê:¯·(]ý[v_£òµîwXf‹÷Õ×øµ�òÖ»�Î?~-öwÝÿsôÏd÷ÿcëÆ×ÿ÷;·ÿ¡ßÝïÿ=–â‰<ÿ~îþ.ø¯ÿ2·ÄMé/Ÿ=üþoµ¦\´ÏÒs|ÌÓÇïŸN¼¥Íÿ�ÜxÚ÷
öÏ¿}Ï¿]±ûë×Ê:¯·(]ý[v_£òµîwXf‹÷Õ×øµ�òÖ»�Î?~-öwÝÿsôÏd÷ÿcëÆ×ÿ÷;·ÿ¡ßÝïÿ=–â‰<ÿ~îþ.ø¯ÿ2·ÄMéûž\§¥•¿¼žÅí:ïýûx«ãÖï&ðòµÓgµñ¯ÿËšOº”Ÿÿö<ëÍüqW3ý÷wú÷�þ—Ø÷÷¼9ûõÏ�«»îË¿=+ýò×ÿç¼¾k˧ïÛ¤ßuMKœdv�Ÿ­Å|íûöKÒµ>nõû{Çlÿ—©úœ9¼ÿ*fÛ_Í;îw
­¿wëÿxëï<ïÓ·>Øk†/-çäeYÑ^;í§_ûwïûùs›­ÝsÞ¹§zOëó.s¹~ûÛû;èeý:{›×²}ûÙ[­Æ׺-ïeëùú}ÙeùÒû˜å«?›^³þÏ“(,©Ÿý®ýaÌYz).Öö6ÿËÓfóÿÞ4­³úo´çú­¿ý*ù÷û_Ö�~ÿýßß¾SÏý1ý½ùËüŒç÷ïýáñ×2Þ¾¾�‚W%í¸®šâ;züæ_‡ößû•ª†ùõ:×oÿy–´Ü?kûý²ûKô¼Êë}pämvùb²ÿÞîï/û½û}yé•óî»Ñ©<+¹:fŸÿ'…«§mË»ã»ü?Î:ë½wÿ
Hum: 
/Ÿ=üþoµ¦\´ÏÒs|ÌÓÇïŸN¼¥Íÿ�ÜxÚ÷
öÏ¿}Ï¿]±ûë×Ê:¯·(]ý[v_£òµîwXf‹÷Õ×øµ�òÖ»�Î?~-öwÝÿsôÏd÷ÿcëÆ×ÿ÷;·ÿ¡ßÝïÿ=–â‰<ÿ~îþ.ø¯ÿ2·ÄMéûž\§¥•¿¼žÅí:ïýûx«ãÖï&ðòµÓgµñ¯ÿËšOº”Ÿÿö<ëÍüqW3ý÷wú÷�þ—Ø÷÷¼9ûõÏ�«»îË¿=+ýò×ÿç¼¾k˧ïÛ¤ßuMKœdv�Ÿ­Å|íûöKÒµ>nõû{Çlÿ—©úœ9¼ÿ*fÛ_Í;îw
­¿wëÿxëï<ïÓ·>Øk†/-çäeYÑ^;í§_ûwïûùs›­ÝsÞ¹§zOëó.s¹~ûÛû;èeý:{›×²}ûÙ[­Æ׺-ïeëùú}ÙeùÒû˜å«?›^³þÏ“(,©Ÿý®ýaÌYz).Öö6ÿËÓfóÿÞ4­³úo´çú­¿ý*ù÷û_Ö�~ÿýßß¾SÏý1ý½ùËüŒç÷ïýáñ×2Þ¾¾�‚W%í¸®šâ;züæ_‡ößû•ª†ùõ:×oÿy–´Ü?kûý²ûKô¼Êë}pämvùb²ÿÞîï/û½û}yé•óî»Ñ©<+¹:fŸÿ'…«§mË»ã»ü?Î:ë½wÿ
Hum: 
/Ÿ=üþoµ¦\´ÏÒs|ÌÓÇïŸN¼¥Íÿ�ÜxÚ÷
öÏ¿}Ï¿]±ûë×Ê:¯·(]ý[v_£òµîwXf‹÷Õ×øµ�òÖ»�Î?~-öwÝÿsôÏd÷ÿcëÆ×ÿ÷;·ÿ¡ßÝïÿ=–â‰<ÿ~îþ.ø¯ÿ2·ÄMéûž\§¥•¿¼žÅí:ïýûx«ãÖï&ðòµÓgµñ¯ÿËšOº”Ÿÿö<ëÍüqW3ý÷wú÷�þ—Ø÷÷¼9ûõÏ�«»îË¿=+ýò×ÿç¼¾k˧ïÛ¤ßuMKœdv�Ÿ­Å|íûöKÒµ>nõû{Çlÿ—©úœ9¼ÿ*fÛ_Í;îw
­¿wëÿxëï<ïÓ·>Øk†/-çäeYÑ^;í§_ûwïûùs›­ÝsÞ¹§zOëó.s¹~ûÛû;èeý:{›×²}ûÙ[­Æ׺-ïeëùú}ÙeùÒû˜å«?›^³þÏ“(,©Ÿý®ýaÌYz).Öö6ÿËÓfóÿÞ4­³úo´çú­¿ý*ù÷û_Ö�~ÿýßß¾SÏý1ý½ùËüŒç÷ïýáñ×2Þ¾¾�‚W%í¸®šâ;züæ_‡ößû•ª†ùõ:×oÿy–´Ü?kûý²ûKô¼Êë}pämvùb²ÿÞîï/û½û}yé•óî»Ñ©<+¹:fŸÿ'…«§mË»ã»ü?Î:ë½wÿ
Hum: 
/Ÿ=üþoµ¦\´ÏÒs|ÌÓÇïŸN¼¥Íÿ�ÜxÚ÷
öÏ¿}Ï¿]±ûë×Ê:¯·(]ý[v_£òµîwXf‹÷Õ×øµ�òÖ»�Î?~-öwÝÿsôÏd÷ÿcëÆ×ÿ÷;·ÿ¡ßÝïÿ=–â‰<ÿ~îþ.ø¯ÿ2·ÄMéûž\§¥•¿¼žÅí:ïýûx«ãÖï&ðòµÓgµñ¯ÿËšOº”Ÿÿö<ëÍüqW3ý÷wú÷�þ—Ø÷÷¼9ûõÏ�«»îË¿=+ýò×ÿç¼¾k˧ïÛ¤ßuMKœdv�Ÿ­Å|íûöKÒµ>nõû{Çlÿ—©úœ9¼ÿ*fÛ_Í;îw
­¿wëÿxëï<ïÓ·>Øk†/-çäeYÑ^;í§_ûwïûùs›­ÝsÞ¹§zOëó.s¹~ûÛû;èeý:{›×²}ûÙ[­Æ׺-ïeëùú}ÙeùÒû˜å«?›^³þÏ“(,©Ÿý®ýaÌYz).Öö6ÿËÓfóÿÞ4­³úo´çú­¿ý*ù÷û_Ö�~ÿýßß¾SÏý1ý½ùËüŒç÷ïýáñ×2Þ¾¾�‚W%í¸®šâ;züæ_‡ößû•ª†ùõ:×oÿy–´Ü?kûý²ûKô¼Êë}pämvùb²ÿÞîï/û½û}yé•óî»Ñ©<+¹:fŸÿ'…«§mË»ã»ü?Î:ë½wÿ
Hum: 
/Ÿ=üþoµ¦\´ÏÒs|ÌÓÇïŸN¼¥Íÿ�ÜxÚ÷
öÏ¿}Ï¿]±ûë×Ê:¯·(]ý[v_£òµîwXf‹÷Õ×øµ�òÖ»�Î?~-öwÝÿsôÏd÷ÿcëÆ×ÿ÷;·ÿ¡ßÝïÿ=–â‰<ÿ~îþ.ø¯ÿ2·ÄMéûž\§¥•¿¼žÅí:ïýûx«ãÖï&ðòµÓgµñ¯ÿËšOº”Ÿÿö<ëÍüqW3ý÷wú÷�þ—Ø÷÷¼9ûõÏ�«»îË¿=+ýò×ÿç¼¾k˧ïÛ¤ßuMKœdv�Ÿ­Å|íûöKÒµ>nõû{Çlÿ—©úœ9¼ÿ*fÛ_Í;îw
­¿wëÿxëï<ïÓ·>Øk†/-çäeYÑ^;í§_ûwïûùs›­ÝsÞ¹§zOëó.s¹~ûÛû;èeý:{›×²}ûÙ[­Æ׺-ïeëùú}ÙeùÒû˜å«?›^³þÏ“(,©Ÿý®ýaÌYz).Öö6ÿËÓfóÿÞ4­³úo´çú­¿ý*ù÷û_Ö�~ÿýßß¾SÏý1ý½ùËüŒç÷ïýáñ×2Þ¾¾�‚W%í¸®šâ;züæ_‡ößû•ª†ùõ:×oÿy–´Ü?kûý²ûKô¼Êë}pämvùb²ÿÞîï/û½û}yé•óî»Ñ©<+¹:fŸÿ'…«§mË»ã»ü?Î:ë½wÿ
Hum: 
/Ÿ=üþoµ¦\´ÏÒs|ÌÓÇïŸN¼¥Íÿ�ÜxÚ÷
öÏ¿}Ï¿]±ûë×Ê:¯·(]ý[v_£òµîwXf‹÷Õ×øµ�òÖ»�Î?~-öwÝÿsôÏd÷ÿcëÆ×ÿ÷;·ÿ¡ßÝïÿ=–â‰<ÿ~îþ.ø¯ÿ2·ÄMéûž\§¥•¿¼žÅí:ïýûx«ãÖï&ðòµÓgµñ¯ÿËšOº”Ÿÿö<ëÍüqW3ý÷wú÷�þ—Ø÷÷¼9ûõÏ�«»îË¿=+ýò×ÿç¼¾k˧ïÛ¤ßuMKœdv�Ÿ­Å|íûöKÒµ>nõû{Çlÿ—©úœ9¼ÿ*fÛ_Í;îw
­¿wëÿxëï<ïÓ·>Øk†/-çäeYÑ^;í§_ûwïûùs›­ÝsÞ¹§zOëó.s¹~ûÛû;èeý:{›×²}ûÙ[­Æ׺-ïeëùú}ÙeùÒû˜å«?›^³þÏ“(,©Ÿý®ýaÌYz).Öö6ÿËÓfóÿÞ4­³úo´çú­¿ý*ù÷û_Ö�~ÿýßß¾SÏý1ý½ùËüŒç÷ïýáñ×2Þ¾¾�‚W%í¸®šâ;züæ_‡ößû•ª†ùõ:×oÿy–´Ü?kûý²ûKô¼Êë}pämvùb²ÿÞîï/û½û}yé•óî»Ñ©<+¹:fŸÿ'…«§mË»ã»ü?Î:ë½wÿ
Hum: 
/Ÿ=üþoµ¦\´ÏÒs|ÌÓÇïŸN¼¥Íÿ�ÜxÚ÷
öÏ¿}Ï¿]±ûë×Ê:¯·(]ý[v_£òµîwXf‹÷Õ×øµ�òÖ»�Î?~-öwÝÿsôÏd÷ÿcëÆ×ÿ÷;·ÿ¡ßÝïÿ=–â‰<ÿ~îþ.ø¯ÿ2·ÄMéûž\§¥•¿¼žÅí:ïýûx«ãÖï&ðòµÓgµñ¯ÿËšOº”Ÿÿö<ëÍüqW3ý÷wú÷�þ—Ø÷÷¼9ûõÏ�«»îË¿=+ýò×ÿç¼¾k˧ïÛ¤ßuMKœdv�Ÿ­Å|íûöKÒµ>nõû{Çlÿ—©úœ9¼ÿ*fÛ_Í;îw
­¿wëÿxëï<ïÓ·>Øk†/-çäeYÑ^;í§_ûwïûùs›­ÝsÞ¹§zOëó.s¹~ûÛû;èeý:{›×²}ûÙ[­Æ׺-ïeëùú}ÙeùÒû˜å«?›^³þÏ“(,©Ÿý®ýaÌYz).Öö6ÿËÓfóÿÞ4­³úo´çú­¿ý*ù÷û_Ö�~ÿýßß¾SÏý1ý½ùËüŒç÷ïýáñ×2Þ¾¾�‚W%í¸®šâ;züæ_‡ößû•ª†ùõ:×oÿy–´Ü?kûý²ûKô¼Êë}pämvùb²ÿÞîï/û½û}yé•óî»Ñ©<+¹:fŸÿ'…«§mË»ã»ü?Î:ë½wÿ
Hum: 
/Ÿ=üþoµ¦\´ÏÒs|ÌÓÇïŸN¼¥Íÿ�ÜxÚ÷
öÏ¿}Ï¿]±ûë×Ê:¯·(]ý[v_£òµîwXf‹÷Õ×øµ�òÖ»�Î?~-öwÝÿsôÏd÷ÿcëÆ×ÿ÷;·ÿ¡ßÝïÿ=–â‰<ÿ~îþ.ø¯ÿ2·ÄMéûž\§¥•¿¼žÅí:ïýûx«ãÖï&ðòµÓgµñ¯ÿËšOº”Ÿÿö<ëÍüqW3ý÷wú÷�þ—Ø÷÷¼9ûõÏ�«»îË¿=+ýò×ÿç¼¾k˧ïÛ¤ßuMKœdv�Ÿ­Å|íûöKÒµ>nõû{Çlÿ—©úœ9¼ÿ*fÛ_Í;îw
­¿wëÿxëï<ïÓ·>Øk†/-çäeYÑ^;í§_ûwïûùs›­ÝsÞ¹§zOëó.s¹~ûÛû;èeý:{›×²}ûÙ[­Æ׺-ïeëùú}ÙeùÒû˜å«?›^³þÏ“(,©Ÿý®ýaÌYz).Öö6ÿËÓfóÿÞ4­³úo´çú­¿ý*ù÷û_Ö�~ÿýßß¾SÏý1ý½ùËüŒç÷ïýáñ×2Þ¾¾�‚W%í¸®šâ;züæ_‡ößû•ª†ùõ:×oÿy–´Ü?kûý²ûKô¼Êë}pämvùb²ÿÞîï/û½û}yé•óî»Ñ©<+¹:fŸÿ'…«§mË»ã»ü?Î:ë½wÿ
Hum: 
/Ÿ=üþoµ¦\´ÏÒs|ÌÓÇïŸN¼¥Íÿ�ÜxÚ÷
öÏ¿}Ï¿]±ûë×Ê:¯·(]ý[v_£òµîwXf‹÷Õ×øµ�òÖ»�Î?~-öwÝÿsôÏd÷ÿcëÆ×ÿ÷;·ÿ¡ßÝïÿ=–â‰<ÿ~îþ.ø¯ÿ2·ÄMéûž\§¥•¿¼žÅí:ïýûx«ãÖï&ðòµÓgµñ¯ÿËšOº”Ÿÿö<ëÍüqW3ý÷wú÷�þ—Ø÷÷¼9ûõÏ�«»îË¿=+ýò×ÿç¼¾k˧ïÛ¤ßuMKœdv�Ÿ­Å|íûöKÒµ>nõû{Çlÿ—©úœ9¼ÿ*fÛ_Í;îw
­¿wëÿxëï<ïÓ·>Øk†/-çäeYÑ^;í§_ûwïûùs›­ÝsÞ¹§zOëó.s¹~ûÛû;èeý:{›×²}ûÙ[­Æ׺-ïeëùú}ÙeùÒû˜å«?›^³þÏ“(,©Ÿý®ýaÌYz).Öö6ÿËÓfóÿÞ4­³úo´çú­¿ý*ù÷û_Ö�~ÿýßß¾SÏý1ý½ùËüŒç÷ïýáñ×2Þ¾¾�‚W%í¸®šâ;züæ_‡ößû•ª†ùõ:×oÿy–´Ü?kûý²ûKô¼Êë}pämvùb²ÿÞîï/û½û}yé•óî»Ñ©<+¹:fŸÿ'…«§mË»ã»ü?Î:ë½wÿ
Hum:

direi che qualche cosa non funziona :slight_smile: