Aie mon pare choc

En reculant le pare choc avant de la 308 a heurté une borne basse et s’est arraché sur le côté droit du véhicule. Il s’est détaché d’une dizaine de centimètres du véhicule. En démontant, je me rends compte que les pièces de fixations en plastique sont cassées en de multiples endroits. Le pare choc est déposé assez facilement après le retrait de quelques vis de fixation.

Sur la photo suivante, on voit l’un des supports de fixation qui est cassé en de multiples endroits. Les « rondelles de fixation » sont arrachées du support principal. C’est surement une pièce « fusible » pour éviter de forcer sur des parties de carrosserie plus couteuses.

On peut voir en bas de la photo une « languette » de fixation du parechoc.

Première étape, une petite pièce de fixation en tôle d’aluminium est formée puis rivetée sur le pare choc.

Elle est mise en forme avec la presse pour respecter la position initiale.

Deuxième étape, le pare choc est légèrement déchiré sur le dessous. Une petite plaque en alu viendra renforcer la zone abimée. Cette réparation reste invisible sauf à passer sous le véhicule.

Etape 3, des rondelles sont imprimées en 3D avec deux languettes de fixation pour casser en cas de nouveau choc. Simple et efficace.

La deuxième partie du support est très abimée, elle est cassée en de multiples endroits. Je décide de la réparer à l’aide de fils de laiton mis en forme et chauffés pour être inclus dans le plastique. C’est pas très beau mais c’est très efficace et solide. La pièce ne bouge pas et résiste aux contraintes en la tordant à la main. Ce sera suffisant pour ce type de fixation.

La pièce est remontée avec succès sur le véhicule.

Comme on le voit sur la photo, tout est aligné, aucun jeu. C’est parfait, la réparation ne se voit absolument pas.

Et voilà le travail 😉

Bien entendu j’aurais pu commander les pièces d’origine, mais il aurait fallu faire une réparation temporaire pour pouvoir circuler en attendant et tout redémonter à la réception des pièces. J’ai choisi la voie DIY, en 2h le problème était réglé !

Endoscope d’inspection, là où l’œil ne passe pas…

Dans bien des bricolages, que ce soit des travaux dans la maison ou de la mécanique sur un véhicule, il y a des zones inaccessibles où l’on aimerait bien jeter un œil. Il existe une multitude d’endoscopes usb ou wifi provenant tous de Chine pour un prix assez bas. J’en ai choisi un de la marque depstech pour 3 raisons:

  • La qualité d’image très correcte
  • Le fil de guidage long et rigide
  • la connexion Wifi

Lien pour commander sur Amazon: https://amzn.to/37UoDbN

Il s’avère être un bon choix bien pratique. Par contre comme souvent, les applications fournies ne sont vraiment pas terribles. Ce serait vraiment bien de pouvoir utiliser VLC par exemple pour accéder au flux vidéo. Après une recherche rapide, c’est possible !

Regardez donc !

Une fois allumée, la caméra va créer un réseau wifi tout simple:

Le mot de passe hyper sécurisé est noté dans le manuel: 12345678

Une fois connecté, on peut récupérer les infos de connexion en console (je suis sous linux mais on peut faire pareil avec n’importe quel OS)

L’ip de la caméra est notre route par défaut: 192.168.52.1

Scannons maintenant pour voir sur quels ports elle écoute une éventuelle application

Tiens un port 23 ? Telnet ?

Excellent ! Une console linux et il n’y a même pas de mot de passe. Facile 🙂

Voyons ce qui écoute sur ces ports:

une « my_app » utilise les ports 8080 et 8888.

je parcours les répertoires et trouve un dossier www. Intéressant, voilà le contenu du fichier index.html

Encore mieux, une URL avec les paramètres. Et donc VLC pourrait fonctionner ?

Essayons en ouvrant un flux réseau.

Bingo ! Le flux est parfaitement accessible. L’application officielle est donc inutile. Un simple VLC que ce soit sur smartphone ou PC suffit à exploiter les images de la caméra.

A voir la qualité dans la durée, mais pour l’instant c’est pleinement satisfaisant.

Mets un ESP8266 dans ton frigo !

Suite à un incident avec le congélateur (porte mal refermée), ça fait un moment que je voulais mettre une sonde de température avec une alarme. Le Frigo est lui-même dôté d’une alarme, mais celle-ci n’indique pas correctement s’il y a eu un incident sur le maintient de la chaîne du froid.

J’ai un peu cherché des sondes « toutes faites » mais elles ne me semblaient pas très fiables notamment avec les piles qui doivent supporter des températures de l’ordre de -18°C.

Pourquoi ne pas créer son propre système ? J’ai un ESP8266 (WeMos) de disponible et quelques sondes DS18B20 étanches.

Je passe les sondes dans le compartiment congélation en passant par le passe câble en mousse de la sonde d’origine.

Idem pour la partie réfrigérateur. Là, il faut démonter un cache en plastique pour passer le capteur.

Le branchement des capteurs 1-Wire est extrêmement simple, il suffit des les connecter à la Masse (fil noir), au +3/3v (fil rouge) et le fil de données en D4 sur l’ESP8266. Il faut aussi placer une résistance de 4.7 kOhms entre le +3.3v et D4. Une petite recherche sur internet permet de trouver rapidement les schémas de branchement. Je me suis largement inspiré de cet article.

L’ESP est placé sur une carte perforée pour que ce soit plus « propre ».

Le tout est attaché dans un petit boitier plastique sur les grilles derrière le frigo. Ces grilles sont chaudes mais pas suffisamment pour perturber le fonctionnement de l’ESP, même en plein été.

Voilà pour la partie matériel. Maintenant, il s’agit de programmer l’ESP pour qu’il récupère les informations de température toutes les 30s et qu’il les transmette à mon serveur Domoticz.

Sur le raspberry qui héberge Domoticz, j’installe le serveur MQTT mosquitto. C’est lui qui recevra les messages de l’ESP et qui les transmettra à Domoticz.

sudo apt install mosquitto mosquitto-clients

Sur domoticz, il faut rajouter un matériel MQTT

Puis un périphérique virtuel correspondant au capteur de température (2 dans mon cas)

Quand le capteur est créé, on peut voir son ID dans la barre d’adresse du navigateur. Cet ID (2762 ici) est à noter, il sera utilisé dans le code de l’ESP.

Voici le code à compiler dans l’ESP. Vous aurez besoin de l’IDE arduino configuré pour accepter des cartes ESP8266, ainsi que des différentes librairies utilisées dans le code: PubSubClient, WifiManager, OneWire, DallasTemperature.

Il vous faudra adapter dans le code l’ip de domoticz, le port MQTT, les deux ID des capteurs dans domoticz et les adresses 1-Wire de vos 2 capteurs. Les adresses découvertes sur le BUS 1-wire sont affichée sur la console série au démarrage du module.

Pour la connexion réseau, j’utilise la librairie Wifi manager qui créé un réseau Wifi (AutoConnectAP) avec une interface web pour réaliser le paramétrage depuis votre téléphone. C’est simplissime !

#include <PubSubClient.h>
#include <ESP8266WiFi.h> //https://github.com/esp8266/Arduino
//needed for library
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h> //https://github.com/tzapu/WiFiManager
#include <OneWire.h>
#include <DallasTemperature.h>


#define ONE_WIRE_BUS D4
#define TEMPERATURE_PRECISION 10
byte i;
byte type_s;
byte data[12];
byte addr[8];
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
WiFiClient espClient;
PubSubClient client(espClient);


// Valeurs à adapter à votre configuration
const char* host = « 192.168.0.19 »;
const int port = 1883;
#define IDX_sensor1 2762
#define IDX_sensor2 2763
// Tableaux contenant l’adresse de chaque sonde OneWire | arrays to hold device addresses
DeviceAddress sensor1 = { 0x28, 0x4E, 0xCF, 0x80, 0x3A, 0x19, 0x1, 0x58 };
DeviceAddress sensor2 = { 0x28, 0xD7, 0x9A, 0x7B, 0x3A, 0x19, 0x1, 0xDD };


// Reconnexion au serveur MQTT
void reconnect() {
// Loop until we’re reconnected
while (!client.connected()) {
Serial.print(« Attempting MQTT connection… »);
// Create a random client ID
String clientId = « ESP8266Client-« ;
clientId += String(random(0xffff), HEX);
// Attempt to connect
if (client.connect(clientId.c_str())) {
Serial.println(« connected »);
// … and resubscribe
client.subscribe(« domoticz/in »);
} else {
Serial.print(« failed, rc= »);
Serial.print(client.state());
Serial.println( » try again in 5 seconds »);
// Wait 5 seconds before retrying
delay(5000);
}
}
}

// Liste les périphériques 1-Wire
void OneWireScanner() {
if ( !oneWire.search(addr)) {
Serial.println(« No more addresses. »);
Serial.println();
oneWire.reset_search();
return;
}

Serial.print(« ROM = « );
for ( i = 0; i < 8; i++) {
Serial.write(‘ ‘);
Serial.print(« 0x »);
Serial.print(addr[i], HEX);
if ( i != 7 ) {
Serial.print(« , « );
}
}

if (OneWire::crc8(addr, 7) != addr[7]) {
Serial.println(« CRC is not valid! »);
return;
}
Serial.println();

// the first ROM byte indicates which chip
switch (addr[0]) {
case 0x10:
Serial.println( » Chip = DS18S20″); // or old DS1820
type_s = 1;
break;
case 0x28:
Serial.println( » Chip = DS18B20″);
type_s = 0;
break;
case 0x22:
Serial.println( » Chip = DS1822″);
type_s = 0;
break;
default:
Serial.println(« Device is not a DS18x20 family device. »);
return;
}
}

// Envoie les températures via MQTT
void sendTemp(int IDX, DeviceAddress addr)
{
sensors.requestTemperatures();
float temp = sensors.getTempC(addr);
if (temp == -127.00) {
Serial.println(« Error getting temperature on id  » + String(IDX));
}
else
{
String msg = « { \ »idx\ » : » + String(IDX) + « , \ »nvalue\ » : 0, \ »svalue\ » : \ » » + String(temp) + « \ »} »;
char buf[msg.length() + 1];
msg.toCharArray(buf, msg.length() + 1);
Serial.println(temp);
Serial.println(msg);
Serial.println(buf);
client.publish(« domoticz/in », buf);
}

}


void setup() {
Serial.begin(115200);
// Connexion au Wifi
WiFiManager wifiManager;
wifiManager.autoConnect(« AutoConnectAP »);
Serial.println(« connected… 🙂 »);
client.setServer(host, 1883);

OneWireScanner();

sensors.begin();
// locate devices on the bus
Serial.print(« Locating devices… »);
Serial.print(« Found « );
Serial.print(sensors.getDeviceCount(), DEC);
Serial.println( » devices. »);

// report parasite power requirements
Serial.print(« Parasite power is: « );
if (sensors.isParasitePowerMode()) Serial.println(« ON »);
else Serial.println(« OFF »);

// Vérifie sir les capteurs sont connectés | check and report if sensors are conneted
if (!sensors.getAddress(sensor1, 0)) Serial.println(« Unable to find address for Device 0 »);
if (!sensors.getAddress(sensor2, 1)) Serial.println(« Unable to find address for Device 1 »);

// set the resolution to 9 bit per device
sensors.setResolution(sensor1, TEMPERATURE_PRECISION);
sensors.setResolution(sensor2, TEMPERATURE_PRECISION);

// On vérifie que le capteur st correctement configuré | Check that ensor is correctly configured
Serial.print(« Device 0 Resolution: « );
Serial.print(sensors.getResolution(sensor1), DEC);
Serial.println();

Serial.print(« Device 1 Resolution: « );
Serial.print(sensors.getResolution(sensor2), DEC);
Serial.println();
}

void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
sendTemp(IDX_sensor1, sensor1);
sendTemp(IDX_sensor2, sensor2);
delay(30000);
}

Si tout fonctionne comme prévu, vous verrez vos capteurs se mettre à jour dans domoticz.

Un petit Blocky permet de gérer l’alarme:

Si la température dépasse -10°C je suis notifié sur mon téléphone. Et en plus de l’alarme, on dispose d’un suivi de la chaîne du froid.

WC suspendus, il était temps…

Depuis quelques années, je rénove notre maison. Un des chantier qui me reste, les WC. Ils sont dans leur jus, avec un charmant carrelage jaune. La cuvette n’est pas terrible et l’évacuation hasardeuse. Bref, il est temps de s’en débarrasser. Comme toujours, en rénovation, les choses peuvent être un peu plus compliquées que prévu.

Oh, que c’est beau !

Démolition, ça c’est facile et ça va assez vite.

Le radiateur est vidangé et déposé. Il sera décapé et repeint.

On continue à supprimer l’ancienne faience.

Les murs sont repris au plâtre et ensuite à l’enduit.

Le bati support et positionné pour prendre les mesures et vérifier les éventuels problèmes.

Et voilà, on arrive dans les imprévus, l’alimentation en eau de l’ancien WC arrive pile contre le pied du bati. A l’époque, ils faisaient courir les tuyaux dans la chape., mais où ? Si je perçe le tuyau j’ai gagné ma journée et des ennuis à répétition (même si j’ai tout ce qu’il faut pour réparer).

Je prends le plan B, on vire la chape et on repasse un nouveau tuyau.

Ah ah, il passait juste sous un des boulons du pied. si j’avais percé, il n’aurait pas fallu aller trop bas.

Régréage du sol. Surtout pour les pieds du bati. Sur le reste, je vais faire une chape sèche fermacell qui va rattraper les éventuels écarts de niveau.

Le nouveau lave main prend place pour être sûr des passages de tuyaux. Soit je fais un passage encastré mais ce n’est pas très conforme au DTU, soit je fais en apparent mais l’évacuation est haute, ça va vraiment se voir 🙁

Option 1, tant pis pour le DTU. Je fais une petite saignée dans la brique platrière pour passer l’évacuation en 32 et l’arrivée d’eau.

Cintrage et présentation des tuyaux au programme. Je révise le cintrage et regardant les excellentes vidéos de Laurent (LJVS). Et j’essaye du mieux possible de faire du bon boulot. Quand on est un bricolo du dimanche, c’est surtout l’expérience qui nous manque.

On continue le cintrage dans tous les sens pour arriver à rattraper l’ancien tuyau qui passe contre ce mur.

Voilà, tout passe. Maintenant il faut braser tout ça.

ça prend forme, on peut même tester l’évacuation après l’installation de la selle pour le lave main.

On rebouche la saignée

Le placo posé, on s’occupe de la chape sèche.

Avec les plaques, c’est mieux, reste à carreler tout ça.

Voilà c’est fait. Je n’ai pas vu un défaut sur un des carreaux mural. Je le remplacerai un peu plus tard.

Je fais une tablette en sapin sur le haut du chassis

ça marche, et sans fuite :-p

Le radiateur est repeint et reposé.

La porte est préparée puis repeinte.

J’installe un cache pour les tuyaux horizontaux. Je le prolongerai plus tard pour la colonne de chauffage.

Voilà, c’est terminé. Parfait, non, mieux qu’avant, certainement !