mardi 17 mars 2020

Hygromètre et thermomètre pour suivre le séchage de filament imprimante 3D

Certains filaments de plastique destinés aux imprimantes 3D, comme le PLA prennent légèrement l'humidité ambiante, ce qui les sature de molécules d'eau gênantes lors de l'extrusion par l'imprimante. Il en résulte une extrusion irrégulière particulièrement néfaste à la bonne marche de l'impression. Le mécanisme de l'instabilité lors du processus passe par la formation de micro-bulles de vapeur d'eau lors du chauffage et d'irrégularités de diamètre à la sortie de micro-fil imprimé. La parade est de conserver les bobines de filament dans une atmosphère sèche (dry box) entre les impressions qui peuvent être espacées de plusieurs jours, semaines et mois. Pour contrôler température et humidité on peut faire appel à un module Arduino connecté à capteur T et H. 

Suffisant est le capteur DHT11 bon marché mais peu précis, pas mieux que le degré et le pourcent. L'affichage est fourni par un écran Oled 128x32 I2C et le contrôle s'effectue par un Arduino UNO. 

 Montage Arduino servant à mesurer le pourcentage d'humidité de l'air

Connections 

  • Oled 128x32       SDA --> A4   SCL-->A5   
  • DHT11       data--> pin 2    Vcc--> pin 3      GND--> pin 4  voir le setup 

Exemple d'impression ratée avec un filament contenant de l'humidité car stocké à l'air libre et humide de l'automne. D'où la nécessité de sécher les filaments pendant le stockage.  
Impression 3D ratée à cause d'un filament de PLA contenant de l'humidité

Sketch Arduino 

/****    UNO_DHT11_Oled12832_SL02.ino    *******  
*   DHT Temperature & Humidité
*   slazare     2020 03 17 
*/
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define GND 4           //pin utilisée par le capteur DHT11
#define Vcc 3           //pin utilisée par le capteur DHT11
#include <U8g2lib.h>
U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C lcd(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, /* clock=*/ SCL, /* data=*/ SDA);   // pin remapping with ESP8266 HW I2C

#define DHTPIN            2         // Pin which is connected to the DHT sensor.

// Uncomment the type of sensor in use:
#define DHTTYPE           DHT11     // DHT 11 
//#define DHTTYPE           DHT22     // DHT 22 (AM2302)
//#define DHTTYPE           DHT21     // DHT 21 (AM2301

DHT_Unified dht(DHTPIN, DHTTYPE);

uint32_t delayMS;

void setup() {
  Serial.begin(9600); 
  pinMode (3, OUTPUT);  pinMode(4, OUTPUT);   digitalWrite(3, HIGH);  digitalWrite(4,LOW);

  //Initialize lcd
    lcd.begin();
  // Initialize device.
  dht.begin();
  sensor_t sensor;
  dht.temperature().getSensor(&sensor);
  dht.humidity().getSensor(&sensor);
  delayMS = sensor.min_delay / 1000;
}

void loop() {
  // Delay between measurements.
  delay(delayMS);
  // Get temperature event and print its value.
  sensors_event_t event;  
  
  // Get humidity event and print its value.
  dht.humidity().getEvent(&event);
  if (isnan(event.relative_humidity)) {
    //Serial.println("Error reading humidity!");  //pour debbug
  }
  else {
    //Serial.print("Humidity: ");           //pour debbug
    //Serial.print(event.relative_humidity);           //pour debbug
    //Serial.println("%");           //pour debbug
  lcd.clearBuffer();
  lcd.setFont(u8g2_font_logisoso32_tr);
  lcd.setCursor(0,32);
  dht.humidity().getEvent(&event);
  String relhString = String(event.relative_humidity);
  relhString = relhString.substring(0,2);   //précision moins de 1% inutile
  lcd.print(relhString); lcd.print("%");
  dht.temperature().getEvent(&event);
  String tempString = String(event.temperature);
  tempString = tempString.substring(0,2);   //précision moins de 1% inutile
  lcd.print(tempString); lcd.print("°C");
  lcd.sendBuffer();
  }
}


Résultats

Le dispositif de mesure est placé dans la boîte étanche utilisée pour le stockage de la bobine et l'atmosphère intérieure est desséchée par 500 g de gel de silice. Après environ 15 minutes d'attente, le degré d'hygrométrie se stabilise aux alentours de 16% ce qui montre que le desséchant fait bien son travail et que l'atmosphère intérieure est suffisamment sèche pour conserver dans de bonnes conditions les filaments tels que le PLA.  Il est très intéressant d'utiliser un module bluetooth HC06 pour communiquer les résultats à une unité centrale extérieure à la Dry Box, surtout si celle-ci n'est pas faite d'un matériaux translucide. A suivre donc...


Le stockage des filament doit se faire dans une atmosphère sèche
L'hygromètre arduino placé à l'intérieur du caisson de séchage indique 16%, ce qui est satisfaisant pour désècher les filaments d'imprimante 3D
Autres capteurs plus précis

  • DHT22 T only and precision 0.1 C environ 3€
  • BMP180 P T et H
  • BME680 P T et H et VOC 
  • AHT10 T et H    I2C 1€82
  • SHT21 module GY-21 T et H
  • SI7021 convient pour 3.3V Ali  wiki T et H
  • HTU21D T et H
  • CCS811 HDC1080 dioxyde de carbone CO2 capteur de température et d'humidité cov moniteur de qualité de l'air capteur Module enrouleur T et H


Aucun commentaire:

Enregistrer un commentaire