Avant toute chose merci de (re)prendre connaissance de la charte et de la respecter.
Pour résumer :
- Avant de poser une question, je cherche si la réponse existe
- Je suis poli, courtois et je respecte tout un chacun sur le forum
- Si un post m'agace : je m'en éloigne plutôt que de répondre d'une façon qui pourrait être mal interprétée


Il n'est jamais du luxe que de rappeler des choses simples :
Courtoisie, amabilité, politesse et bonne humeur sont les maîtres mots pour un forum sympathique, bienveillant et accueillant :)

Toute la communauté vous remercie

[TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Retrouvez ici des sujets concernant le protocole mySensors et les modules domotiques de type mySensors utilisés avec JEEDOM
/!\ Plugin mySensors non officiel
Répondre
tutur19
Timide
Messages : 16
Inscription : 19 nov. 2015, 15:51

[TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par tutur19 » 02 mars 2018, 00:40

Hello tout le monde,
Après en avoir bavé quelques temps surtout par manque de traduction, je vous propose un tuto pour fabriquer un noeud my sensors sur batterie mais surtout qui tiens dans le temps... Au programme, déssoudage de composants énergivore, et surtout... Bootloader !

Les tutos sont assez fournis mais je tenais à faire une synthèse de tous les astuces en français sur une seule page :) .

Si vous constatez des lacunes, des zones d'ombres, n'hésitez pas à me les signaler, je rectifierai au fur à mesure :).

En réalité pour pouvoir mettre un arduino sur batterie, il suffit de diminuer la consommation.
Pour cela plusieurs action sont possible :

- Retirer les composants énergivore (LED, régulateur de tension, booster de tension)
- Passer l'arduino en veille
- Baisser la fréquence de 8Mhz à 1Mhz
- Autoriser l'arduino à fonctionner à 2V contre 2,8V en temps normal


Pré requis :
- Une carte Uno ou Méga pour graver le bootloader

- un arduino 3.3V 8Mhz
=> Pourquoi le 3.3V ? Car c'est pile la tension de 2 piles AA de 1.5V ! Du coup pas besoin de régulateur de tension !

Etape 1 : Déssouder le regulateur de tension, la led de tension.
C'est celui ci

Image
Image

2 possibilité pour le déssouder : sois couper la piste de cuivre au cutter, soit le chauffer au fer à souder et le retirer à l'aide d'une pince. Idem pour la led de tension (verte). Pour la répérer, il vous suffit de la mettre sous tension !

Ainsi nous venons déjà de gagner :
LED : 1.5mA !
Régulateur 0.220mA

Etape 2 , passer l'arduino en veille
Une fois en veille l'arduino peut se réveiller de 2 manières,
- soit par le temps (minuterie tous les X millisecondes) très utile pour une sonde de température.
- soit par une interruption (un signal sur un Pin numérique), par exemple pour un détecteur de mouvement.

La librarie mysensors de ce coté là est bien fourni il existe une fonction toute prête afin de réaliser ses actions

Pour le temps : sleep(SLEEP_TIME);
ou SLEEP_TIME est le temps en millisecondes avant la prochaine activation. (exemple, un thermometre qui envoie la temperature a interval régulier).

ou bien pour les interruptions :
sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME);

DIGITAL_INPUT_SENSOR comme pin de déclenchement (ex : le pin OUT d'un capteur de mouvement).
CHANGE correspond au type de changement qui doit se produire pour que le réveil se produise, 3 options possible : CHANGE, RISING, FALLING.


Avec ceci nous passons à 0.0045mA soit 4.5uA


Etape 3 & 4 : diminuer la fréquence du micro controleur + autoriser une tension de fonctionnement 2V (le pro mini reboot en dessous de 2.7V)


La carte possède une sécurité pour redémarrer en cas de tension basse, cependant il fonctionne assez bien en 2V.

Pour cela, il faut toucher au bootloader de votre carte. C'est un peu comme le bios de votre ordinateur. Cependant pour pouvoir le modifier, vous devez posséder une carte avec un AVR, tel que la UNO ou la MEGA. Celle ci servira d'interface entre votre ordinateur et votre carte pro mini. En effet le transfert du bootloader s'effectue différemment du televerseur classique.

/!\ Il existe aussi des cartes de transfert ISP qui permette un peu comme le FTDI de transférer le programme, seulement ne les ayant jamais utilisé, je n'en parlerai pas ici :).

A partir de là, 2 options s'offre à nous :
- réduire la fréquence et la tension sur le bios standard d'arduino (Cela s'appelle le réglage du "fusible")
- soit télécharger un nouveau bios prêt à l'emploi spécialement allégé pour les batteries.

Je commencerai par détailler l'option 2, la première étant un peu plus technique

Il faut tout d'abord télécharger le bootloader ici :
http://forum.mysensors.org/uploads/file ... 328_1a.hex
Le placer dans le dans le dossier ARDUINO >hardware > arduino > avr > bootloaders
puis le renommer en atmega328_1a.hex

Une fois dézipper nous allons l'ajouter à la liste des cartes dans le compilateur, pour cela il suffit d'ajouter dans le fichier Arduino\hardware\arduino\avr\boards.txt, les lignes suivantes

Code : Tout sélectionner

##############################################################
# Add the new board to boards.txt (normally located at "C:\Program Files\Arduino\hardware\arduino\avr"
# The *.bootloader.* etries only matters if you want to program bootloader (and fuses) from Arduino IDE. 
# See http://www.engbedded.com/fusecalc (select Atmega328p) for interpretation of fuse values and how 
# extended fuses are written in different applications (07h in Arduino IDE = FFh in Atmel studio).
##############################################################

apm96.name=APM Optiboot internal 1MHz noBOD 9600baud

apm96.upload.tool=avrdude
apm96.upload.protocol=arduino
apm96.upload.maximum_size=32256
apm96.upload.speed=4800
apm96.bootloader.tool=avrdude
apm96.bootloader.low_fuses=0x62
apm96.bootloader.high_fuses=0xde
apm96.bootloader.extended_fuses=0xfe 
apm96.bootloader.path=optiboot_v50
apm96.bootloader.file=atmega328_1a.hex
apm96.bootloader.unlock_bits=0x3F
apm96.bootloader.lock_bits=0x2F
apm96.build.mcu=atmega328p
apm96.build.f_cpu=1000000L
apm96.build.core=arduino
apm96.build.variant=standard

##############################################################

Relancer le programme Arduino sur votre PC, une nouvelle ligne devrait apparaitre :
Image


Il faut maintenant cabler les 2 arduino ensemble afin de procéder à la gravure du bootloader mais avant tout branchement, nous devrons téléverser sur la "carte programmeur" le programme Arduino ISP (situé dans les exemple arduino).

Image


Cablez ensuite les 2 cartes comme ceci :

/!\ Attention chaque carte à ses ports spécifiques, référez vous au tableau ci dessous suivant la carte que vous utilisez comme programmeur :


Exemple pour une Uno
Image

Exemple pour une Mega :
Image

Il faut relier ensemble les PIN MOSI, MISO, SCK, et le port 10 de la carte programmeur avec le pin RESET de la carte à programmer

Uno or Duemilanove => 11 ; 12 ; 13
Mega1280 or Mega2560 => 51 ; 50 ; 52
Leonardo => ; ICSP-4 ; ICSP-1 ; ICSP-3
Due => ICSP-4 ; ICSP-1 ICSP-3
Zero => ICSP-4 ; ICSP-1 ; ICSP-3
101 => 11 ; 12 ; 13
MKR Family => 8 ; 10 ; 9


Attention : Si vous utilisez une carte Mega, vous devrez rajouter un condensateur de 10uF sur le port reset de celle ci.



Réglage du compilateur.

Choisissez bien sur, le port COM de la "carte programmeur". Ensuite sélectionnez le programmateur "Arduino as ISP" (attention il y a également un ArduinoISP, ce n'est PAS le même)

Il ne vous reste plus qu'a cliquer sur "Graver la séquence d'initialisation".

Et voilà, votre carte fonctionne est opérationnelle, vous pouvez à présent upper vos sketch de façon traditionnelles en respectant 2 3 petites règle simple :
- En cas de changement de bootloader, vous devez réenvoyer vos sketchs
- Pensez à remettre le programmateur sur AVR MKII à la place de "Arduino as ISP"
- Je vous conseille fortement de réduire la vitesse du port série à 4800. En effet à 1Mhz, vous pouvez avoir des coquilles sur le texte dans le port série


Autre solution, le réglage du fusible
Si vous souhaitez juste changer par exemple la tension de reboot, il vous suffit d'aller dans boards.txt.
Faite un copier coller du paragraphe Pro mini 3.3V 8Mhz , N'hésitez pas ensuite à la renommer, vous pourrez ainsi facilement la distinguer du réglage normal.
Vous pourrez ensuite modifier les réglage dedans à savoir :
extended_fuse qui controle la tension minimal. A savoir que vous devez la remplacer par 0xFF (désactiver) ou 0x06 (1.8V min) pour désactiver la limite de 2.7V standard.

Pour passer ensuite à 1Mhz, vous devrez changer la ligne f_cpu par 1000000 et adapter le fusible low et extended en choissant les réglage d'oscillateur sur ce site :
http://eleccelerator.com/fusecalc/fusec ... atmega328p
Exemple :
Pour le 1MHz avec le RC interne : low_fuses=0x62
Pour le 1MHz avec l'oscillateur externe 8MHz (plus précis dans le temps) : low_fuses=0x46


Bon utilisation à tous :)



Source :
Tuto complet sur le bootloader : https://forum.mysensors.org/topic/7296/ ... v-solved/9
Tuto sur la réduction du BOD http://breizhmakers.over-blog.com/2015/ ... horComment
Calculateur de fusible http://www.engbedded.com/fusecalc/
Tuto officiel arduino : https://www.arduino.cc/en/Tutorial/ArduinoISP
Tuto également sur le boot : viewtopic.php?t=5489
Dernière édition par tutur19 le 19 mars 2018, 20:37, édité 4 fois.

tsim79
Timide
Messages : 471
Inscription : 23 avr. 2015, 11:54

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par tsim79 » 02 mars 2018, 01:13

+1 👍

Avatar de l’utilisateur
cktocc
Timide
Messages : 22
Inscription : 26 sept. 2016, 07:50
Localisation : Loir-et-Cher

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par cktocc » 02 mars 2018, 08:07

Super tuto ! Je dois mettre cela en pratique sous peu donc ça va bien me servir. Merci

Envoyé de mon MI MAX 2 en utilisant Tapatalk


snow51
Timide
Messages : 51
Inscription : 09 juin 2015, 08:57

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par snow51 » 02 mars 2018, 09:20

Hello,

Avec un AVR ISP on peut reprogrammer les fusibles en 2 clics en utilisant avrdudess ;)

rol-rider
Actif
Messages : 3904
Inscription : 10 août 2014, 23:50

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par rol-rider » 02 mars 2018, 09:29

C'est marrant, ça me rappelle quelque chose ce tuto..... mais ? Impossible de me rappeler ou j'ai vu ça !

Envoyé de mon Nexus 7 en utilisant Tapatalk

RPI3 avec mSATA
RFXcom; RFLink; Z-Wave; Mysensors; ESPEasy
Noeuds MySensors-téléinfo-Température-Distance-Baromètre-relais
Noeuds ESPEasy-open-garage-relais-PIR-Station Météo

pipersw
Actif
Messages : 638
Inscription : 28 juil. 2014, 18:54
Localisation : Massy (91)

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par pipersw » 02 mars 2018, 10:14

Bonne idée pour ceux qui ne connaissent pas.
Juste quelques remarques :
- il vaut mieux programmer un BOD à 1.8V plutôt que de le désactiver, car certains capteurs ne marchent plus en dessous de 1.9V (SI7021)
- à 1MHz, je conseillerai plutôt 4800 en upload speed pour diminuer les risques d'erreurs (7% => 0.2%) (http://wormfood.net/avrbaudcalc.php)
- dans les fusibles, tu peux soit prendre le RC interne à 1MHz, soit prendre l'oscillateur externe 8MHz que tu divises par 8 (cette configuration consomme moins)

J'ai un noeud qui a fonctionné avec ce bootloader à 1MHz pendant 8 mois avec un SI7021 et une CR2032.

tutur19
Timide
Messages : 16
Inscription : 19 nov. 2015, 15:51

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par tutur19 » 02 mars 2018, 19:57

Merci à tous pour vos remarques :)
@snow51 Les fusibles restent nouveaux pour moi, j'ai bien compris que c'était possible avec un AVR mais je n'en ai pas , et je n'aime pas parler de quelques chose que je n'ai pas tester.
Personnellement cabler une arduino ou un AVR ca revient au même pour moi. J'ai bien vu sur le calculateur de fusible qu'il préparait la ligne de commande pour la gravure mais lors de mes essais cela n'a pas été fructueux.. Quelques lacunes de ma part surement

@pipersw super conseil merci, j'édite de suite :) . Pour l'oscillateur externe, tu édites quel fusible ?ou le f_pcu?
Tu aurais des chiffres sur la conso de l'oscillateur externe vs interne ?


@rol-rider il va s'en dire que j'ai pioché à gauche à droite, j'ai cité mes sources principales après si tu as d'autres, je serai ravis de les rajouter dans la liste en bas de page.

pipersw
Actif
Messages : 638
Inscription : 28 juil. 2014, 18:54
Localisation : Massy (91)

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par pipersw » 02 mars 2018, 22:34

Pour le 1MHz avec le RC interne : low_fuses=0x62
Pour le 1MHz avec l'oscillateur externe 8MHz : low_fuses=0x46

Pour la conso, je me suis trompé, c'est plutôt que le RC varie plus qu'un crystal externe, et que tu es donc plus précis sur les timings.

tutur19
Timide
Messages : 16
Inscription : 19 nov. 2015, 15:51

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par tutur19 » 03 mars 2018, 21:04

Merci je vais rajouter un paragraphe :) !

Curieusement cependant je n'arrive pas dans ce cas de figure à téléverser :
J'ai voulu faire un test pour comparer en prenant le bootloader standard et en le baissant comme tu dis à 1Mhz, j'ai créer ce modèle de carte :

Code : Tout sélectionner

## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328 BOD at 1.8v
## --------------------------------------------------
pro.menu.cpu.8MHzatmega328bod1v8=ATmega328 (3.3V, 1 MHzInt, 1v8 BOD)

pro.menu.cpu.8MHzatmega328bod1v8.upload.maximum_size=30720
pro.menu.cpu.8MHzatmega328bod1v8.upload.maximum_data_size=2048
pro.menu.cpu.8MHzatmega328bod1v8.upload.speed=57600 ## J'ai essayé 4800 et 57600

pro.menu.cpu.8MHzatmega328bod1v8.bootloader.low_fuses=0x62
pro.menu.cpu.8MHzatmega328bod1v8.bootloader.high_fuses=0xDA
pro.menu.cpu.8MHzatmega328bod1v8.bootloader.extended_fuses=0x06
pro.menu.cpu.8MHzatmega328bod1v8.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex

pro.menu.cpu.8MHzatmega328bod1v8.build.mcu=atmega328p
pro.menu.cpu.8MHzatmega328bod1v8.build.f_cpu=1000000L #à 100000 pour 1Mhz nous sommes d'accord ? 
J'ai bien réussi à graver le boot mais pas à téléverser , il n'arrive pas à communiquer, une idée ?

Je vais voir pour faire un modèle de carte par réglage et publier tous ça dès mon bug résolu ;)

pipersw
Actif
Messages : 638
Inscription : 28 juil. 2014, 18:54
Localisation : Massy (91)

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par pipersw » 05 mars 2018, 20:17

Ton upload speed est trop élevé, c'est max 9600 voir 4800 à 1 MHz.

Je partage ce qui marche de mon coté:

Arduino\hardware\arduino\avr\boards.txt:

Code : Tout sélectionner

## Arduino Pro or Pro Mini (BOD 1.8V, 1MHz, 4800baud) w/ ATmega328
## --------------------------------------------------
pro.menu.cpu.RC1MHZatmega328=Optiboot internalRC 1MHz BOD1.8V 4800baud

pro.menu.cpu.RC1MHZatmega328.upload.maximum_size=32256
pro.menu.cpu.RC1MHZatmega328.upload.maximum_data_size=2048

pro.menu.cpu.RC1MHZatmega328.upload.speed=4800

pro.menu.cpu.RC1MHZatmega328.bootloader.low_fuses=0x62
pro.menu.cpu.RC1MHZatmega328.bootloader.high_fuses=0xde
pro.menu.cpu.RC1MHZatmega328.bootloader.extended_fuses=0xfe
pro.menu.cpu.RC1MHZatmega328.bootloader.file=optiboot/optiboot_atmega328_pro_1MHz_4800.hex

pro.menu.cpu.RC1MHZatmega328.build.mcu=atmega328p
pro.menu.cpu.RC1MHZatmega328.build.f_cpu=1000000L

## Arduino Pro or Pro Mini (BOD 1.8V, 1MHz, 4800baud) w/ ATmega328
## --------------------------------------------------
pro.menu.cpu.1MHZatmega328=Optiboot external 1MHz BOD1.8V 4800baud

pro.menu.cpu.1MHZatmega328.upload.maximum_size=32256
pro.menu.cpu.1MHZatmega328.upload.maximum_data_size=2048

pro.menu.cpu.1MHZatmega328.upload.speed=4800

pro.menu.cpu.1MHZatmega328.bootloader.low_fuses=0x46
pro.menu.cpu.1MHZatmega328.bootloader.high_fuses=0xde
pro.menu.cpu.1MHZatmega328.bootloader.extended_fuses=0xfe
pro.menu.cpu.1MHZatmega328.bootloader.file=optiboot/optiboot_atmega328_pro_1MHz_4800.hex

pro.menu.cpu.1MHZatmega328.build.mcu=atmega328p
pro.menu.cpu.1MHZatmega328.build.f_cpu=1000000L

pipersw
Actif
Messages : 638
Inscription : 28 juil. 2014, 18:54
Localisation : Massy (91)

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par pipersw » 05 mars 2018, 20:22

bootloader :
copier le contenu suivant dans un fichier optiboot_atmega328_pro_1MHz_4800.hex sous
/bootloaders/optiboot/:

Code : Tout sélectionner

  :107E0000112484B714BE81FFE6D085E08093810001
  :107E100082E08093C00088E18093C10086E0809377
  :107E2000C20089E18093C4008EE0BFD0259A86E02D
  :107E300023EC3FEF91E0309385002093840096BBC4
  :107E4000B09BFECF1D9AA8958150A9F7EE24FF2480
  :107E5000AA24A394B5E0CB2EA1E1BA2EF3E0DF2E45
  :107E600098D0813461F495D0082FA5D0023829F13B
  :107E7000013811F485E001C083E083D07FC08234F3
  :107E800011F484E103C0853419F485E09CD076C0F8
  :107E9000853579F47ED0E82EFF247BD0082F10E0C2
  :107EA000102F00270E291F29000F111F84D07801E1
  :107EB00065C0863521F484E086D080E0DECF84364C
  :107EC00009F040C066D065D0082F63D080E0E81686
  :107ED00080E7F80618F4F701D7BEE895C0E0D1E0D6
  :107EE00058D089930C17E1F7F0E0EF16F0E7FF06A2
  :107EF00018F0F701D7BEE8955ED007B600FCFDCFBD
  :107F0000A701A0E0B1E02C9130E011968C9111977F
  :107F100090E0982F8827822B932B1296FA010C0160
  :107F2000A7BEE89511244E5F5F4FF1E0A038BF0770
  :107F300051F7F701C7BEE89507B600FCFDCFB7BE05
  :107F4000E8951CC0843761F424D023D0082F21D0B9
  :107F500032D0F70185917F0114D00150D1F70EC0C6
  :107F6000853739F428D08EE10CD085E90AD08FE02E
  :107F700084CF813511F488E018D01DD080E101D084
  :107F80006FCF982F8091C00085FFFCCF9093C600E3
  :107F900008958091C00087FFFCCF8091C00084FDD0
  :107FA00001C0A8958091C6000895E0E6F0E098E150
  :107FB000908380830895EDDF803219F088E0F5DF4B
  :107FC000FFCF84E1DECF1F93182FE3DF1150E9F7D5
  :107FD000F2DF1F910895282E80E0E7DFEE27FF27CC
  :027FE000099402
  :027FFE0000057C
  :0400000300007E007B
  :00000001FF

pipersw
Actif
Messages : 638
Inscription : 28 juil. 2014, 18:54
Localisation : Massy (91)

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par pipersw » 05 mars 2018, 20:23

Mon code :

Code : Tout sélectionner

#define MY_DEBUG


// Enable and select radio type attached
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69

// Serial output baud rate (debug prints and serial gateway speed) is 115200 by default for 16MHz clock.
//for 1MHz clock the max baud rate is 4800baud
// see http://wormfood.net/avrbaudcalc.php
#define MY_BAUD_RATE 4800

#include <Wire.h>
#include <MySensors.h>
#include <Si7021.h>

unsigned long SLEEP_TIME = 900000;  // sleep time between reads (seconds * 1000 milliseconds)

#define RELEASE "1.0"
#define CHILD_ID_TEMP 0
#define CHILD_ID_HUM 1
#define CHILD_ID_MULTIMETER 2

int oldBatteryPcnt = 0;
float oldtemperature = 0;
float oldhumidity = 0;
float oldBatteryV = 0;
int BATTERY_SENSE_PIN = A0;  // select the input pin for the battery sense point

SI7021 si7021;

// Initialize messages
MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
MyMessage msgHum(CHILD_ID_HUM, V_HUM);
MyMessage msgBatt(CHILD_ID_MULTIMETER, V_VOLTAGE);

void setup()
{
  si7021.begin(); // Runs : Wire.begin() + reset()
  si7021.setHumidityRes(12); // Humidity = 12-bit / Temperature = 14-bit
  si7021.setHeater(0); // Turn heater off

  // use the 1.1 V internal reference
  analogReference(INTERNAL);
}

void presentation()
{
  // Send the sketch name and sketch version information to the gateway and Controller
  sendSketchInfo("SI7021 Temperature Humidity Sensor", "1.0");

  //present sensor to controller
  present(CHILD_ID_TEMP, S_TEMP);
  present(CHILD_ID_HUM, S_HUM);
  present(CHILD_ID_MULTIMETER, S_MULTIMETER);

}

void loop()
{

  // read temperature data
  float temperature = si7021.readTemp();
  float humidity = si7021.readHumidity();

 // Measure battery voltage with adc
  int sensorValue = analogRead(BATTERY_SENSE_PIN);
  
  // 1M, 470K divider across battery and using internal ADC ref of 1.1V
  // Sense point is bypassed with 0.1 uF cap to reduce noise at that point
  // ((1e6+470e3)/470e3)*1.1 = Vmax = 3.44 Volts
  // 3.44/1023 = Volts per bit = 0.003363075

  int batteryPcnt = sensorValue / 10;

  float batteryV  = sensorValue * 0.003363075;
  
  if (oldtemperature != temperature) {
    oldtemperature = temperature;
    send(msgTemp.set(temperature, 1));
    sleep(1); // Wait for 100uF capacitor to charge
  }


  if (oldhumidity != humidity) {
    oldhumidity = humidity;
    send(msgHum.set(humidity, 1));
    sleep(1); // Wait for 100uF capacitor to charge
  }

  if (oldBatteryV != batteryV) {
    oldBatteryV = batteryV;
    send(msgBatt.set(batteryV, 3));
    sleep(1); // Wait for 100uF capacitor to charge
  }

  if (oldBatteryPcnt != batteryPcnt) {
    oldBatteryPcnt = batteryPcnt;
    sendBatteryLevel(batteryPcnt);
  }

  // go to sleep cpu
  sleep(SLEEP_TIME);
}

tutur19
Timide
Messages : 16
Inscription : 19 nov. 2015, 15:51

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par tutur19 » 08 mars 2018, 09:43

Salut @pipersw
en fait je voulais tester le bootloader original arduino mais à 1Mhz, j'utilise sinon comme toi le optiboot ou là je n'ai aucun aussi :)

D'ailleurs autre petite anomalie remarqué, pas possible d'utiliser le 1wire en 1mhz, apparemment les librairie aurait besoin de plus de vitesse ou alors certaines librairies utilisent les mauvaises fonctions, j'ai lu un truc là dessus je vais chercher également ce week end

Avatar de l’utilisateur
yogui
Actif
Messages : 676
Inscription : 11 févr. 2015, 21:52
Localisation : Alsace

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par yogui » 09 mars 2018, 11:23

rol-rider a écrit :C'est marrant, ça me rappelle quelque chose ce tuto..... mais ? Impossible de me rappeler ou j'ai vu ça !

Envoyé de mon Nexus 7 en utilisant Tapatalk
Salut peut-être là : viewtopic.php?t=5489
:-)
Dernière édition par yogui le 09 mars 2018, 11:23, édité 1 fois.
Raspberry PI 2 , Razberry Zwave +
Fibaro FGRM-222
Qubino ZMNHCA2
Fibaro FGS-222
Qubino ZMNHBA2
Everspring AN180-6
Everspring Z-WAVE SP-103
Raspberry Pi 2 + touch 3.5" en Squeezebox
Modules Mysensors

Dev. Librairie Arduino pour Somfy RTS

tutur19
Timide
Messages : 16
Inscription : 19 nov. 2015, 15:51

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par tutur19 » 09 mars 2018, 12:25

Lol, j'aurai bien aimé le trouvé plus tot celui là ^^ !
Je vais le rajouter dans les sources :)

prophet_master
Timide
Messages : 44
Inscription : 05 août 2015, 22:38

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par prophet_master » 01 mai 2018, 09:37

Pour ceux que ça intéresse j'ai deux trois choses utiles :

c'est pour les arduino mini pro chinois type aliexpress que l'ont trouve ici : https://fr.aliexpress.com/item/ProMini- ... 27539.html

https://github.com/prophetmaster/arduin ... -low-power
https://github.com/prophetmaster/fritzing_parts

scalz
Timide
Messages : 125
Inscription : 01 mars 2015, 15:31
Localisation : Pays-de-la-Loire

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par scalz » 01 mai 2018, 10:32

Salut,
pas besoin d'enlever le bouton reset et le quartz pour gagner en conso (surtout si l'on change le bootloader pour utiliser l'oscillateur interne).
sauf si tu veux réduire l'épaisseur du mini pro.
Note pour noob: en enlevant le quartz, ne pas oublier que vous ne pourrez pas réutiliser le bootloader d'origine (optiboot) sans remettre le quartz (il faudra le ressouder dans ce cas)
Mysensors
Jeedom en stable/RPI3
https://github.com/scalz

prophet_master
Timide
Messages : 44
Inscription : 05 août 2015, 22:38

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par prophet_master » 01 mai 2018, 19:52

oui moi le but était de créé le plus petit noeud mysensors et le moin épais je peux vous joindre une photo si vous êtes intéressé :-)

Avatar de l’utilisateur
dough29
Actif
Messages : 674
Inscription : 30 nov. 2014, 12:55

Re: [TUTO] Fabriquer un noeud mysensors sur batterie (+ optimisation bootloader)

Message par dough29 » 25 juin 2018, 14:20

Hello !

Merci beaucoup pour ce sujet sur lequel je vais bientôt me baser pour un projet de domotisation de ma boîte aux lettres :
- capteur reed sur la trappe à enveloppe -> courrier
- capteur reed sur la porte côté rue -> colis
- capteur reed sur la porte côté cour -> relève

Jeedom se chargera des notifications par SMS (Free SMS) 8-)
Jeedom maître (Docker sur Synology DSM6 + téléinfo)
Jeedom esclave (Raspberry Pi 2 B + Z-Wave + MySensors)
récit

Répondre

Revenir vers « [Plugin Tiers] MySensors »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité