Jumping Jack Flash weblog

COVID-19 – Misurare temperatura corporea con accuratezza di +/-0.1°C – Puntata 3

Posted in hardware by jumpjack on 25 maggio 2020

Per il “progetto termometro“, oltre ai già visti sensori “normali”, ne ho trovati altri che funzionano senza dover stare attaccati al corpo (“sensori a infrarossi senza contatto”), probabilmente usati nei termometri “a pistola”.

Potrebbero essere un’alternativa o un complemento ai sensori a contatto, viato che dalle prove che ho ftatto tenendo il sensore al polso, risulta che non supera mai i 35.0, raggiungendo spesso solo i 34.5, cosa che probabilmente è dovuta a questo:

Evidentemente c’è un motivo se i termometri vanno messi in bocca o sotto l’ascella…

Però mettendo un sensore remoto al polso sarebbe comunque possibile misurarsi la temperatura al volo, e creare comunque un log di tutte le misurazioni effettuate. Oppure si potrebbe aggiungere genericamente 1.0°-1.5°C alla misurazione effettuata sul polso, anche se la cosa sarebbe molto empirica.

Sensori senza contatto

 

  • IrThermo 2 click (TMP007)

Varianti di MLX90614 (+/-0.5°C)

 

  • NCIR – specificamente progettato per M5StickC

 

  • Banggood, 11,00 euroBundle sensore NCIR MLX90614 + M5StickC
  • Amazon,  36,00 euro

Varianti di MLX90615 (+/-0.2°C)

 

 


Termocamere


Sensori a contatto

 

 

 


Definiti “remoti” ma solo perchè leggono sensori remoti A FILO; sono inoltre a bassa acuratezza (+/-1°C):

Microchip (datasheet):

  • EMC1812
  • EMC1813
  • EMC1814
  • EMC1815
  • EMC1833

Board per leggere i suddetti sensori: MIKROE-3685

 

Board MIKROE-3636

 

MIKROE-3600

COVID-19 – Misurare temperatura corporea con accuratezza di +/-0.1°C

Posted in hardware by jumpjack on 15 maggio 2020

Ai tempi del COVID-19, per molte settimane – e speriamo non mesi – ci verrà misurata la temperatura in continuazione: andando a lavoro, entrando nei locali, andando dal barbiere; per ora infatti è l’unico modo istantaneo per verificare, anche se molto a grandi linee, se si è infetti o no.

Potrebbe allora essere comodo potersi misurare da sè la temperatura corporea, senza dover stare ogni volta 5 minuti col termometro sotto l’ascella, o senza spendere 50 euro per un termometro a infrarossi; senza contare che sarebbe molto utile poter avere un grafico dell’andamento della temperatura nella giornata.

Stanno iniziando a comparire sul mercato i primi braccialetti fitness o smartwatch con termometro incorporato, ma per ora solo in spedizione dalla Cina, e comunque nessuno fornisce il grado di accuratezza della misurazione (tranne questo, che dichiara 0.1°C); e considerando, ad esempio, che per esempio che il termometro di una tipica stazione meteo ha un’accuratezza dichiarata di +/-2°C, significa che se usassimo quel termometro per misurarci la febbre, e avessimo 37.5°, quel termometro potrebbe dire un qualunque valore fra 35.5° (in ipotermia) o 39.5° (con le pezze in fronte)…

Serve quindi una misurazione molto più precisa, con uno scarto di pochi decimi di grado.

Ecco allora un elenco di alcuni sensori di temperatura ad alta accuratezza: anche se, usandoli per il fai-da-te, non possono essere usati come presidio medico per decidere se e come curarsi, possono comunque dare un valido indizio per decidere se poi farsi una misurazione seria con uno strumento certificato.

Ecco dunque la lista:

  1. SHT35: +/-0.1°C (Sensirion) (temperatura/umidità)
  2. STS35: +/-0.1°C (Sensirion) (solo temperatura)
  3. SHT85: +/-0.1°C (Sensirion) (temperatura/umidità)
  4. Si7051: +/-0.1°C (Silicon Labs)
  5. MAX30205: +/-0.1°C (Maxim Integrated)
  6. MAX30208: +/-0.1°C (Maxim Integrated)
  7. MCP9808: +/-0.1°C  (Microchip) (solo temperatura)

 

Altri  meno accurati:

 

Sono tutti sensori davvero minuscoli, grandi quanto l’unghia del mignolo, quindi impossibili da gestire con un saldatore classico: servirebbe un fornetto per saldature SMD. Per fortuna però per molti esistono delle versioni già saldate su breadboard; alcune sono molto rare e disponibili solo in ordine dalla cina, ma altre sono piuttosto diffuse e si trovano su ebay Italia o addirittura su Amazon, alcuni persino con spedizione gratuita con Prime da un giorno all’altro.

E’ importante quindi saper distinguere quale è il migliore. I dati di accuratezza  sono espressi come un singolo numero, ma un modo più preciso per definire l’accuratezza è un grafico; nei datasheet di questi oggetti sono presenti grafici come questo, che indicano quant’è il massimo possibile errore di misurazione (asse Y, a sinistra) alle varie temperature (asse X, in basso):

Questo grafico dice ad esempio che per questo specifico componenbte “tipicamente”, per misurazioni tra +20°C e +60°C, lo scarto tra temperatura misurata e reale è di 0.1°C, mentre quello “massimo” è di 0.3°C.

Prendendo i grafici di tutti i vari sensori e raggruppandoli tutti in un’unica figura, ho ottenuto quanto segue:

Si nota chiaramente come tutti i sensori siano più accurati nella zona di interesse, che è quella della temperatura del corpo umano, la quale può variare fra 35 e 43 gradi, dove ovviamente i valori estremi si hanno solo in caso di gravissima malattia: la temperatura tipica di un essere umano in salute è infatti di circa 37°C. “Circa” perchè la temperatura può variare per vari motivi:

In base al punto di misurazione:

In base al momento della misurazione:

Persino in base all’umore:

 

Questa tabella indica alcune temperature di riferimento, da cui si evince perchè bisogna allertarsi, in tempi di pandemia mondiale da coronavirus, se la temperatura sale sopra i 37.5°C:

Scelta del sensore

Qual è il sensore migliore tra quelli elencati prima?

Ovviamente quello che ha deviazione/errore più basso in prossimità dei 37 gradi, quindi quelli della prima lista, con accuratezza di 0.1°C; poi però bisogna trovare:

  1. quello più facilmente reperibile in Italia
  2. il meno costoso
  3. quello più pratico

Per il punto 1: scartiamo quindi quelli su Aliexpress e simili, che probabilmente, ordinati a maggio 2020, arriverebbero dopo che sarà stato inventato il vaccino… Orientiamoci quindi su siti italiani, su Ebay con spedizione dall’Europa, e su Amazon.

Per il punto 2: se c’è su Amazon, vediamo se è disponibile con spedizione gratuita.

Per il punto 3: verifichiamo se ci sono già librerie disponibili per Arduino, o addirittura kit di test già pronti.

 

Per quanto riguarda Amazon Prime, la scelta è molto limitata: ci sono solo SHT35 e Si7051. Su Ebay la scelta è un po’ più ampia: SHT35, SHT85, Si7051,  MAX30205.

Per quanto riguarda le librerie Arduino, ce ne sono per i Sensirion SHT3x e per i Silicon Labs Si7051 dalla Adafruit (o anche per i Silicon Labs Si7013, Si7020 e Si7021, che però hanno accuratezza troppo bassa (+/-0.5°C)).

Schede preassemblate

SHT31 Smart Gadget

Il Sensirion SHT35 ha un punto a suo favore in più: esiste un modulo già assemblato dotato di batteria tampone, circuito di lettura del sensore e schermo LCD, cose che altrimenti dovremmo aggiungere noi a mano, assemblare e testare: si chiama SHT31 Smart Gadget:

Clicca qui per una foto a risoluzione esagerata: link

Lo Smart Gadget è disponibile su:

Come è facile intuire dal nome, non è basato sull’SHT35 da +/-0.1°C ma sull’SHT31 da +/-0.2°C: ci si può accontentare di 0.2, oppure si può pensare di sostituire il sensore SHT31 con un altro: la scheda infatti espone i 4 pin a cui è collegato il sensore tramite protocollo I2C (Vcc, GND, SDA, SCL), che quindi può essere staccato e facilmente sostituito, a livello di hardware; per quanto riguarda la compatibilità SW, dal momento che le librerie arduino sono dichiarate come compatibili per tutti i modelli SHT3x, è ipotizzabile che anche questa scheda già pronta sia compatibile con tutti gli SHT3x. Naturalmente per esserne sicuri al 100%, anche qui bisognerebbe leggere in dettaglio nel datasheet i registri e i protocolli.

Importante anche l’indirizzo I2C assegnato: per certe board che montano SHT31 può essere impostato su 0x44 (default) o 0x45 a seconda di come è connesso il pin ADR (ADDRESS). Altre board hanno indirizzo fisso non modificabile, quindi non sono adatte:

Sullo smart gadget l’SHT31 ha il pin ADDR collegato all’alimentazione, quindi, da datasheet, l‘indirizzo è impostato su 0x45.

Lo Smart gadget è dotato di memoria onboard e capacità di logging, e sono disponibili due app della Sensirion stessa per scaricare i dati e mostrarli sul cellulare Android o iOS (qui l’app Android precedente e ormai abbandonata).

Il sensore esterno SHT35 si trova già montato su basetta con connettore GROVE, preimpostata su indirizzo 0x45, quindi direttamente collegabile al gadget.

L’immagine che segue mostra il retro di una schedaGrove SHT35, evidenziando le piazzole utilizzabili per modificare l’indirizzo dal default 0x45 a 0x44:

Affinchè una scheda SHT35 funzioni su uno Smart Gadget SHT31, deve essere impostata sullo stesso indirizzo che l’SHT31 ha sulla scheda (0x45); in caso di errore non si rompe niente, ma il sensore non verrà visto dalla scheda.

E’ disponibile, tra parentesi, anche una libreria Arduino per il sensore STS35, sempre della Sensirion, sempre da +/-0.1°C, ma solo sensore di temperatura (mentre l’SHT35 contiene anche un sensore di umidità ambientale, in realtà inutile per la nostra applicazione).

Sempre su RS è disponibile anche una board in formato “Grove” contenente il sensore SHT35 (disponibile da giugno) a 15,00 euro o su robot-domestici a 26,00 euro.

Questo è il manuale dello Smart Gadget, questa la pagina ufficiale

Esaminando i file gerber dello SmartGadget, è spossibile individuare come e a cosa sono connessi i vari pin, e scoprire che dal lato opposto della batteria c’è proprio una predisposizione per collegare un sensore esterno:

 

Basta quindi tagliare le piste di rame vicino al sensore, saldare il nuovo sensore alle piazzole libere, e ottenere quindi (in teoria) uno Smart gadget con accuratezza di +/-0.1°C anzichè 0.3°C; la rimozione dell’SHT31 è in ogni caso necessaria perchè è montato dalla parte del display, mentre è necessario che sia attaccato al polso per leggere correttamente la temperatura, ma una volta rimosso potrebbe risultare difficile, se non impossibile, risaldare i fili ai vicinissimi terminali del sensore, o ai forellini sul PCB per cui passano le piste di rame.

Scheda M5stickC

Una possibile alternativa quasi-già-pronta, essendo disponibili le librerie arduino, è l’utilizzo di una board M5StickC (da non confondere con M5Stack):

Anche se non dispone di un sensore di temperatura integrato, questo dispositivo è dotato di:

  • Microcontrollore ESP32 dualcore a 240 MHz con 4 Mbyte di RAM
  • Bluetooth
  • Wifi
  • Schermo OLED
  • Connettore GROVE (adatto per sensore esterno Grove SHT35)
  • Pulsanti
  • Accelerometro
  • Giroscopio
  • Trasmettitore IR
  • Segnalatore acustico
  • Predisposizione per attacco a cinturino
  • Batteria da 95 mAh
  • Connettore USB

La quantità di progetti realizzabili con un simile dispositivo è enorme, per cui, una volta terminata la necessità di misurarsi la temperatura tutto il giorno, può essere riciclato per altri usi.

E’ disponibile su Amazon Prime (B07QRQ4MP8) a 25 euro inclusivo di cinturino:

Naturalmente in questo caso il SW sarà tutto da scrivere, ma essendo l’ESP32 programmabile tramite Arduino, si tratta solo di usare le già citate librerie Arduino adatte per il proprio sensore e trovare un sorgente di esempio da cui partire.

Per quanto riguarda il cinturino, se si possiede già un M5tickC senza cinturino, o si vuole comprarlo senza per risparmare, usando un vecchio cinturino, qui c’è il modello 3d dell’involucro dell’M5stickC, su cui lavorare per crearsi manualmente l’aggancio in plastica per il cinturino:

 

Fai da te: Arduino/ESP8266/ESP32

Librerie

Sorgenti di esempio:

Questo sorgente di esempio si limita a stampare la temperatura sul monitor seriale; chiaramente l’applicativo finale dovrà invece stamparlo su un display:

#include <Arduino.h>
#include <Wire.h>
#include "Adafruit_SHT31.h"

Adafruit_SHT31 sht31 = Adafruit_SHT31();

void setup() {
  Serial.begin(9600);
  if (! sht31.begin(0x44)) { // Qui c'è l'indirizzo I2C del sensore; per alcuni è fisso a 0x40, per altri si può modificare tra 0x44 e 0x45
    Serial.println("*ERR01* Sensore non presente a indirizzo 0x44");
    while (1) delay(1);
  }
}

void loop() {
  float t = sht31.readTemperature();

  if (! isnan(t)) {
    Serial.print("Temp *C = "); Serial.println(t);
  } else {
     Serial.println("*ERR02* Lettura errata");
  }

  Serial.println();
  delay(1000);
}

 

 

Sensori su breadboard

Per SmartGadget (serve indirizzo 0x45):

 

Diario elettrico Ecojumbo 5000 – Colonnina di ricarica / armadio elettrico

Posted in Uncategorized by jumpjack on 25 aprile 2016

Attualmente uso due caricabatterie da 250 e 300 W per ricaricare l’ecojumbo. Ma sono “temporaneamente” (da più di un anno…) collocati dentro al vecchio scooter che avevo prima…

Ho calcolato che, i due CB,  se hanno un’efficienza del 90% come è probabile che sia, essendo uno da 60V/4A e l’altro da 60V/5A dissiperanno una potenza pari a 60*4*0.10 + 60*5*0.10 = 24W + 30 W = 54W.

Quanto calore può dissipare un cosiddetto “armadio elettrico”? Questa pagina permette di calcolarlo:

http://www.claredot.net/it/sez_Elettrotec/dissipazione_quadri_elettrici.php

(dispense universitarie su dimensionamento termico quadri elettrici: link)

I miei due caricabatterie hanno dimensioni 18x9x5 e 18x9x7 cm.

Li potrei affiancare in due modi:

armadio-batterie

Nel primo caso servirebbe un mobiletto di almeno 22 x 26 x 11 cm, nel secondo 22 x 18 x 13, considerando sempre una distanza di 2cm tra i caricabatterie e le pareti e tra di loro. Il suddetto sito dà nei due casi una dissipazione possibile di 16W e 13W considerando una temperatura esterna massima di 40° e interna di 60°c. La capacità di raffreddamento raddoppia se l’armadio è in alluminio invece che in plastica: 32 e 26 W.

Non ci siamo.

O prendo un armadio più grande, o lo munisco di raffreddamento ad aria: quest’altra pagina permette di calcolare il flusso d’aria in m3/h necessario ad asportare una certa quantità di calore: https://www.stego.de/nc/it/servizi/strumenti-di-calcolo/calcolo-della-potenza-di-raffreddamento.html.

Per estrarre 60W di calore serve un flusso di almeno 9.3 m3/h (=6.47 CFM – cube foot minute) .

Su rs-components è facile trovare una ventola che abbia determinati requisiti in termini di volume d’aria spostato in un’ora: link Basterebbe una ventolina da 12V/6W e 14 euro, per esempio, Una ventola a 230V costa molto di più, 70 euro!

Non volendo usare la ventilazione, cercando “armadio elettrico” su Amazon ci sarebbe questo: 400x300x200mm – Cablematic, in acciaio, 55 euro; il calcolo dice che può dissipare 57W, ancora poco. 😦 Ci vorrebbe quello da 700×400… e 104 euro!

Da una parte affidarsi a un sistema di raffreddamento attivo mette di fronte al rischio che un guasto alla ventola faccia surriscaldare e rompere anche i caricabatterie; dall’altra, usare un sistema passivo (=”grossa scatola”) significa spendere più di 100 euro.

Penso che opterò per un armadio piccolo (400x300x200 cm, 55 euro) dotato però di due ventole (totale: 55+28 =78 euro).

Finalmente i dati sulla durata delle mie batterie al litio LiCoO2 (dopo più di 2 anni dall’acquisto dello scooter!!)

Posted in scooter elettrici by jumpjack on 1 giugno 2013

Nella ricerca che ho già citato in altro post c’è un grafico tristissimo:

cicli-LiCoO2

Se lo interpreto bene, significa che ad una temperatura media di 25°C, le mie batterie avevano un’aspettativa di vita di 85 cicli, utilizzando la “convenzione dell’80%”, mentre si sarebbero ridotte a metà capacità dopo appena 300 cicli.

Situazione addirittura peggiore ad alte temperature: tra 35 e 45 gradi, i cicli attesi sono tra 50 e 85!

Io comprai lo scooter a maggio 2011, e a settembre o ottobre dello stesso anno già iniziai a lamentarmi delle batterie, anche se mi rassegnai solo a novembre.

Dal 2 maggio al 2 ottobre sono 5 mesi, ma togliendo agosto diventano 4, per un totale di circa 90 giorni lavorativi, ognuno con un consumo minimo di 20km, pari a circa il 30% dell’autonomia possibile. Cioè, ogni 3 giorni completavo un ciclo di scarica del 100% (all’inizio lo facevo letteralmente, scaricando completamente le batterie!!!). Questo significa almeno 30 cicli completi di scarica, effettuati su batterie utilizzate, come da manuale, una per volta, quindi scaricate a 2C o addirittura 3C!! Il tutto in piena estate.

A 35°C i cicli attesi erano, guarda un po’, proprio 30!

Paradossalmente, se poi durante l’inverno le batterie non sono decadute altrettanto rapidamente è proprio perchè col freddo durano di più…

A ottobre 2012, quindi un anno e mezzo dopo l’acquisto, le batterie non erano più ragionevolmente utilizzabili nemmeno in parallelo, per fare 20 km al giorno, e ne ho comprata una definita “seminuova” dalla ZEM, “con pochissimi cicli”; beh… considerando una vita massima di 200 cicli a 45° e un dimezzamento di capacità già a 100 cicli (trasscurando i rispettivi ridicoli 30 e 50 cicli), e considerando che molto probabilmente alla ZEM le scaricavano ogni volta al 100%, purtroppo devo constatatre che è normale che ora, 6 mesi dopo, anche la batteria nuova non vale più una cicca!

Adesso non mi resta che trovare i grafici di durata delle batterie in base alla temperatura anche per le LiFePO4; per il momento conosco solo i dati delle celle A123 ANR26650 a 2C/45°C: : durano 2000 cicli  (contro i TRENTA delle LiCoO2!!!)

 

Aggiornamento 2016:

http://ecec.mne.psu.edu/Pubs/2010-Zhang-JPS.pdf

 

batterie-lifepo4-cicli

Effetto della temperatura sulle batterie al lithio “li-ion” (LiCoO2)

Posted in batterie, scooter elettrici, Uncategorized by jumpjack on 1 giugno 2013

Finalmente qualche dato sugli effetti della temperatura sulle batterie al litio!

http://www.virginia.edu/ms/ecs/files/KUMARESAN.pdf

(http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.593.9784&rep=rep1&type=pdf)

Queste dovrebbero essere proprio le batterie del mio Zem Star 45, che ha batterie al litio da 3,6 V, e che mi è stato detto “in giro” che non possono essere LiPo: quindi LiCoO2 dovrebbe essere l’unica alternativa rimasta, essendo le altre (mangamese e altro) troppo recenti (il mio scooter è di più di 2 anni fa).

Ho ricostruito il grafico in Excel:

temperatura-LiCoO2-1

E da quello poi ho desunto la capacità disponibile con scariche di 1C alle varie temperature, che sul mio scooter corrispondono a 48A; in realtà credo che sotto sforzo arrivi anche a 80, quindi sarebbero quasi 2C.

temperatura-LiCoO2

Immagino che a 2C la capacità si riduca a un 20 o 30% a zero gradi… 😦

Ecco infine un confronto tra i grafici in temperatura di queste batterie al litio e la batteria al piombo-gel (SLA) di un Etropolis:

Temperature performance comparison among Lithium (LiCOO2) and Lead (SLA) batteries

Temperature performance comparison among Lithium (LiCoO2) and Lead (SLA) batteries

Il mio giudizio professionale è “ammazza che schifo”. 😉

AGGIORNAMENTO 11/10/02013

Trovato nuovo grafico (per litio NMC):


http://www.altenergymag.com/emagazine/2012/04/a-comparison-of-lead-acid-to-lithium-ion-in-stationary-storage-applications/1884

 

Aggiornamento 2016:

Trovato grafico per LiFePO4:

batterie-lifepo4-temperatura

 

Andando a sovrapporre i grafici di LiCoO2 e LiFePO4:

batterie-lico-life-temp

Il grafico dice che sotto zero le batterie LiCoO2 sono pressochè inutilizzabili su un mezzo elettrico: a 1C (linea nera continua) hanno capacità praticamente nulla (non ci sono dati, ma la linea continua che ne rappresenta l’ideale continuazione è molto chiara), e anche a C/2 non si va oltre il 30%. Alla stessa temperatura di -5C le LiFePO4 dannò, sì, uno scarso rendimento… ma comunque mantengono un 40-50% della capacità, con poca differenza tra 1C e C/2.