CR2450 рд╡рд╛рдпрд░рд▓реЗрд╕ рд▓рд╛рдЗрдЯрд┐рдВрдЧ-рд╕реЗрдВрд╕рд░

220V рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдмреИрд░реЛрдореАрдЯрд░, рдерд░реНрдорд╛рдореАрдЯрд░, рд╣рд╛рдИрдЧреНрд░реЛрдореАрдЯрд░ рдпрд╛ рдПрдХ рдмреЛрддрд▓ рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд╛рдпрд░рд▓реЗрд╕ рд╕реЗрдВрд╕рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдмреИрдЯрд░реА рдпрд╛ рд╕рдВрдЪрд╛рдпрдХ рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдкрдХрд░рдг рдХреЛ рдмрд┐рдЬрд▓реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЦреИрд░, рдЕрдЧрд░ рдпрд╣ рдПрдХ рдбрд┐рд╕реНрдХ рд▓рд┐рдерд┐рдпрдо рдмреИрдЯрд░реА (рдЯреИрдмрд▓реЗрдЯ) рд╣реИ - рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдмрд╣реБрдд рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
"рдЧреЛрд▓реА" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдмрд╛рдзрд╛ рдЗрд╕рдХреА рдЫреЛрдЯреА рдХреНрд╖рдорддрд╛ рд╣реИред рд▓реЗрдХрд┐рди "рдЯреИрдмрд▓реЗрдЯ" рдХреЗ рдмреАрдЪ рднреА рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рдирдореВрдиреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, CR2450, 550-610 рдПрдордПрдПрдЪ рдХреА рдЕрдиреБрдорд╛рдирд┐рдд рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рдеред
рдЪреВрдВрдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдЗрдирдбреЛрд░ рдФрд░ рдЖрдЙрдЯрдбреЛрд░ рддрд╛рдкрдорд╛рди рдФрд░ рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрдВрд╕рд░ рдереЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ BH1750 рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреНрд░рдХрд╛рд╢-рд╕реЗрдВрд╕рд░ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдмрд╛рд▓рдХрдиреА рдкрд░ рд░рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрд╕реЗ DS18B20 рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рд╕реЗ рд▓реИрд╕ рдХрд┐рдпрд╛ред
рдЪреВрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╕рднреА рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рджрдХреНрд╖рд┐рдг рдХреА рдУрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдмрд╛рд╣рд░реА рддрд╛рдкрдорд╛рди рдФрд░ рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрдВрд╕рд░ рд╕реВрд░рдЬ рдХреА рд░реЛрд╢рдиреА рд╕реЗ рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рднрд╛рд╡ рдХреА рднрд░рдкрд╛рдИ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдореМрд╕рдо рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рд╕реЗ рдХрд░рдиреА рдкрдбрд╝рддреА рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореИрдВ рдореБрдЖрд╡рдЬреЗ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рд╕реНрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддрд╛ рд╣реВрдВред
рд╕реЗрдВрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдЦрдкрдд рдКрд░реНрдЬрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
1. рд╕рдорд╛рдкреНрдд Arduinki рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░реЗрдВ рдФрд░ рд╕реАрдзреЗ 8 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдХреЗ рд╕рд╛рде ATmega 328P-PU рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдореИрдВрдиреЗ рдЖрдВрддрд░рд┐рдХ рдЖрд░рд╕реА рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рд╣рд░реА рддрд╛рдкрдорд╛рди рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдЖрд╡реГрддреНрддрд┐ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИред
2. LowPower рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП LowPower.powerDown рдкреЙрд╡рд░ рд╕реЗрд╡рд┐рдВрдЧ рдореЛрдб (SLEEP_8S, ADC_OFF, BOD_OFF) рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
ред DS18B20 рд╕реЗрдВрд╕рд░ рдХреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдбрд┐рдЬрд┐рдЯрд▓ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдкрд╛рд╡рд░ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдорд╛рдк рд╕реЗ рдкрд╣рд▓реЗ рддреБрд░рдВрдд рдЪрд╛рд▓реВ рдХрд░реЗрдВред
4. рдХреНрд░рдорд╢рдГ рдКрд░реНрдЬрд╛ рдмрдЪрдд рдореЛрдб, Radio.powerDown () рдФрд░ Light.configure (BH1750_ONE_TIME_HIGH_RES_MODE) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдзреЗ рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓ рдФрд░ BH1750 рдХреЛ рдкрд╛рд╡рд░ рдХрд░реЗрдВред
USBasp рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд╕рд╛рде рд╕рд╢рд╕реНрддреНрд░,

рдореИрдВрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдПрдХ рдлреНрдпреВрдЬ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдмреВрдЯрд▓реЛрдбрд░ред рдореИрдВрдиреЗ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛, рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреЗрдЪ рдмрдирд╛рдпрд╛ рдФрд░ рднрд╕реНрдо рдзрд╛рд░рд╛рдУрдВ рдХреЛ рдорд╛рдкрд╛: рд╕реНрд▓реАрдк рдореЛрдб рдореЗрдВ рдпрд╣ 14 ╬╝A рдирд┐рдХрд▓рд╛, рд╕реЗрдВрд╕рд░ рд╕реЗ рд░реАрдбрд┐рдВрдЧ рд▓реЗрдиреЗ рдХреЗ рдореЛрдб рдореЗрдВ - 3-4 рдПрдордП, рдПрдХ рдореМрд╕рдо рд╕реНрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП nRF24 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рдореЛрдб рдореЗрдВ - 16-18 mAред рдЗрд╕ рддрдереНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдореИрдВрдиреЗ рд╣рд░ 3 рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕реЗрдВрд╕рд░ рд╕реЗ рд░реАрдбрд┐рдВрдЧ рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рд╣рд░ 10 рдорд┐рдирдЯ рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ - рд╕реЗрдВрд╕рд░ рдмрд╣реБрдд рд╣реА рдХрд┐рдлрд╛рдпрддреА рд╣реИред
рдЕрдВрддрд┐рдо рдЙрдкрдХрд░рдг рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдФрд░ рддрд╛рд░ рдПрдордЬреАрдЯреАрдПрдл рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реБрдЖ:

рдмреИрдЯрд░реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо ATmega рдХреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ ред
рдмреВрдЯрд▓реЛрдбрд░ рдФрд░ рдлрд╝реНрдпреВрдЬрд╝ рдХреЛ рдлреНрд▓реИрд╢ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред
рд╕реНрд╡рд╛рдпрддреНрдд рд╕реЗрдВрд╕рд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдореИрдиреАрдХрдмрдЧ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред

рд╡рд┐рдВрдбреЛ рдкрд░ рдмрд╛рд▓рдХрдиреА рдкрд░ рджреВрд╕рд░реЗ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдВрд╕рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЭреВрда рдмреЛрд▓ рд░рд╣рд╛ рд╣реИ (рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ), рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реИред рдмрд┐рдЬрд▓реА рдирд┐рдпрдВрддреНрд░рдг рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди рд╕реНрд░реЛрдд рдХрд╛ рд╡реЛрд▓реНрдЯреЗрдЬ 3.05V рд╕реЗ рдХрдо рд╣реЛ рдЧрдпрд╛ рдЬрдм рдкрд╣рд▓реА рдмрд╛рд░ 2.98V рдЪрд╛рд▓реВ рд╣реБрдЖред рд╣рд╛рд▓рд╛рдВрдХрд┐, рджрд┐рди рдХреЗ рджреМрд░рд╛рди, рдЬрдм рд╕реВрд░рдЬ рдмрд╛рд▓рдХрдиреА рдХреЛ рдЧрд░реНрдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡реЛрд▓реНрдЯреЗрдЬ 3.00V рддрдХ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдардВрдб рдХреЗ рдореМрд╕рдо рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЪрдпрдирд┐рдд рдмреИрдЯрд░реА рдХрдо рддрд╛рдкрдорд╛рди рдкрд░ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред
рд╕реНрд▓реАрдк рдореЛрдб рдХреА рдЪрдпрдирд┐рдд рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕реЗрдВрд╕рд░ 24 рдШрдВрдЯреЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ 492-495 рд╕реЗрдХрдВрдб рдЬрд╛рдЧ рд░рд╣рд╛ рд╣реИред

рдЙрдкрдХрд░рдг рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрдм рддрдХ рдПрдХ рдорд╛рдорд▓реЗ рдХреЗ рдмрд┐рдирд╛, рдореБрдЭреЗ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ



03/20/2016 рдХреЗ рдЕрд▓рд╛рд╡рд╛ред
6 , . -24, 2,5280V.
( ) 4 + .


рд╕реНрд░реЛрдд
#include <LowPower.h>
#include <SPI.h>
#include <RF24Network.h>   
#include <RF24.h>          
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <BH1750.h>
/////// lass AVG //////////////////////////////////////////////////////////
class AVG {
  #define DEPTH_AVG 10
  private :
     int depth;
     long *mas;
     int cur;
     boolean first;
  public :
     boolean fDebug;  

  AVG(int d)
  {
    if( d == 0 || d > DEPTH_AVG)depth = DEPTH_AVG;
    else depth = d;
    mas = (long *)malloc(sizeof(long)*depth);
    first = true;
    cur   = 0;
    fDebug = false;
  }
  void Set(long x)
  {
    if( first )
    {
       for( int i=0; i<depth; i++ )mas[i] = x;
       cur = 0;
    }
    else
    {
    mas[cur++] = x;
    if( cur >= depth ) cur = 0; 
    }
    first = false;  
  }
  long Get()
  {
    long x=0;
    for( int i=0; i<depth; i++ )
          {
            x+=mas[i];
          }
    x/=depth;
    return(x);
  }
};
/////////////////////////////////////////////////////////////////////
#define pinPowerSensor 4    //    Pin 4
#define ONE_WIRE_BUS 3
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
BH1750 Light;
RF24 radio(/*ce*/ 9, /*cs*/ 10);
RF24Network network(radio);
//   
uint16_t this_node = 02;
// ,     
uint16_t main_node = 0;
//  
const int Chanel = 11;
int ReadCount;
int iSend     = 3;    //    
int WaitCount = 24;   //     8 .
bool allowSend = false; //   
AVG vAVG(3);
AVG tAVG(3);
AVG lAVG(3);
struct StreetMeteoSensor
{
  char    ID[5];     // 
  unsigned long UpTime;
  int   T;           //
  long  L;           //  (Lx) 
  int   V;           //   (mV)
};
struct StreetMeteoSensor sensor;
RF24NetworkHeader header(main_node, 'I');
////////////////////////////////////////////
#define DEBUG_MODE     0
////////////////////////////////////////////
void setup(void)
{
    if (DEBUG_MODE) 
  {
    Serial.begin(115200);
    //tAVG.fDebug = true;  
    //lAVG.fDebug = true;      
    Serial.println("-- START --");  
    WaitCount = 5;
  }
  for (int i = 1; i < 15; i++)  
  {
    pinMode(i, OUTPUT);
    digitalWrite(i,LOW);
  }
  digitalWrite(pinPowerSensor,HIGH);
  char ID[5] = "LTS1";
  memcpy(sensor.ID, ID, 5);  
  ReadCount = iSend;
  SPI.begin();
  delay(500);
  radio.begin();
  network.begin( Chanel, this_node );  
  sensors.begin();  
  Light.begin(BH1750_ONE_TIME_HIGH_RES_MODE);
  delay(500);
  radio.powerDown();    
  digitalWrite(pinPowerSensor,LOW);  
  Light.configure(BH1750_POWER_DOWN);
  if (DEBUG_MODE)  Serial.println("-- End SETUP --"); 
}

void loop(void)
{
  //  
 if (DEBUG_MODE) Serial.println("data read...");
  //  BH1750    , 
  Light.configure(BH1750_POWER_ON);                    //  
  Light.configure(BH1750_ONE_TIME_HIGH_RES_MODE);     //   
  digitalWrite(pinPowerSensor,HIGH);                  //    DS18B20
  sensors.setResolution(TEMP_9_BIT);   
  delay(250); 
  sensors.requestTemperatures();
  int T = sensors.getTempCByIndex(0);
  digitalWrite(pinPowerSensor,LOW);  //   DS18B20
  long L = Light.readLightLevel();  // ONE_TIME   
  int V = readVcc();  
  /////////////////////////////////////////////////////////////
  int tt = tAVG.Get();
  int vv = vAVG.Get();
  long ll = lAVG.Get();
  if (L > 0 || ll > 0 || T < tt-2 || T > tt+2 || V < vv-100/*0.1V*/) 
  { //  -    
    tAVG.Set(T);
    lAVG.Set(L);
    vAVG.Set(V); 
    allowSend = true;     //   -  
    //     0 ()
    if (ll == 0 &&  L > 0)
      lAVG.Set(L);  
  }
  ReadCount++;        
  /////////////////////////////////////////////////////////////
  if (DEBUG_MODE)
  {
    Serial.print("T= ");
    Serial.print(tAVG.Get());
    Serial.print(": ");
    Serial.print(T);    
    Serial.print("; L= ");
    Serial.print(lAVG.Get());
    Serial.print(": ");    
    Serial.print(L);    
    Serial.print("; V= ");
    Serial.print(vAVG.Get());
    Serial.print(": ");    
    Serial.print(V);        
    Serial.print("; ReadCount= ");    
    Serial.println(ReadCount);
  }  
  /////////////////////////////////////////////////////////////
  //    
  if ( ReadCount >= iSend && allowSend )
  {
    //     
    ReadCount = 0;
    allowSend = false;   
    radio.powerUp();
    delay(50);
    sensor.T = tAVG.Get();  
    sensor.L = lAVG.Get();
    sensor.V = vAVG.Get();    
    sensor.UpTime = millis()/1000;     
    network.write(header,&sensor,sizeof(sensor));
    radio.powerDown();  
  }    
  sleep();
}
//      
void sleep()
{
  if (DEBUG_MODE) {Serial.println("----- SLEEP -----");Serial.flush();}
  for (int i = 0; i < WaitCount; i++)  //   
  {
    LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); 
  }
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//   
int readVcc() 
{
  int result;
  // Read 1.1V reference against AVcc
  // set the reference to Vcc and the measurement to the internal 1.1V reference
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  delay(75); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Start conversion
  while (bit_is_set(ADCSRA,ADSC)); // measuring
  result = ADCL;
  result |= ADCH<<8;
  if (DEBUG_MODE) {Serial.print("result=");Serial.println(result);}
  result =  1125300L / result; // (Kvcc * 1023.0 * 1000) (in mV);
  return result; 
}

Source: https://habr.com/ru/post/hi385129/


All Articles