Sondes, Prototypes, Récepteurs, Antennes et Mesures des batteries.
Publié : 08 mars 2018, 00:18
Bonjour,
Cela fait quelque temps que je parcours ce site et son forum, ce qui m'a permis de me lancer dans le test de Domoticz, RFLink et MySensors, avec quelques prototypes. Pour l' instant, je ne fais que lire des sondes Oregon d' une ancienne station météo et des MySensors de ma fabrication. Comme j' ai profité de la lecture d'articles du forum et du site il me semble juste de publier ce que j' ai réalisé, même si cela ne devait intéresser qu'une seule personne.
Serveur:
Pour la base RaspberryPi c'est simple, une Raspbian et installation de Domoticz v3.8153 avec Curl, c'est bien expliqué sur le site.
RFLink
Passerelle RFLink:
Là, comme tout est expliqué pour des logiciels "non-libres" pleins de .exe j'ai dû travailler Avrdude et j'ai chargé un ArduinoMéga avec la version R46 à partir de ma Debian Jessie en ligne de commande. Alimentation par l' USB du RaspberryPi.
Récepteur 433Mhz:
J'ai testé deux récepteurs 433, un chinois très décrié, et un AUREL qui traînait dans un tiroir depuis 15 ans.
Le chinois marchotte moyennement, mais permet de vérifier que les sondes Oregon sont bien reçues par RFLink et enregistrées par Domoticz.
L' AUREL pas beaucoup mieux, mais ce sont des pros et ils ont un site où on trouve la doc de leurs produits avec courbe sensibilité / fréquence et conseils de mise en oeuvre. Et là, ils disent qu'il faut soigner le blindage des récepteur pour éviter le brouillard RF émis par les micro-contrôleurs. N'ayant pas de feuillard étamé, j' ai cassé un tuner TV avec deux faces emboîtées, et remplacé le contenu par un récepteur 433, les trois fils (+, -, données) sortent par un des multiples trous du boiter et l'antenne va sur une prise coax TV. Résultat, ça marche bien mieux, même pour le chinois, qui devient utilisable. J'ai laissé l'AUREL qui est meilleur, je suppose que la sensibilité affichée -105dB est plus réelle et la qualité de fabrication meilleure que celle du chinois. Mais inutile de jeter le chinois, blindez-le.
Antenne 433Mhz:
Une antenne 1/4 d'onde (162mm) sur une embase BNC avec 3 brins à -45° comme plan de sol est un dessin qui produit une impédance de 50 ohms, juste ce qu'il faut et pour le câble, récupération d'un bout d' Ethernet fin, en réception la longueur n'est pas critique, avec une BNC et une prise TV pour connecter au récepteur "blindé".
MySensors
Passerelle MySensors:
J' ai utilisé un Arduino (Atmel 328p) Nano 5v 16Mhz alimenté par l' USB du RaspberryPi. Sur un circuit imprimé simple face (fait maison) avec bouton "reset" et diodes Rx Tx et Err, régulateur 3.3v et condos et connecteur pour le NRF24L01. Sondes MySensors:
Là, ce sont des Arduino ProMini (Atmel 328p sans la diode et le régulateur) 3.3v 8Mhz alimenté par batterie LiION. Sur un circuit imprimé simple face (fait maison) avec régulateur 3.3v, condensateurs, connecteur pour le NRF24L01, pont de mesure batterie sur A0, et connexions possibles sur D3 à D8 et A6-A7. Le régulateur est un ST LE33 3.3v 100mA max, chute de tension 0,2v et 500µA de consommation quand l' Atmel 328p est en mode veille (sleep). La batterie est une cellule de récupération d' ordinateur portable 3,7v nominal 4.1v à "pleine" charge, donc avec un LE33 on peut l' utiliser jusqu' a 3.5v.
Pour faire mieux, il faudrait employer un STLQ015M33R 3.3v 85mA max, chute de tension 0,112v et 1µA de consommation quand l' Atmel 328p est en mode veille (sleep). Ces montages ne sont pas très compacts, mais très modulaires et adaptables à tout types de capteurs. Cela convient bien pour mes prototypes. Actuellement 5 sondes MySensors sont en service 4 avec DHT22/AM2302 et une avec DS18B20 j'en ai 4 autres en préparation, état d'un puisard (arrêt, niveau 1 pompe en marche, niveau 2 alarme), niveau de fioul, état d'un chaudière fioul (arrêt, marche brûleur, alarme). Les composants sont récupérés sauf Arduino, NRF24, DHT,18B20, LE33 et supports Arduino. Le reste provient d' alimentations de PC en panne comme le cuivre des antennes, fil émaillé de 0.8 ou 1mm des inductances de sortie. Comme je fais mes circuits moi-même, je préfère le simple face. J' utilise KiCad, je route à la main, et j'utilise la fonction double face (pistes rouges) pour les ponts. En général, j' arrive à quelques ponts (ici trois). Pour la fabrication, export du CI de KiCad en svg, impression laser sur HP4 avec papier "JetEncre" de 70gr report sur cuivre avec un fer à repasser très très chaud, et gravure -Eau 20ml, HCl 20ml, Eau oxygénée 20ml- . Reste à nettoyer à l' acétone. Donc 100 cm2 pour 60ml de solution en 2 minutes chrono. En tout, environ 30 minutes pour 100 cm2 entre l'impression laser et le produit fini. La qualité est relative mais largement suffisante pour mes prototypes.
Mesure tension batterie:
J' ai essayé et abandonné le pourcentage, puis j' ai créé des enfants MULTIMETER à chaque noeud avec une variable V_VOLTAGE. Ça, c'est bien pratique dans MySensors on attibue un n° de noeud à une sonde et on peut changer la batterie sans se demander où elle va ré-apparaître comme la plupart du temps avec les sondes du commerce (Oregon etc...). Avec la référence interne 1.1v le résultat est très décevant valeurs erratiques et sous la valeur réelle, et j'ai lu quelque part sur le forum (mais je ne le retrouve pas) que la précision de ce 1.1v serait de ±10% donc j' ai changé de méthode avec comme référence DEFAULT qui utilise la tension d'alimentation, ici 3.3v plus précise avec le LE33. Comme les résistances du pont 1M R1 et 330K R2 sont de récupération à 5% je les ai toutes mesurées en rapport avec le n° de noeud de la sonde. Dans le programme général, j'utilise le couple du noeud pour calculer le coefficient à multiplier par le résultat de la mesure sur A0.
La formule est : ( (R1+R2)/R2 *3.3/1023 ) et le résultat s'affiche en mV dans une zone de 30mV autour de la valeur réelle (mesurée).
Enfin, pour peu que l'on ai mis le type 38 dans l' envoi du message (send( msg ... (variable, 38)). NRF24L01:
Le NRF24L01 fonctionne au choix sur 125 canaux de 1Mhz de largeur de bande entre 2400 et 2525Mhz. Au maximum d'émission à 0dBm soit 1mW on a aussi la possibilité d'émettre à -6, -12 et -18dBm. Mais cette bande de fréquence est encombrée par pas mal de produits, des fours à micro-ondes (1KW à l'intérieur et on peut compter sur quelques petites fuites) au Wifi qui émet à 20 dBm soit 100 mW entre 2400 et 2485Mhz. Le canal par défaut sue MySensors c'est le 76 donc 2477Mhz (oui, le premier canal c'est le 0 -zéro-) en plein dans le Wifi, il vaut mieux taper au dessus du 90. On met les paramètres par défaut choisis, tels canal, puissance d'émission et débit de transmission.
Antennes:
Les antennes des NRF24L01 ne sont pas fiables au delà de 3 à 5 mètres, j'ai essayé d'en savoir plus sur ce type d'antennes. Je n' ai pas trouvé grand chose. J' ai fini par tomber sur deux thèses d'ingénieurs traitant du sujet. Deux cent pages de formules incompréhensibles pour moi ... mais dans un coin, une explication en langage courant sur les avantages et inconvénients de ce type d'antennes. Ce sont en réalité des 1/4 ou 5/8 d' ondes repliées qui ont pour avantage un très faible prix de fabrication, une très bonne reproductibilité et une excellente solidité mais un rendement qui n' atteint pas les 50% et un diagramme de rayonnement qui ressemble vaguement à une sphère "patatoïde".
J' ai essayé de remplacer l'antenne imprimée par un dipôle, ou des Yagi-Uda (Celles que les présentateurs(trices) de JT nomment "rateau") dipôle + réflecteur (gain 3dB) ou dipôle + réflecteur + 2 directeurs (gain 8dB). Là, je passe 15 mètres, un plancher hourdis béton et deux murs de 20cm en parpaings pleins.
Les boîtiers, "booms" d' antennes et supports sont imprimés en PLA.
Rpx.
PS: Hidetsugu Yagi et Shintarō Uda deux japonais qui dans les années 20 (1920) ont inventé et mis au point ce type d'antenne.
Cela fait quelque temps que je parcours ce site et son forum, ce qui m'a permis de me lancer dans le test de Domoticz, RFLink et MySensors, avec quelques prototypes. Pour l' instant, je ne fais que lire des sondes Oregon d' une ancienne station météo et des MySensors de ma fabrication. Comme j' ai profité de la lecture d'articles du forum et du site il me semble juste de publier ce que j' ai réalisé, même si cela ne devait intéresser qu'une seule personne.
Serveur:
Pour la base RaspberryPi c'est simple, une Raspbian et installation de Domoticz v3.8153 avec Curl, c'est bien expliqué sur le site.
RFLink
Passerelle RFLink:
Là, comme tout est expliqué pour des logiciels "non-libres" pleins de .exe j'ai dû travailler Avrdude et j'ai chargé un ArduinoMéga avec la version R46 à partir de ma Debian Jessie en ligne de commande. Alimentation par l' USB du RaspberryPi.
Récepteur 433Mhz:
J'ai testé deux récepteurs 433, un chinois très décrié, et un AUREL qui traînait dans un tiroir depuis 15 ans.
Le chinois marchotte moyennement, mais permet de vérifier que les sondes Oregon sont bien reçues par RFLink et enregistrées par Domoticz.
L' AUREL pas beaucoup mieux, mais ce sont des pros et ils ont un site où on trouve la doc de leurs produits avec courbe sensibilité / fréquence et conseils de mise en oeuvre. Et là, ils disent qu'il faut soigner le blindage des récepteur pour éviter le brouillard RF émis par les micro-contrôleurs. N'ayant pas de feuillard étamé, j' ai cassé un tuner TV avec deux faces emboîtées, et remplacé le contenu par un récepteur 433, les trois fils (+, -, données) sortent par un des multiples trous du boiter et l'antenne va sur une prise coax TV. Résultat, ça marche bien mieux, même pour le chinois, qui devient utilisable. J'ai laissé l'AUREL qui est meilleur, je suppose que la sensibilité affichée -105dB est plus réelle et la qualité de fabrication meilleure que celle du chinois. Mais inutile de jeter le chinois, blindez-le.
Antenne 433Mhz:
Une antenne 1/4 d'onde (162mm) sur une embase BNC avec 3 brins à -45° comme plan de sol est un dessin qui produit une impédance de 50 ohms, juste ce qu'il faut et pour le câble, récupération d'un bout d' Ethernet fin, en réception la longueur n'est pas critique, avec une BNC et une prise TV pour connecter au récepteur "blindé".
MySensors
Passerelle MySensors:
J' ai utilisé un Arduino (Atmel 328p) Nano 5v 16Mhz alimenté par l' USB du RaspberryPi. Sur un circuit imprimé simple face (fait maison) avec bouton "reset" et diodes Rx Tx et Err, régulateur 3.3v et condos et connecteur pour le NRF24L01. Sondes MySensors:
Là, ce sont des Arduino ProMini (Atmel 328p sans la diode et le régulateur) 3.3v 8Mhz alimenté par batterie LiION. Sur un circuit imprimé simple face (fait maison) avec régulateur 3.3v, condensateurs, connecteur pour le NRF24L01, pont de mesure batterie sur A0, et connexions possibles sur D3 à D8 et A6-A7. Le régulateur est un ST LE33 3.3v 100mA max, chute de tension 0,2v et 500µA de consommation quand l' Atmel 328p est en mode veille (sleep). La batterie est une cellule de récupération d' ordinateur portable 3,7v nominal 4.1v à "pleine" charge, donc avec un LE33 on peut l' utiliser jusqu' a 3.5v.
Pour faire mieux, il faudrait employer un STLQ015M33R 3.3v 85mA max, chute de tension 0,112v et 1µA de consommation quand l' Atmel 328p est en mode veille (sleep). Ces montages ne sont pas très compacts, mais très modulaires et adaptables à tout types de capteurs. Cela convient bien pour mes prototypes. Actuellement 5 sondes MySensors sont en service 4 avec DHT22/AM2302 et une avec DS18B20 j'en ai 4 autres en préparation, état d'un puisard (arrêt, niveau 1 pompe en marche, niveau 2 alarme), niveau de fioul, état d'un chaudière fioul (arrêt, marche brûleur, alarme). Les composants sont récupérés sauf Arduino, NRF24, DHT,18B20, LE33 et supports Arduino. Le reste provient d' alimentations de PC en panne comme le cuivre des antennes, fil émaillé de 0.8 ou 1mm des inductances de sortie. Comme je fais mes circuits moi-même, je préfère le simple face. J' utilise KiCad, je route à la main, et j'utilise la fonction double face (pistes rouges) pour les ponts. En général, j' arrive à quelques ponts (ici trois). Pour la fabrication, export du CI de KiCad en svg, impression laser sur HP4 avec papier "JetEncre" de 70gr report sur cuivre avec un fer à repasser très très chaud, et gravure -Eau 20ml, HCl 20ml, Eau oxygénée 20ml- . Reste à nettoyer à l' acétone. Donc 100 cm2 pour 60ml de solution en 2 minutes chrono. En tout, environ 30 minutes pour 100 cm2 entre l'impression laser et le produit fini. La qualité est relative mais largement suffisante pour mes prototypes.
Mesure tension batterie:
J' ai essayé et abandonné le pourcentage, puis j' ai créé des enfants MULTIMETER à chaque noeud avec une variable V_VOLTAGE. Ça, c'est bien pratique dans MySensors on attibue un n° de noeud à une sonde et on peut changer la batterie sans se demander où elle va ré-apparaître comme la plupart du temps avec les sondes du commerce (Oregon etc...). Avec la référence interne 1.1v le résultat est très décevant valeurs erratiques et sous la valeur réelle, et j'ai lu quelque part sur le forum (mais je ne le retrouve pas) que la précision de ce 1.1v serait de ±10% donc j' ai changé de méthode avec comme référence DEFAULT qui utilise la tension d'alimentation, ici 3.3v plus précise avec le LE33. Comme les résistances du pont 1M R1 et 330K R2 sont de récupération à 5% je les ai toutes mesurées en rapport avec le n° de noeud de la sonde. Dans le programme général, j'utilise le couple du noeud pour calculer le coefficient à multiplier par le résultat de la mesure sur A0.
La formule est : ( (R1+R2)/R2 *3.3/1023 ) et le résultat s'affiche en mV dans une zone de 30mV autour de la valeur réelle (mesurée).
Enfin, pour peu que l'on ai mis le type 38 dans l' envoi du message (send( msg ... (variable, 38)). NRF24L01:
Le NRF24L01 fonctionne au choix sur 125 canaux de 1Mhz de largeur de bande entre 2400 et 2525Mhz. Au maximum d'émission à 0dBm soit 1mW on a aussi la possibilité d'émettre à -6, -12 et -18dBm. Mais cette bande de fréquence est encombrée par pas mal de produits, des fours à micro-ondes (1KW à l'intérieur et on peut compter sur quelques petites fuites) au Wifi qui émet à 20 dBm soit 100 mW entre 2400 et 2485Mhz. Le canal par défaut sue MySensors c'est le 76 donc 2477Mhz (oui, le premier canal c'est le 0 -zéro-) en plein dans le Wifi, il vaut mieux taper au dessus du 90. On met les paramètres par défaut choisis, tels canal, puissance d'émission et débit de transmission.
Code : Tout sélectionner
Modifications dans MyConfig.h après avoir conservé une copie du fichier original
/**
* @def MY_RF24_PA_LEVEL
* @brief Default RF24 PA level. Override in sketch if needed.
*
* RF24_PA_LOW = -18dBm
* RF24_PA_MID = -12dBm
* RF24_PA_HIGH = -6dBm
* RF24_PA_MAX = 0dBm
*/
#ifndef MY_RF24_PA_LEVEL
#define MY_RF24_PA_LEVEL RF24_PA_MAX //Modifié 18/7/2017
//#define MY_RF24_PA_LEVEL RF24_PA_HIGH //original
#endif
/**
* @def MY_RF24_CHANNEL
* @brief RF channel for the sensor net, 0-125.
* Frequence: 2400 Mhz - 2525 Mhz Channels: 126
* http://www.mysensors.org/radio/nRF24L01Plus.pdf
* 0 => 2400 Mhz (RF24 channel 1)
* 1 => 2401 Mhz (RF24 channel 2)
* 76 => 2476 Mhz (RF24 channel 77)
* 83 => 2483 Mhz (RF24 channel 84)
* 124 => 2524 Mhz (RF24 channel 125)
* 125 => 2525 Mhz (RF24 channel 126)
* In some countries there might be limitations, in Germany for example only the range 2400,0 - 2483,5 Mhz is allowed
* http://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Frequenzen/Allgemeinzuteilungen/2013_10_WLAN_2,4GHz_pdf.pdf
*/
#ifndef MY_RF24_CHANNEL
#define MY_RF24_CHANNEL 96 //Modifié 18/7/2017 canal 97
//#define MY_RF24_CHANNEL 76 //Valeur par défaut
#endif
/**
* @def MY_RF24_DATARATE
* @brief RF24 datarate (RF24_250KBPS for 250kbs, RF24_1MBPS for 1Mbps or RF24_2MBPS for 2Mbps).
*/
#ifndef MY_RF24_DATARATE
#define MY_RF24_DATARATE RF24_250KBPS //Valeur par défaut conservée
#endif
Les antennes des NRF24L01 ne sont pas fiables au delà de 3 à 5 mètres, j'ai essayé d'en savoir plus sur ce type d'antennes. Je n' ai pas trouvé grand chose. J' ai fini par tomber sur deux thèses d'ingénieurs traitant du sujet. Deux cent pages de formules incompréhensibles pour moi ... mais dans un coin, une explication en langage courant sur les avantages et inconvénients de ce type d'antennes. Ce sont en réalité des 1/4 ou 5/8 d' ondes repliées qui ont pour avantage un très faible prix de fabrication, une très bonne reproductibilité et une excellente solidité mais un rendement qui n' atteint pas les 50% et un diagramme de rayonnement qui ressemble vaguement à une sphère "patatoïde".
J' ai essayé de remplacer l'antenne imprimée par un dipôle, ou des Yagi-Uda (Celles que les présentateurs(trices) de JT nomment "rateau") dipôle + réflecteur (gain 3dB) ou dipôle + réflecteur + 2 directeurs (gain 8dB). Là, je passe 15 mètres, un plancher hourdis béton et deux murs de 20cm en parpaings pleins.
Les boîtiers, "booms" d' antennes et supports sont imprimés en PLA.
Rpx.
PS: Hidetsugu Yagi et Shintarō Uda deux japonais qui dans les années 20 (1920) ont inventé et mis au point ce type d'antenne.