yes add the line but only on non battery powered nodes.
If battery powered this will kill battery life.
I have a couple repeater nodes at home to extend the range.
tlpeter
Posts
-
question about repeater node -
Example code - DallasTemperatureSensor.inoIn the 2.0 sketch this is mentioned:
#define COMPARE_TEMP 1 // Send temperature only if changed? 1 = Yes 0 = No
So 0 should keep everything working and sens info even when not changed. -
Example code - DallasTemperatureSensor.inoI think you just have to comment out that part of the code (the 5 lines of code)
-
Which Arduino IDE version?Thanks, i would not have found that by myself :smile:
-
How to include the battery measurement?I will buy one later :smile:
This is just to play with as i wanted to know how the battery measurement works. -
Which Arduino IDE version?And how do i downgrade AVR board devs?
-
How to include the battery measurement?I have voltage now and a percentage at the devices.
Hum and temp do work fine.
I only sucked all the juice out of the battery so it is charging now by the little solar panel.
I found out that 2,4V was really the lowest voltage that worked :smile: -
How to include the battery measurement?I have the voltage part working and i think also the battery percentage with it.
I build the sketch like this. Can you have a little look?/** * The MySensors Arduino library handles the wireless radio link and protocol * between your home built sensors/actuators and HA controller of choice. * The sensors forms a self healing radio network with optional repeaters. Each * repeater and gateway builds a routing tables in EEPROM which keeps track of the * network topology allowing messages to be routed to nodes. * * Created by Henrik Ekblad <henrik.ekblad@mysensors.org> * Copyright (C) 2013-2015 Sensnology AB * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors * * Documentation: http://www.mysensors.org * Support Forum: http://forum.mysensors.org * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * ******************************* * * DESCRIPTION * * This is an example that demonstrates how to report the battery level for a sensor * Instructions for measuring battery capacity on A0 are available here: * http://www.mysensors.org/build/battery * */ // Enable debug prints to serial monitor #define MY_DEBUG // Enable and select radio type attached #define MY_RADIO_NRF24 //#define MY_RADIO_RFM69 #include <SPI.h> #include <MySensors.h> #include <DHT.h> #define CHILD_ID_BATT 0 #define CHILD_ID_HUM 1 #define CHILD_ID_TEMP 2 #define DHT_DATA_PIN 3 // Set this to the pin you connected the DHT's data pin to int BATTERY_SENSE_PIN = A0; // select the input pin for the battery sense point // Set this offset if the sensor has a permanent small offset to the real temperatures #define SENSOR_TEMP_OFFSET 0 static const uint64_t UPDATE_INTERVAL = 30000; // Force sending an update of the temperature after n sensor reads, so a controller showing the // timestamp of the last update doesn't show something like 3 hours in the unlikely case, that // the value didn't change since; // i.e. the sensor would force sending an update every UPDATE_INTERVAL*FORCE_UPDATE_N_READS [ms] static const uint8_t FORCE_UPDATE_N_READS = 10; //unsigned long SLEEP_TIME = 9000; // sleep time between reads (seconds * 1000 milliseconds) int oldBatteryPcnt = 0; float lastTemp; float lastHum; uint8_t nNoUpdatesTemp; uint8_t nNoUpdatesHum; boolean metric = true; MyMessage msgBatt(CHILD_ID_BATT, V_VOLTAGE); MyMessage msgHum(CHILD_ID_HUM, V_HUM); MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP); DHT dht; void setup() { // use the 1.1 V internal reference #if defined(__AVR_ATmega2560__) analogReference(INTERNAL1V1); #else analogReference(INTERNAL); #endif //} { dht.setup(DHT_DATA_PIN); // set data pin of DHT sensor if (UPDATE_INTERVAL <= dht.getMinimumSamplingPeriod()) { Serial.println("Warning: UPDATE_INTERVAL is smaller than supported by the sensor!"); } // Sleep for the time of the minimum sampling period to give the sensor time to power up // (otherwise, timeout errors might occure for the first reading) sleep(dht.getMinimumSamplingPeriod()); } } void presentation() { // Send the sketch version information to the gateway and Controller sendSketchInfo("Battery Meter", "1.0"); present(CHILD_ID_BATT, S_MULTIMETER); wait(20); present(CHILD_ID_HUM, S_HUM); wait(20); present(CHILD_ID_TEMP, S_TEMP); wait(20); metric = getConfig().isMetric; } void loop() { // get the battery Voltage int sensorValue = analogRead(BATTERY_SENSE_PIN); #ifdef MY_DEBUG Serial.println(sensorValue); #endif // 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; #ifdef MY_DEBUG float batteryV = sensorValue * 0.003363075; Serial.print("Battery Voltage: "); Serial.print(batteryV); Serial.println(" V"); Serial.print("Battery percent: "); Serial.print(batteryPcnt); Serial.println(" %"); #endif if (oldBatteryPcnt != batteryPcnt) { // Power up radio after sleep send(msgBatt.set(batteryV, 1)); //sendBatteryLevel(batteryPcnt); oldBatteryPcnt = batteryPcnt; } { // Force reading sensor, so it works also after sleep() dht.readSensor(true); // Get temperature from DHT library float temperature = dht.getTemperature(); if (isnan(temperature)) { Serial.println("Failed reading temperature from DHT!"); } else if (temperature != lastTemp || nNoUpdatesTemp == FORCE_UPDATE_N_READS) { // Only send temperature if it changed since the last measurement or if we didn't send an update for n times lastTemp = temperature; if (!metric) { temperature = dht.toFahrenheit(temperature); } // Reset no updates counter nNoUpdatesTemp = 0; temperature += SENSOR_TEMP_OFFSET; send(msgTemp.set(temperature, 1)); #ifdef MY_DEBUG Serial.print("T: "); Serial.println(temperature); #endif } else { // Increase no update counter if the temperature stayed the same nNoUpdatesTemp++; } // Get humidity from DHT library float humidity = dht.getHumidity(); if (isnan(humidity)) { Serial.println("Failed reading humidity from DHT"); } else if (humidity != lastHum || nNoUpdatesHum == FORCE_UPDATE_N_READS) { // Only send humidity if it changed since the last measurement or if we didn't send an update for n times lastHum = humidity; // Reset no updates counter nNoUpdatesHum = 0; send(msgHum.set(humidity, 1)); #ifdef MY_DEBUG Serial.print("H: "); Serial.println(humidity); #endif } else { // Increase no update counter if the humidity stayed the same nNoUpdatesHum++; } //sleep(SLEEP_TIME); sleep(UPDATE_INTERVAL); }}``` -
How to include the battery measurement?I have voltage now (utility) and a percentage under devices.
I have read somewhere that the percentage is depending on the last sensors poll so i will now try to add the DHT part in to the sketch. -
How to include the battery measurement?sendBatteryLevel doesn't do anything.
I have modified it a bit and now i have some readings.
I will do a bit more playing to see where i will end. -
How to include the battery measurement?I am trying to build a sensor with a DHT22 and for now on a solar panel and a battery.
I want to see the battery level within Domoticz.
I cannot seem to merge both the battery sketch and the DHT sketch together.
Most of the times i get an error about a { being in a place where it should not belong.
I think i lost it :smiley: and i am going mad soon.
Also how to send the battery level to Domoticz? i tried the battery sketch alone and nothing happens. -
Ethernet Gateway On Arduino Mega 2056 IssuesI have this error also with a ENC28J60 module.
I have used the 1.6.8/9 and 11 ide but that doesn't matter.
This was on an Nano by the way. -
Repeater node stops sending sensor infoHa ha, just saw that i already ordered some LE33 converters :smile:
I forgot about those. -
Repeater node stops sending sensor infoI think i will invest in suck a buck converter.
There is still plenty coming over from China so many projects to build and i rather do it right the first time. -
Repeater node stops sending sensor infoI agree on that but could it be the same power supply?
In this case it is a 5V 2A phone charger which should be fine in my honest opinion.
All i have on this node is a radio and a rainsensor like this. -
Overloading the Arduino delayFor sure i want it to learn too as it is frustrating thinking you are doing it right but have nothing but trouble :smile:
-
Repeater node stops sending sensor infoI think it is a power issue.
When connected to my laptop by USB (nano 5V) i have no major issues but i see this in the beginning:
!TSM:FPAR:FAIL
!TSM:FAILURE
TSM:PDTAfter using a phone charger it takes a long time before the node is seen within Domoticz.
Right now i use a 4,7uF capacitor.
Would replacing the capacitor with a 100uF makes sense? -
Overloading the Arduino delay@TheoL , i saw that there is a workshop but unfortunally i am very busy coming week so i can't come.
I will need some more time learning the code.
Funny i enough i used a wait for my rain sensor (moisture sketch with analog instead of digital)
I remove the wait and it is running much better. -
Overloading the Arduino delayThat would be very usefull.
Like me many people like to work with there hands and copy code.
I am in code a little bit but not enough to build my own code.
When i see code than most of it i understand. -
Repeater Node, problemsI have two which are powered (nano) with USB and both in the same place (garage)
They both are repeater nodes and i think they both have issues connecting to the nearest repeater node.