Association informatique libre, solidaire

Forum d'échange entre les membres

Vous n'êtes pas identifié(e).

#1 Re : aide concernant un logiciel » [Thunderbird] virer les icônes du titre d'un mail » 2018-11-23 21:37:01

Super trouvaille, Alpine! Je connaissais pas. Du coup, je n'utilise plus thunderbird, et ne peux donc pas répondre à ta question. Désolé!
Mouhahahaha!
Hum. En vrai: non, je ne sais pas...

#3 Arduino » relevé de températures dans les pièces » 2018-10-29 09:48:55

Benoît
Réponses : 0

Hello à tous,

Pour ceux que ça intéresse, voici un récap de mon utilisation d'un ESP-01 raccordé à des sondes étanches de température, DS18b20.

Le programme utilisé:

/***********************************************************
 * lecture températures chambres / salle de bain / couloir *										   *
 *														   *
 ***********************************************************/

#include <OneWire.h>
#include <DallasTemperature.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <PubSubClient.h>

// Data wire is plugged into port 4 on the Arduino or ESP32
#define ONE_WIRE_BUS 2 //branché sur GPIO2
#define TEMPERATURE_PRECISION 10

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

/* Adresses des capteurs de température */
DeviceAddress chambrPar = { 0x28, 0xFF, 0xD4, 0x18, 0x00, 0x17, 0x05, 0x90 };    // Num°1 Chambre parentale Idx=8
DeviceAddress salleBain = { 0x28, 0xFF, 0x05, 0x36, 0x00, 0x17, 0x05, 0x66 };   // Num°2 Salle de bain Idx=6
DeviceAddress chambEnf = { 0x28, 0xFF, 0xDA, 0xB4, 0x02, 0x17, 0x04, 0x98 }; // Num°3 Chambre Enfant Idx=9
DeviceAddress couLoir = { 0x28, 0xFF, 0x89, 0x26, 0x02, 0x17, 0x05, 0xFB };   // Num°4 Couloir Idx=10

// Parametres WIFI - WiFi settings
#define wifi_ssid "MonSSID"
#define wifi_password "MonSuperMotDePasse"

// Paramètres HTTP Domoticz - HTTP Domoticz settings
const char* host = "192.168.1.98764";
const int   port = 8080;
#define IDX_chambrPar 8
#define IDX_salleBain 6
#define IDX_chambEnf 9
#define IDX_couLoir 10
HTTPClient http;

void setup() {
  // Connexion au réseau WiFi, connexion aux sondes
  setup_wifi();
  sensors.begin();

  // set the resolution to 9 bit per device
  sensors.setResolution(chambrPar, TEMPERATURE_PRECISION);
  sensors.setResolution(salleBain, TEMPERATURE_PRECISION);
  sensors.setResolution(chambEnf, TEMPERATURE_PRECISION);
  sensors.setResolution(couLoir, TEMPERATURE_PRECISION);
}

void printTemperature(String label, DeviceAddress deviceAddress){
  float tempC = sensors.getTempC(deviceAddress);
    // Format JSON à respecter pour l'API Domoticz - Domoticz JSON API
    // /json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP
    // https://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s#Temperature
    if (label == "chambre parents: ") {
	  String url = "/json.htm?type=command&param=udevice&idx=";
	  url += String(IDX_chambrPar);
	  url += "&nvalue=0&svalue=";
	  url += String(tempC);
	  sendToDomoticz(url);
    }
	if (label == "salle de bain : ") {
	  String url = "/json.htm?type=command&param=udevice&idx=";
	  url += String(IDX_salleBain);
	  url += "&nvalue=0&svalue=";
	  url += String(tempC);
	  sendToDomoticz(url);
	  }
	if (label == "chambre Enfant : ") {
	  String url = "/json.htm?type=command&param=udevice&idx=";
	  url += String(IDX_chambEnf);
	  url += "&nvalue=0&svalue=";
	  url += String(tempC);
	  sendToDomoticz(url);
	  }
	if (label == "couloir : ") {
	  String url = "/json.htm?type=command&param=udevice&idx=";
	  url += String(IDX_couLoir);
	  url += "&nvalue=0&svalue=";
	  url += String(tempC);
	  sendToDomoticz(url);
	  }
      
  }

void loop() {
  sensors.requestTemperatures();
  // print the device information
  printTemperature("chambre parents : ", chambrPar);
  delay(2000);
  printTemperature("salle de bain : ", salleBain);
  delay(2000);
  printTemperature("chambre Enfant : ", chambLison);
  delay(2000);
  printTemperature("couloir : ", couLoir);
  delay(60000);
}

//Connexion au réseau WiFi
void setup_wifi() {
  delay(10);
  WiFi.begin(wifi_ssid, wifi_password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
}


void sendToDomoticz(String url){
  http.begin(host,port,url);
  int httpCode = http.GET();
    if (httpCode) {
      if (httpCode == 200) {
        String payload = http.getString();
      }
    }
  http.end();
}

#4 Re : Arduino » création sonde profondeur de puits » 2018-10-03 10:46:03

Des nouvelles de ce capteur.
Déjà, j'ai galéré à comprendre pourquoi quand j'envoyais une mesure avec le protocole rfxCom, je ne recevais pas les mêmes infos.
Par exemple, l'arduino relève 310120, il arrive 336200. Étonnement, puis recherche. J'ai cerné que ce qui était envoyé :

void x10rf::RFXmeter(uint8_t rfxm_address, uint8_t rfxm_packet_type, long rfxm_value){
	uint8_t x10buff[5]; // Set message buffer
	x10buff[0] = rfxm_address;
	x10buff[1] = (~x10buff[0] & 0xF0) + (x10buff[0] & 0xF); // Calculate byte1 (byte 1 complement upper nibble of byte0)
	if (rfxm_value > 0xFFFFFF) rfxm_value = 0; 	// We only have 3 byte for data. Is overflowed set to 0	
	// Packet type goed into MSB nibble of byte 5. Max 15 (B1111) allowed
	// Use switch case to filter invalid data types
	switch(rfxm_packet_type) {
		case 0x00: //Normal. Put counter values in byte 4,2 and 3
			x10buff[4] = (uint8_t) ((rfxm_value >> 16) & 0xff);
			x10buff[2] = (uint8_t) ((rfxm_value >> 8) & 0xff);
			x10buff[3] = (uint8_t) (rfxm_value & 0xff);
			break;
	}
	x10buff[5] = (rfxm_packet_type << 4); 		// Packet type goes into byte 5's upper nibble.
	// Calculate parity which
	uint8_t parity = ~(((x10buff[0] & 0XF0) >> 4) + (x10buff[0] & 0XF) + ((x10buff[1] & 0XF0) >> 4) + (x10buff[1] & 0XF) + ((x10buff[2] & 0XF0) >> 4) + (x10buff[2] & 0XF) + ((x10buff[3] & 0XF0) >> 4) + (x10buff[3] & 0XF) + ((x10buff[4] & 0XF0) >> 4) + (x10buff[4] & 0XF) + ((x10buff[5] & 0XF0) >> 4));
	x10buff[5] = (x10buff[5] & 0xf0) + (parity & 0XF);
	SendCommand(x10buff, sizeof(x10buff)); // Send byte to be broadcasted
}

Et oui, l'envoi est modifié par ça, et c'est Denis qui m'a fourni les clefs de compréhension, je le cite:

Denis MUSET DEPERO a écrit :

x10buff[4] = (uint8_t) ((rfxm_value >> 16) & 0xff);

rfxm_value >> 16 = je décale le contenu de rfxm_value de 16 bits vers la droite (ou bien je divise par 65536).

& 0xff = je fais un ET bit à bit avec un masque dont les 8 derniers bits sont à 1. Je ne garde donc que les 8 derniers bits.

(rfxm_value >> 16) & 0xff = En numérotant de droite à gauche à partir de zéro, j'extrais les bits 16 à 23 de rfxm_value.

(uint8_t) = Je force le résultat à être de type uint8_t qui doit sûrement représenter un caractère sur 8 bits non signé. C'est vraisemblablement que x10buff est un tableau de uint8_t.

x10buff[4] = Je mets le résultat sur la cinquième étagère (la première s'appelle zéro)

Bien bien bien. J'ai compris. Soit, je décode en faisant le chemin inverse, soit je travaille avec les données tel qu'elles arrivent. Dont acte, second choix pour moi. Et là: second souci, mon capteur gonflé... se dégonfle! Voir mon puits perdre toute son eau en une nuit m'a mis la puce à l'oreille. Problème d'étanchéité. Diantre. Colère. (Sacré nom de ù*:§ de +°@ù! de capteur de %µ£=)à !).
Du coup, j'ai tout viré. J'ai juste, dans mon puits, le tuyau avec la bouteille qui sert de crépine, je l'ai percée partout dans le fond pour que l'eau rentre.
C'est génial ça marche et c'est beaucoup plus précis!
Pourquoi faire compliqué alors que le simple marche? Certes, ça heurte mon sens de la complication, mais bon, les faits sont têtus, bref, ça fonctionne du tonnerre. D'autant que j'ai branché le capteur et l'arduino sur le secteur, sinon c'était 1 pile 9V par 48h, ça fini par coûter cher. J'ai tenté des deep sleep, mais ça c'est réservé aux ESP-8266 et consorts...

Aller, pour terminer, le code de mon arduino nano

/******************************************
# Script pour envoyer le niveau d'un puit 
# à partir d'un capteur MPX5500
# et envoi par protocole RFXCOM
#
#
# Ce script utiliser la librairie x10rf 
# Les sources sont là :
# https://github.com/p2baron/x10rf
#
/*******************************************/

// including x10rf library
#include <x10rf.h>

// Autres
#define RF_OUT 4 // OUTPUT RF 

x10rf myx10 = x10rf(RF_OUT,0,5);

// les pins et variables pour la mesure
const int analogInPin = A0; // Entrée analogique de la sortie Vout du capteur
int sensorValue = 0; // valeur lue sur le pin
long totEau = 0; // variable de stockage de toutes les mesures

/***************************************************************/
/**             Mise en route du programme                    **/
/***************************************************************/

void setup() {
  // MYX10 INITIALIZATION
  myx10.begin(); 
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
}

void loop() {
    //lecture du capteur MPX5500DP, et envoie des données, 

    mesurePression();
    // wait 5 sec before the next loop
    delay(60000);
}



/****************************************************************/
/**                 Fonctions                                  **/
/****************************************************************/

void mesurePression() {
  //Boucle pour les mesures
  for (int i=0; i<5; i++) {
    // on lit la broche du capteur
    sensorValue = analogRead(analogInPin);
    
    // convertir la lecture en voltage
    float sensorVoltage = sensorValue * (5.0 / 1023.0);
    totEau += (sensorVoltage*10000);
    //si on est en fin de boucle, 5 mesures effectuées, alors on calcule la moyenne et on envoie
    if (i == 4) {
      //on fait la moyenne des cinq mesures, et on calcule la hauteur d'eau en cm
      totEau = (totEau/5);
      // On envoi les données par radio
      Serial.println(totEau,4);
      myx10.RFXmeter(12,0,totEau);
      totEau = 0;
    }
  }
}

#5 Re : Arduino » création sonde profondeur de puits » 2018-05-15 15:49:10

La suite ! La suite !
Oui, ça va j'arrive...

Alors, pour la suite. Petite modif du protocole d'envoi, je passe désormais par la bibliothèque x10rf à récupérer avec le sketch ino là. Je m'en suis assez inspiré, d'ailleurs.

Et, du coup, pour les capteurs: non il n'y a pas de capteur réellement adapté. Domoticz voit ça comme un compteur. Je l'ai passé en "hidden", j'ai un script lua pour récupérer les données, et mettre à jour un capteur virtuel (custom sensor).

Par contre, sur l'arduino, découverte: avec certains nano chinois, pour les programmer, il faut déclarer la carte comme une duemilanove. Sinon, erreurs multiples au téléversement.

Enfin, reste la question du capteur de tension, comment envoyer ça par radio, et là, je sèche. Mais bon, j'ai le temps, c'est pas comme si l'été approchait, avec son lot d'arrosages, de remplissages de piscines olympiques et tutti quanti!

[edit] abandon de la recherche à ce niveau là, après décorticage de la bibliothèque x10rf, je n'ai pas l'impression que ce soit implémenté. J'ai donc un script qui mesure le temps entre deux mesures, et si trop long => alerte [/edit]

#6 Arduino » création sonde profondeur de puits » 2018-04-29 16:58:12

Benoît
Réponses : 2

Salut à tous,

Je vais fabriquer, à base d'arduino, un capteur de profondeur de puits, pour le connecter avec Domoticz en radio 433mhz via un RFLink. J'ai besoin de centraliser les informations, et comme ça peut intéresser certains, je poste ici. Je compléterai au fur et à mesure de mes découvertes, les commentaires et les discussions sont les bienvenues!

Pour info: Domoticz est un logiciel libre de domotique, installable sur un raspberry pi. J'ai raccordé à cela un module RFLink, qui est réalisé à base d'arduino mega (https://easydomoticz.com/rflink-un-modu … -materiel/)
Pas mal de protocoles supportés, très facile à réaliser.

le matériel

  • un capteur de pression avec pression de référence (datasheet )

  • un arduino nano

  • des tuyaux de pompe d'aquarium

  • une bouteille plastique

  • un boitier étanche

  • et tout un tas de trucs, tel que de la colle époxy, du silicone, des piles, un porte pile, je détaille pas plus

le principe
capteur_puit.svg
Une bouteille plastique branchée sur un tuyau, lui même sur le capteur, ça renvoi la pression par rapport à la pression ext. La bouteille est lestée, bien entendu. Je renvoie donc via radio un signal, avec les données: pression au fond, et niveau des piles.
Je vais devoir étalonner le montage, je pense immerger le capteur à une profondeur connue, que j'augmente au fur et à mesure, jusqu'à atteindre le fond, et à chaque fois, je capte les mesures et je fais une moyenne de [3? 4?] mesures à la même profondeur.

[edit] au vu des mesures aléatoires "à vide", j'ai mis le circuit sous pression avant d'immerger la bouteille, ça marche mieux. Et l'étalonnage, effectivement indispensable, m'a permis de corriger les errements du montage[/edit]

les infos utiles

  • un protocole radio pour communiquer avec domoticz

  • le branchement du capteur sur arduino:

et les questions...
Quels sont les types de capteurs que domoticz accepte? existe t-il un capteur de profondeur? (j'ai vaguement idée que non...)
Comment envoyer la mesure des piles à domoticz? Quel est le format qu'il accepte?


La suite plus tard.

#7 Re : les thèmes des soirées » Propositions de thèmes » 2018-04-29 16:07:19

trois semaines après, la réponse... Désolé, j'ai sans doute merdé mes avertissements mails.
Alors, perso, j'utilise plusieurs éléments pour présenter mes formations:

Je suis adepte d'xmind, mais j'ai besoin de la licence pour le mode "présentation". C'est le seul qui a cette limitation. Par contre, dès que j'ai un peu de temps pour présenter, je passe sous sozi, le principe est excellent. Une démo là:
http://sozi.baierouge.fr/pages/10-about-fr.html

#8 Re : Arduino » IDE arduino » 2018-03-30 11:07:47

Youpie.
Oui, je suis joyeux.
Je viens de découvrir, avec la nouvelle version de l'ide arduino qu'il existait des options en ligne de commande! quelques éléments:

arduino --verify /home/truc/exempleArduino.ino --board arduino:avr:uno

par exemple, ça vérifie/compile comme dans l'ide, le document exempleArduino.ino, pour la carte uno. Cool. J'enchaîne sur un

arduino --upload /home/truc/exempleArduino.ino --board arduino:avr:uno

Et ça me le téléverse! Tout seul! Je pense que le fait d'avoir sélectionné avant, dans l'ide, le port, doit jouer, sinon il faut sans doute rajouter un:

--port portname

soit /dev/ttyACM0 dans mon cas.
Tout cela pour dire que je peux ENFIN utiliser geany comme seul ide de prog. pour arduino, grâce à ça, et que donc, je suis content. J'avais mis joyeux, mais content, aussi.

ps: si vraiment vous insistez, je vous donne les éléments de config de geany pour que tout marche, et avoir des raccourcis claviers qui vont bien.

#9 Arduino » Liens divers » 2018-03-29 14:50:34

Benoît
Réponses : 1

Je propose, en réponse à mon message, qu'on poste les liens qui nous ont servis de référence pour nos montage. Ça fait une sorte de pense-bête, quoi.
Je commence.

Utilisation sonde DS1820
https://www.carnetdumaker.net/articles/ … o-genuino/

Utilisation télécommande infrarouge:
http://tiptopboards.free.fr/arduino_for … hp?t=8&p=8

Mise en œuvre I2C carte chinoise:
http://blog.f8asb.com/2014/03/01/mise-e … r-arduino/

#13 Re : L'informatique libre, en général » convertisseur d'image » 2016-12-16 10:26:41

Bonjour Foifoise,

Merci de ce lien!
Sinon, pour convertir n'importe quelle image en n'importe quel autre format: Gimp!
Mini-tuto:

  • Ouvrir Gimp

  • Ouvrir une image (cliquer sur fichier/ouvrir)

  • Cliquer sur Fichier/export As ou exporter sous

  • Dans la fenêtre qui s'ouvre, mettre le nom désiré (sans le point et l'extension)

  • En bas de la fenêtre, cliquer sur le + devant "selon l'extension" et choisir le format désiré

  • Pour terminer, cliquer sur "exporter", répondre ok, et fermer tout quand c'est terminé

Voilà! Comme cela, on reste propriétaire du processus, des données, et on n'a pas à lire la totalité des règles du site:
http://convertir-une-image.com/cgu-mentions-legales.asp
Et pour la vie privé, on est sur de ne pas recevoir de pub! (alors que chez eux...)

#14 Re : au buffet de l'assoc' » salut » 2016-12-16 10:15:18

Bonjour Patrice!

(oui, avec du retard, je ne reçois plus les messages du forum...)
Bienvenu

Les bricolos d'alis seront intéressés par tes propositions, je crois.
Et que tiennes aussi belles soient les journées!

#15 Re : Les ateliers » Suite Arduino » 2016-12-16 10:11:56

Un missile, t'es fou, on va être espionné par la NSA!
Ah, j'entends dans l'oreillette qu'on me dit: c'est déjà le cas. Bon.
Sinon, de mon coté, j'ai reçu une mega-commande de matériel arduino, avec en vrac, un capteur de vapeur, un bus i2c, un afficheur à segments, un afficheur cristaux liquides, et tout un tas de "bidules". Reste à construire le projet! Hier, on a récupéré (merci Philippe!) deux moteurs d'aspirateur robot, on va finir par faire un truc bien! On était parti dans l'idée d'une maison domotisée? Ça branche du monde?

B

#17 Re : J'ai besoin d'aide! » [Résolu] Majuscules accentuées » 2016-04-06 07:56:37

Cette image est la disposition "Français variante", je la retrouve bien chez moi, il doit y avoir des différences entre "variante obsolète" et "variante"...
Peut-être un début de réponse là?
https://forum.ubuntu-fr.org/viewtopic.php?id=1637931

#21 Re : L'informatique libre, en général » Dessins animés? » 2016-04-03 17:32:39

Non, ya une version mac, une version windows, et j'ai lu qu'il y avait une version linux, mais je ne mets pas la main dessus.

edit: En clonant le git, on doit pouvoir compiler sous nunux, ya des chances!

#22 Re : au buffet de l'assoc' » recette de la quiche aux lardons » 2016-04-02 14:20:35

Chiche, la cuisine libre!
Je suis partant, mais on fait des ateliers pratiques, hein?

#23 Re : au buffet de l'assoc' » recette de la quiche aux lardons » 2016-04-02 13:36:17

Trop fort!

Je pourrais rajouter, pour la gourmandise: Si vous faites revenir vos lardons à la poêle, déglacez-la avec la crème, grattez les sucs de cuisson, mélangez bien, portez à petit bouillon puis coupez le feu. Mélangez la préparation crème/lardons, qui aura pris une coloration, avec le reste des ingrédients de l'appareil, et la suite est parfaite, un véritable alsacien s'y retrouverait.
(on peut aussi cuire les lardons dans de l'eau, ce qui a pour effet de laisser partir la graisse avec l'eau de cuisson.)

Le reste, je n'y connais rien.
;-)

#24 Re : les thèmes des soirées » 21 mai 2016, journée ........... annulée » 2016-03-27 09:01:58

Au vu de divers facteurs que "Mélanie" vous présentera, la journée du 21 mai est annulée...

#25 Re : les thèmes des soirées » Dates des prochaines rencontres » 2016-03-27 09:01:02

Et, comme à chaque fois, pas de réponse, trop tôt !  On a encore un mois 1/2 pour préparer. Allez, plus que quatre!

Pied de page des forums

Propulsé par FluxBB