Nell’articolo di oggi vedremo come utilizzare i PIN GPIO. Esploreremo anche la parte elettronica d’ora in avanti, inizieremo con l’utilizzo del sensore del gas MQ-7.
Lista componenti
- ESP32-WROVER
- Breadboard
- Sensore MQ-7
- 4x jumper
- GPIO extension board (falcolatitivo)
Descrizione componenti
Sensore MQ-7
All’interno del sensore di gas c’è un chemiresistore il cui valore di resistenza varia in base al suo materiale di cui è costituito.
Il chemiresistore è costituito (nella maggior parte dei casi) da diossido di stagno (SnO2) che ha una bassa conducibilità in aria pulita ed inoltre contiene elettroni liberi al suo “interno” (questi elettroni sono attratti dall’ossigeno).
Sulla superficie, l’ossigeno viene assorbito. A causa della superficie riscaldata e quindi non ci sono elettroni liberi nel biossido di stagno. Quindi il risultato è: senza elettroni liberi non c’è flusso di corrente elettrica.
In presenza di gas “nocivo” l’ossigeno molecolare viene attratto dal gas stesso, in questo modo gli elettroni liberi verranno attratti dal diossido di stagno e permetteranno di “chiudere il circuito”. Maggiore è il gas presente maggiore è il numero di elettroni liberi presenti nel chemiresistore di diossido di stagno.
A causa della legge di Ohm, un flusso di corrente maggiore determina una differenza di potenziale maggiore, che viene misurata come tensione di uscita sull’uscita analogica del sensore, utilizzando una semplice rete di divisori di tensione. Pertanto è possibile misurare le concentrazioni di gas.
In base al valore scelto di resistenza, si possono misurare o meno alte concentrazioni di gas. Per misurare alte concentrazioni di gas, si imposta un valore alto per il resistore, compromettendo però l’accuratezza.
Collegamenti
In seguito schema e diagramma di collegamento. Per costruire un circuito ricordati di tenere la scheda spenta.
CREAZIONE BOT
Il primo passo consiste nell’aprire l’applicazione telegram. Una volta aperta cerchiamo “BotFather” tramite la funzione cerca cliccando sull’apposita lente di ingrandimento.
“BotFather” è un bot che permette di creare altri bot.
Avviamo il bot scrivendo “/start“, poi premiamo invio.
Per creare un nuovo bot digitiamo “/newbot”.
BotFather ci chiederà di assegnare un nome al nostro nuovo Bot, basta digitare un qualsiasi nome e poi premere Invio.
Dobbiamo anche inserire un username che lo renderà riconoscibile pubblicamente. Username deve terminare in “Bot” o ” _bot”.
In seguito alla assegnazione del nome e dell’username BotFather ci comunicherà informazioni importanti in seguito per compilare il codice per il funzionamento del sensore e dell’invio dati. ATTENZIONE: QUESTE INFOMAZIONI LE DOVREMMO TENERE SOLO PER NOI. La prima parte riguarda il percorso per trovare il nostro bot. La seconda è la API che sarà utilizzato nel nostro codice.
Per recuperare il chat_id bisogna andare al link https://api.telegram.org/bot<TOKEN>/getUpdates, dove al posto di <TOKEN> dovete inserire il TOKEN di accesso alle API http del bot.
A questo punto mandate un messaggio nella chat ed aggiornate la pagina del link. In questa pagina vedrete popolarsi un file JSON in cui vi viene mostrato il CHAT_ID nella chiave “chat” e nel campo “id” (come nello screenshot sottostante):
In alternativa puoi usare questo sito. Inserisci il token nell’apposito form per ottenere il chat id del tuo bot, il tutto è abbastanza autoesplicativo https://codesandbox.io/s/get-telegram-chat-id-q3qkk
Codice
Se questo è il tuo primo articolo ti invito di leggere prima questo per l’installazione dei driver della scheda. Ecco qui un piccolo riepilogo prima di compilare e caricare il codice.
Dobbiamo installare la libreria UniversalTelegramBot.h, dobbiamo andare su Sketch->Include library-> Manage libraries e cercare nell’apposito menù la libreria UniversalTelegramBot.h.
Ecco qui lo sketch:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#include <WiFi.h> #include <WiFiClientSecure.h> #include <UniversalTelegramBot.h> #define WIFI_SSID "" #define PASSWORD_WIFI "" #define BOT_API_TOKEN "" #define chat_id "" //nel readme è presente la guida su come ottenere il chat id del bot int Gas_analog = 4; // used for ESP32 int Gas_digital = 2; // used for ESP32 WiFiClientSecure s_client; //wifi client UniversalTelegramBot bot(BOT_API_TOKEN, s_client); //telegram client void setup() { WiFi.begin(WIFI_SSID, PASSWORD_WIFI); //connetto al wifi s_client.setCACert(TELEGRAM_CERTIFICATE_ROOT); //creo una connessione con Telegram utilizzando un certificato di sicurezza pinMode(Gas_digital, INPUT); while (WiFi.status() != WL_CONNECTED) { //finchè il wifi non è connesso attendi delay(500); } bot.sendMessage(chat_id,"Bot started..."); } void loop() { int gassensorAnalog = analogRead(Gas_analog); int gassensorDigital = digitalRead(Gas_digital); if (gassensorAnalog > 1000) { bot.sendMessage(chat_id, "ATTENZIONE; RILEVATO GAS!!!"); bot.sendMessage(chat_id, "ATTENZIONE; RILEVATO GAS!!!"); bot.sendMessage(chat_id, "ATTENZIONE; RILEVATO GAS!!!"); delay(1000); } delay(1000); } |
Compila e carica il codice sull’ESP32, ed ecco qui che potremo visualizzare se il sensore rileva o meno gas, prendi un accendino e vedi cosa accade quando lo avvicini al sensore, se è tutto ok dopo qualche secondo ti arriverà un messaggio.
Al prossimo articolo. Grazie per la lettura.
Iscriviti ai nostri gruppi Telegram
Link utili
- Arduino UNO R3
- Elegoo UNO R3
- Arduino Starter Kit per principianti
- Elegoo Advanced Starter Kit
- Arduino Nano