In questa lezione vi mostreremo come ottenere i dati del DHT11 da remoto, utilizzando Osoyoo Mega-IoT Shield per collegare il sensore DHT11 e la scheda MCU MEGA2560. La scheda avanzata OSOYOO per Arduino MEGA2560 può funzionare come server web. Il browser remoto può accedere a questo server web e ottenere i dati del DHT11 collegato al pin D2 del MEGA2560.
1).Collegare la scheda di estensione MEGA-IoT di OSOYOO alla scheda avanzata di OSOYOO per la scheda MEGA2560:
Collegare quindi il sensore di temperatura e umidità DH11 alla porta D2 della scheda di estensione MEGA-IoT di OSOYOO con un cavo PnP a 3 pin, come indicato di seguito: (il cappuccio del ponticello deve collegare l’ESP8266 RX con A8, TX con A9).:
sensore di temperatura e umidità DH11— D2
Passo 1 Installare l’ultimo IDE (se si dispone di una versione dell’IDE successiva alla 1.1.16, saltare questo passo)
Scaricare l’IDE da https://www.arduino.cc/en/software , quindi installare il software.
Passo 2 Installazione della libreria WifiEsp (se avete installato la libreria WifiESP, saltate questo passo)
OSOYOO MEGA-IoT estende il pin TX/RX al pin A9/A8 della scheda OSOYOO Advanced Board for MEGA2560 per impostazione predefinita. Pertanto, nel codice dello sketch, è necessario utilizzare la porta seriale software per comunicare con l’ESP8266 (impostare A9 come TX e A8 come RX nell’oggetto SoftwareSerial).
Per utilizzare questo shield wifi nell’IDE, è necessario scaricare la libreria WiFiEsp-master dal seguente link:
https://osoyoo.com/driver/WiFiEsp-master.zip
Aprite l’IDE, fate clic su Sketch – Include Library – Add .Zip library per caricare i file zip di cui sopra nell’IDE.
Per utilizzare il sensore DHT11 in questo caso, è necessario installare anche il moduloDHT11 library come le operazioni precedenti.
Passo 3 Dopo aver installato le librerie di cui sopra, scaricare il codice principale dal seguente link, decomprimerlo e vedere una cartella chiamata “smarthome-lesson7”:
https://osoyoo.com/driver/smarthome/7/smarthome_lesson7.zip
Fase 4 Al termine delle operazioni sopra descritte, collegare la scheda OSOYOO MEGA2560 al PC con il cavo USB.
Passo 5 IDE: Scegliere il tipo di scheda e il tipo di porta corrispondenti al progetto.
Passo 6 IDE: Fare clic su file – Apri, quindi scegliere il codice “smarthome-lesson7.ino” nella cartella, caricare lo sketch sulla scheda.
Nota: nello schizzo sono presenti le seguenti linee:
char ssid[] = "******"; // your network SSID (name) char pass[] = "******"; // your network password
Sostituire ****** con l’SSID e la password wifi corretti, altrimenti il progetto non potrà connettersi a Internet.
Dopo aver caricato lo sketch nell’IDE, aprite il monitor seriale nell’angolo superiore destro dell’IDE e vedrete il seguente risultato:
Dal monitor seriale è possibile vedere l’indirizzo IP della scheda MEGA2560 nel cerchio di lettura (nell’immagine precedente, 192.168.50.102).
Quindi utilizzare il browser per visitare il sito web http://mega2560-ip-address (in above case, http://192.168.50.102),si vedrà il seguente risultato:
Da qui è possibile visualizzare un semplice server web che mostra i dati di temperatura e umidità del sensore DHT11. La pagina web viene aggiornata automaticamente ogni 20 secondi. Attendere un minuto e vedere i seguenti dati sulla pagina web: – La pagina web viene aggiornata automaticamente ogni 20 secondi.
DownLoad Url osoyoo.com
You must be logged in to post a comment.
Hi, my name is Antonio and is impossible to print the page. I connect with the server (client.connected=true) but I don’t get “Sending response”
You can clear the browser cache, restart the browser and try again
Is it hard to change to Fahrenheit? Anyone know where that can be changed in the library?
I think you can follow below code
1 double Fahrenheit(double celsius)
2 {
3 return 1.8 * celsius + 32; //Convert degrees Celsius to Fahrenheit
4 }
5
6 double Kelvin(double celsius)
7 {
8 return celsius + 273.15; //Conversion of Celsius temperature to Kelvin temperature
9 }
10
11
12
13 double dewPoint(double celsius, double humidity)
14 {
15 double A0= 373.15/(273.15 + celsius);
16 double SUM = -7.90298 * (A0-1);
17 SUM += 5.02808 * log10(A0);
18 SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;
19 SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ;
20 SUM += log10(1013.246);
21 double VP = pow(10, SUM-3) * humidity;
22 double T = log(VP/0.61078); // temp var
23 return (241.88 * T) / (17.558-T);
24 }
25
26
27
28 double dewPointFast(double celsius, double humidity)
29 {
30 double a = 17.271;
31 double b = 237.7;
32 double temp = (a * celsius) / (b + celsius) + log(humidity/100);
33 double Td = (b * temp) / (a – temp);
34 return Td;
35 }
36
37 #include
38 dht11 DHT11;
39 #define DHT11PIN 2
40
41 void setup()
42 {
43 Serial.begin(9600);
44 Serial.println(“DHT11 TEST PROGRAM “);
45 Serial.print(“LIBRARY VERSION: “);
46 Serial.println(DHT11LIB_VERSION);
47 Serial.println();
48 }
49
50 void loop()
51 {
52 Serial.println(“\n”);
53 int chk = DHT11.read(DHT11PIN);
54 Serial.print(“Read sensor: “);
55 switch (chk)
56 {
57 case DHTLIB_OK:
58 Serial.println(“OK”);
59 break;
60 case DHTLIB_ERROR_CHECKSUM:
61 Serial.println(“Checksum error”);
62 break;
63 case DHTLIB_ERROR_TIMEOUT:
64 Serial.println(“Time out error”);
65 break;
66 default:
67 Serial.println(“Unknown error”);
68 break;
69 }
70
71 Serial.print(“Humidity (%): “);
72 Serial.println((float)DHT11.humidity, 2);
73
74 Serial.print(“Temperature (oC): “);
75 Serial.println((float)DHT11.temperature, 2);
76
77 Serial.print(“Temperature (oF): “);
78 Serial.println(Fahrenheit(DHT11.temperature), 2);
79
80 Serial.print(“Temperature (K): “);
81 Serial.println(Kelvin(DHT11.temperature), 2);
82
83 Serial.print(“Dew Point (oC): “);
84 Serial.println(dewPoint(DHT11.temperature, DHT11.humidity));
85
86 Serial.print(“Dew PointFast (oC): “);
87 Serial.println(dewPointFast(DHT11.temperature, DHT11.humidity));
88
89 delay(2000);
90 }
MY DHT11 sensor shows 0.0% of humidity and 0 of temperature, is it normal?
The source code supplied in smarthome_lesson7 does not run. It appears to be using a very old reference to the DHT class. However, if you download the DHT Sensor Library from here (https://www.arduino.cc/reference/en/libraries/dht-sensor-library/), the two projects under the examples directory work well. There are two DHT classes, one is called DHT and the other is DHT_Universal. Both work. So then I went back and modified my smarthome_lesson7 with the code from the DHTTest example and now it is working.