User Tools

Site Tools


discover

This is an old revision of the document!


Alla scoperta del makerspace

Introduzione

L'obiettivo di questo progetto è quello di creare un dispositivo in grado di misurare la temperatura ambientale e visualizzare i dati su un'applicazione per telefono. Per raggiungere questo obiettivo, abbiamo utilizzato un modulo ESP8266, un sensore di temperatura DHT22, l'app Blynk e il case stampato in 3D.

Materiali e metodi

  NodeMCU con modulo Wi-Fi SoC ESP8266
  Sensore di temperatura DHT22
  Applicazione Blynk
  IDE Arduino
  Stampante 3D
  Saldatore
  Altri componenti elettronici come cavi
  

20230116_143548.jpg

Progettazione e costruzione

Tramite l'IDE di Arduino dobbiamo scaricare la board corretta e installato le librerie relative al sensore.

Abbiamo collegato il sensore di temperatura al microcontrollore utilizzando i pin appropriati. Abbiamo scritto il codice utilizzando l'ambiente di sviluppo integrato (IDE) per acquisire i dati dal sensore di temperatura e visualizzarli sull'applicazione del telefono.

temperatura.ino
// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNK_TEMPLATE_ID "********"
#define BLYNK_DEVICE_NAME "********"
#define BLYNK_AUTH_TOKEN "********"


// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial

#define DHTPIN 13
#define DHTTYPE DHT22  // DHT 22  (AM2302), AM2321

#include <Wire.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include "DHT.h"
#include <BlynkSimpleEsp8266.h>


char auth[] = BLYNK_AUTH_TOKEN;

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "********"
char pass[] = "********"


float temperatura = 0;
float umidita = 0;

DHT dht(DHTPIN, DHTTYPE);


void setup() {
  // Debug console
  Serial.begin(115200);

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
  /*
  // Clear the terminal content
  terminal.clear();

  // This will print Blynk Software version to the Terminal Widget when
  // your hardware gets connected to Blynk Server
  terminal.println(F("Blynk v" BLYNK_VERSION ": Device started"));
  terminal.println(F("-------------"));
  terminal.println(F("Type 'Marco' and get a reply, or type"));
  terminal.println(F("anything else and get it printed back."));
  terminal.flush();
  */
  dht.begin();
}

void loop() {
  Blynk.run();

  temperatura = dht.readTemperature();
  Serial.print("temperatura: ");
  Serial.println(temperatura);
  umidita = dht.readHumidity();
  Serial.print("umidita: ");
  Serial.println(umidita);


  Blynk.virtualWrite(V4, temperatura);  //  Set Virtual Pin 0 frequency to PUSH in Blynk app
  Blynk.virtualWrite(V5, umidita);      //  Set Virtual Pin 1 frequency to PUSH in Blynk app

  delay(5000);
}

</file>

Registriamoci sulla console di Blynk (per chi conosceva già questa soluzione di recente è migrata su una console online, il vecchio progetto ora è conosciuto come Blynk Legacy)

e dall'app configuriamo i nostri widget

blynk.jpg

Abbiamo progettato il case utilizzando un software di modellazione 3D e lo abbiamo stampato utilizzando una stampante 3D. 20230116_143451.jpg

Possibili evoluzioni

Questo progetto è da valutare come uno spunto per progetti più ampli. Sicuramente ci sono decine di evoluzioni / migliorie semplici che si possono applicare a questo semplice progetto, come ad esempio un'alimentazione indipendente (creo un case che preveda una spazio per una batteria), oppure inserisco un display invece (o in aggiunta) dell'invio dei dati alla mia applicazione. Posso creare un trigger che se rilevo una temperatura troppo alta (60°C ad esempio) mi avvisa tramite una notifica. Così come sostituire il sensore di temperatura con uno di movimento.

Inoltre è possibile non utlizzare la console Blynk (limitata senza un abbonamento), ma installarci localmente il vecchio Blynk (Blynk Legacy) e modificare il nostro file ino per puntare sul nostro server locale.

discover.1674132685.txt.gz · Last modified: 2023/01/19 13:51 by brian