рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рджреЛ рдмреИрдЯрд░реА (рдПрдПрдП) рдкрд░ рджреЛ рд╕рд╛рд▓ рддрдХ рдорд┐рдЯреНрдЯреА рдХреА рдирдореА рдХрд╛ рд╕реЗрдВрд╕рд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕рд╣реА рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд▓реЗрдЦ
рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ (Arduino IDE) рдФрд░ рдмрд┐рд▓рдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ ред
рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрд░ рдУрдХ рдХреА рддрд╕реНрд╡реАрд░рдорд╛рд▓реА рд╢реМрдХрд┐рдпрд╛
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдереЛрдбрд╝реА рдкрд╣рдЪрд╛рди - рдореИрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдореИрдВ рдПрдХ рдШрд░реЗрд▓реВ рдорд╛рд▓реА рд╣реВрдВред рджреЛрдиреЛрдВ рдореЗрд░реЗ рд╢реМрдХ рд╣реИрдВред рдореЗрд░реА рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдкрд░ рдЕрд▓рдорд╛рд░рд┐рдпрд╛рдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдиреАрд▓реЗ-рд▓рд╛рд▓ рдПрд▓рдИрдбреА рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЗ рд╕рд╛рде, рдЬрд┐рд╕рдХреЗ рддрд╣рдд рдкреМрдзреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдЙрддреНрд╕рд╛рд╣ рдХреЗ рд╕рд╛рде рдмрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рдХрд╛рд╢ рд╕рдВрд╢реНрд▓реЗрд╖рдг рдФрд░ рдЕрдиреНрдп рд╡рдирд╕реНрдкрддрд┐ рд╡рд┐рдЬреНрдЮрд╛рди рдХреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрд▓рдИрдбреА рдмреИрдХрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдиреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХреА, рдЬрд┐рд╕рд╕реЗ рд╣рд▓ рд╣реБрдЖ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдЬрд┐рд╕ рдЙрдкрдХрд░рдг рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд╣реИ рд╡рд╣ рдкреИрджрд╛ рд╣реБрдЖ рдерд╛ред
рд╕реНрдкреЙрдЗрд▓рд░рдПрд▓ рдИ рдбреА рдЧрд░реНрдо рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, рдкреГрдереНрд╡реА рд╕реВрдЦ рд░рд╣реА рд╣реИ, рдореБрдЭреЗ рдХрд┐рд╕реА рддрд░рд╣ рдкрд╛рдиреАред
рдПрд▓рдИрдбреА рд▓рд╛рдЗрдиреЗрдВ (рд▓рдЧрднрдЧ 6 рд╡рд╛рдЯ рдХреА рд╢рдХреНрддрд┐), рд╡реЗ рдЦреБрдж рдХреЛ рдХрд╛рдлреА рджреГрдврд╝рддрд╛ рд╕реЗ рдЧрд░рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдкрд░ рд▓рдЧреЗ рдкреМрдзреЗ рдХреЗ рд╕рд╛рде рд╢реЗрд▓реНрдл рдФрд░ рдкреЙрдЯ рдХреЛ рдЧрд░реНрдо рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдпрдВрддреНрд░ рд╣реА, рдЧрд░реНрдо рдорд┐рдЯреНрдЯреА рдХреЛрдИ рдЕрд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рд▓рд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдорд┐рдЯреНрдЯреА рдХреЗ рдЬрд▓реНрджреА рд╕реВрдЦрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдмрд░реНрддрди рдореЗрдВ рдкреГрдереНрд╡реА рдЬреЛ рдмрд╕ рдЦрд┐рдбрд╝рдХреА рдкрд░ рдЦрдбрд╝реА рд╣реЛрддреА рд╣реИ, рдзреАрд░реЗ-рдзреАрд░реЗ рд╕реВрдЦ рдЬрд╛рддреА рд╣реИред рдФрд░ рдКрдкрд░реА рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рдкрд░, рдЬрд╣рд╛рдВ рд╕рд┐рдВрдЪрд╛рдИ рдХреЗ рджреМрд░рд╛рди рдорд┐рдЯреНрдЯреА рдХреА рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдУрд╡рд░рдлреНрд▓реЛ рдпрд╛ рд╕реВрдЦрд╛ рд╣реЛрддрд╛ рд╣реИред
рдмреЗрд╢рдХ, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдИрдмреЗ рдкрд░ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдорд┐рдЯреНрдЯреА рдХреА рдирдореА рдореАрдЯрд░ рдХреА рдПрдХ рдЧрд╛рдбрд╝реА рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмреАрдкрд░ рдХреЗ рд╕рд╛рде рдирдореА рдореАрдЯрд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЦрд░реАрджрд╛ рдЧрдпрд╛ рдерд╛ (рдХреАрдордд рд▓рдЧрднрдЧ 300 рд░реВрдмрд▓ рд╣реИ)ред
рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рд╣реИрдВ рд▓реЗрдХрд┐рди:
- рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмреАрдкрд░ рдХрд┐рд╕ рдЖрд░реНрджреНрд░рддрд╛ рд╕реНрддрд░ рдкрд░ рд╕реЗрдЯ рд╣реИред
- рдпрджрд┐ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдХрд░рдг рд╣реЛрдВрдЧреЗ, рддреЛ рдЖрдкрдХреЛ рдЪрд▓рдирд╛ рдФрд░ рд╕реБрдирдирд╛ рд╣реЛрдЧрд╛ред
- рдореИрдВ рд╡рд╣ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдФрд░ рдлрд┐рд░ рдУрд╕реНрдЯреИрдк рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрднрд╡ (
рдПрдХ рдФрд░
рджреЛ ) рд╣реИред рддреЛ рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЬрдиреНрдо рдорд┐рдЯреНрдЯреА рдХреА рдирдореА, рдкреНрд░рдХрд╛рд╢, рддрд╛рдкрдорд╛рди рдФрд░ рд╣рд╡рд╛ рдХреА рдирдореА рдХреЛ рдорд╛рдкрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рдорд╛рдк рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рдХрд╛рдлреА рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдмреИрдЯрд░реА рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ред
рд▓реЛрд╣реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ ред рдФрд░ рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рдбреЗрдЯрд╛рд╢реАрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░, ESP8266 рд╡рд╛рдИрдлрд╛рдИ рдореЛрдб рдореЗрдВ 170 рдПрдордП, рдореЙрдбреЗрдо рдСрдл (рдореЙрдбреЗрдо рд╕реНрд▓реАрдк) рдХреЗ рд╕рд╛рде 15 рдПрдордП рдФрд░ рдбреАрдк рд╕реНрд▓реАрдк рдореЛрдб рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ - рд▓рдЧрднрдЧ 10 ╬╝A рдХреА рдЦрдкрдд рдХрд░рддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдЙрдкрднреЛрдХреНрддрд╛ рд╕реЗ, рд╣рдо рдПрдХ рд╕реАрдкреАрд╕реА рдЗрдирдкреБрдЯ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рдИрдлрд╛рдИ рдореЙрдбреЗрдо, рдПрдХ AM2302 рд╕реЗрдВрд╕рд░ (рдЬреЛ TPS60240DGKR рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 3.3 V) рдФрд░ рдПрдХ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд░ (CD74HC4051M96) рдЦрд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╛рдИрдлрд╛рдИ рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдИрдПрд╕рдкреА 8266 рдХреЛ рд░реЗрдбрд┐рдпреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИред рдореЛрдбреЗрдо рд╕реНрд▓реАрдк рдореЛрдб рдореЗрдВ рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕рднреА рдорд╛рдк рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдореЙрдбреЗрдо рдХреЛ рдЪрд╛рд▓реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ Blynk рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (MQTT рдиреЗ рдЗрд╕реЗ рдЕрдм рдЙрдкрднреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ), рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдЕрдЧрд▓реА рдмрд╛рд░ рддрдХ рд╕реЛ рдЬрд╛рдПрдЧрд╛ред
рдЧрд╣рд░реА рдиреАрдВрдж рдореЗрдВ
рдмрд╢рд░реНрддреЗ рдХрд┐ рд╕рднреА рдкреИрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрдВ (RST рдкрд┐рди GPIO16 рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ), рдЖрдк ESP рдХреЛ рдбреАрдк рд╕реНрд▓реАрдк рдореЛрдб рдореЗрдВ рдПрдХ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
ESP.deepSleep(sleep_time, WAKE_RF_DISABLED);
sleep_time тАУ , , , ( blynk) тАУ 5-10 . , .
WAKE_RF_DISABLED тАФ , WiFi .
WiFi
Captive . , , WiFiManager, . . UART тАФ :
- ( ).
- ( ).
- WiFiManager.
Captive , WiFi Blynk token.
, WiFi ESP.
WiFi.forceSleepWake();
WiFi.mode(WIFI_STA);
delay(100);
if (WiFi.SSID()) WiFi.begin();
ESP8266 WiFi.disconnect(); WiFi . , SSID() , .
AM2302
\
DHT Sensor Library Adafruit. , , , GPIO. , , ( 99%) 5 . ┬л┬╗ , AM2302 , .. \ .
: , . тАФ ().
ESP8266 10-, 0..1 . , 1 . тАФ . , .
4 . ., , . , 3.3 2.5 ( ) .
\\ :
q_w = (adcbattery * 4) / 15; //
q_l = (adcbattery * 25) / 101; //
( ) . , ( ) .
float adcRead[3];
void quickSort(float *s_arr, int first, int last){
if (first < last){
int left = first, right = last, middle = s_arr[(left + right) / 2];
do{
while (s_arr[left] < middle) left++;
while (s_arr[right] > middle) right--;
if (left <= right){
int tmp = s_arr[left];
s_arr[left] = s_arr[right];
s_arr[right] = tmp;
left++;
right--;
}
}
while (left <= right);
quickSort(s_arr, first, right);
quickSort(s_arr, left, last);
}
}
void analogReadMedian(){
adcRead[0] = analogRead(ADCPin);
delay(10);
adcRead[1] = analogRead(ADCPin);
delay(10);
adcRead[2] = analogRead(ADCPin);
}
void readADC_median(int input){
switch(input){
case 1 :
digitalWrite(BPin, HIGH);
digitalWrite(C_DHTPin, LOW);
delay(50);
analogReadMedian();
quickSort(adcRead, 0, 2);
adcbattery = adcRead[1] * 4;
q_w = (adcbattery * 4) / 15;
q_l = (adcbattery * 25) / 101;
digitalWrite(BPin, LOW);
break;
case 2 :
digitalWrite(BPin, LOW);
digitalWrite(C_DHTPin, LOW);
analogWrite(PWMPin, 412);
delay(50);
analogReadMedian();
quickSort(adcRead, 0, 2);
adcwater = 5*(100 - 100*(adcRead[1] / q_w));
if (adcwater > 100) adcwater = 100;
if (adcwater < 0) adcwater = 0;
analogWrite(PWMPin, 0);
break;
case 3 :
digitalWrite(BPin, LOW);
digitalWrite(C_DHTPin, HIGH);
delay(50);
analogReadMedian();
quickSort(adcRead, 0, 2);
adclight = 100*(adcRead[1] / q_l);
if (adclight > 100) adclight = 100;
if (adclight < 0) adclight = 0;
break;
default :
delay(1);
}
}
, , , ┬л┬╗ . , ┬л┬╗ тАФ , - 100 . , 100 50% .
, ESP8266 78 , 75 .
:
pinMode(PWMPin, OUTPUT);
analogWriteFreq(75000);
analogWrite(PWMPin, 512);
analogWrite(PWMPin, 0);
, 1 , (2 ) 4 5760 . 12 ( ), (480 ).
, WiFi ┬л┬╗, . , . , .. Deep sleep . EEPROM, ESP ( ).
, 512 RTC , , Deep sleep. .
ESP.rtcUserMemoryWrite(offset, &data, sizeof(data))
ESP.rtcUserMemoryRead(offset, &data, sizeof(data))
, () () . . , , , .
.
.
.PS. .