Теплица
- Войдите на сайт для отправки комментариев
Привет, снова открываю тему про свою теплицу.
На сей раз уже в полевых условиях , вот ссылка на старый проект http://arduino.ru/forum/proekty/registrator-dannykh-teplitsy-avtopoliv-teplitsy
в новом проекте добавленны аккураторы на китайских моторах,
систему открытия форточек сам ваял + полив работает на шаровом клапане (кран ПНД)
https://leroymerlin.ru/product/kran-pnd-16609291/
к которому я прикрутил серву на 6v.
все добро работает на солнечных батереях 165х210 4 шт. 12v
и выдает в мае на прямых солнечных лучах 2А.
вечером под углом солца примерно 20 градусов 0,4 А.
+ аккумулятор на 4 а.ч.
к сожалению серву не получилось подключить напрямую к меге , видимо был конфликт библиотек
с часами . пришлось ещё ставит нану на серву.
/* beta 3.0 скетч для регистрации данных теплицы + полив по таймеру код написан любителем и возможно имеет ряд недостатков, но функционал работает если у Вас есть вопросы, замечания и предложения по коду присылайте на print-spb@yandex.ru в проекте используются датчики и модули: датчики влажности воздуха и температуры внутри и снаружи датчик влажности почвы датчик света датчик температуры герметичный часы реального времени модуль записи на SD arduino mega 2560 дисплей nextion реле */ //#include <DHT.h> #include <OneWire.h> #include <DallasTemperature.h> #include <SPI.h> #include <SD.h> #include <Wire.h> #include <DS3231.h> #include <SoftwareSerial.h> #include <Nextion.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> #define SEALEVELPRESSURE_HPA (1013.25) Adafruit_BME280 bme; // I2C #include <HTU21D.h> SoftwareSerial nextion(13, 12);// Nextion TX to pin 11 and RX to pin 10 of Arduino Nextion myNextion(nextion, 9600); #define moisture_sensor A13 // датчик влажности почвы int very_moist_value = 0; // Показания датчика влажности почвы при очень мокрой почве (для калибровки процентного вывода) //DHT dht1(4, DHT22); // датчик влажноси и температуры //DHT dht2(5, DHT22); // датчик влажноси и температуры #define ONE_WIRE_BUS 3 // герметичный датчик температуры #define photocellPin A1 // датчик света int photocellReading; long secund; long minut; long hor; String days; const int chipSelect = 53; // пин sd карты DS3231 clock; RTCDateTime dt; //const int ledPin = 2; // пин подачи питания на датчики long secstar; long minstar; long horstar; long secfin; long minfin; long horfin; long Curent_Time; long Curent_Alarm_On1; long Curent_Alarm_Off1; boolean Monday=false; boolean Tuesday=false; boolean Wednesday=false; boolean Thursday=false; boolean Friday=false; boolean Saturday=false; boolean Sunday=false; boolean N=false; // является ли день недели с установленным сейчас boolean W=false; // запись данных на sd карту в установленные минуты boolean G=false; // подача питания на пин для датчиков в установленные минуты boolean z=false; // (delay для nextion кроме момента записи) OneWire oneWire(ONE_WIRE_BUS); // Сообщаем библиотеке об устройстве, работающем по протоколу 1-Wire DallasTemperature sensors(&oneWire); // Связываем функции библиотеки DallasTemperature с нашим 1-Wire устройством (DS18B20) HTU21D myHTU21D; byte dd = 9; // дождь byte val; // дождь byte vlaj; // переменная установки влажности почвы boolean fvlaj=false; // кнопка использования привязки к влажности почвы boolean govlaj=false; // клапан полива const int pi1 = 39; // кнопка на открытие 1 const int pi2 = 41; // кнопка на закрытие 1 const int pi3 = 43; // кнопка на открытие 2 const int pi4 = 45; // кнопка на закрытие 2 byte x1 = 0; // состояние кнопки byte x2 = 0; // состояние кнопки byte x3 = 0; // состояние кнопки byte x4 = 0; // состояние кнопки byte x; // состояние окна проветривания byte y; byte t1 = 25; // температура закрытия byte t2 = 30; // температура открытия byte t3 = 25; // температура закрытия byte t4 = 30; // температура открытия byte t; // температура online byte h; // влажность online byte t0; // второй датчик температуры online byte h0; // второй датчик влажности online byte intt1 = 5; // интервал температур на закрытие и открытие byte intt2 = 5; // интервал температур на закрытие и открытие void setup() { bme.begin(); myHTU21D.begin(); sensors.begin(); //dht1.begin(); //dht2.begin(); vlaj=50; // переменная установки влажности почвы //servo.attach(10); //pinMode(ledPin, OUTPUT); pinMode(2, OUTPUT); // пин питания датчиков pinMode(7, OUTPUT); // пин реле pinMode(dd, INPUT); // датчик дождя pinMode(10, OUTPUT); // сигнал на контроллер для сервы (полив) pinMode(pi1, INPUT); // кнопка форточки pinMode(pi2, INPUT); // кнопка форточки pinMode(pi3, INPUT); // кнопка форточки pinMode(pi4, INPUT); // кнопка форточки pinMode(38, OUTPUT); // пины на двигатель форточки pinMode(40, OUTPUT); // пины на двигатель форточки // Serial.begin(9600); myNextion.init(); clock.begin(); { if (!SD.begin(chipSelect)) { myNextion.setComponentText("t9", "error"); } myNextion.setComponentText("t9", "ready"); } // Set from UNIX timestamp // clock.setDateTime(1397408400); // Manual (YYYY, MM, DD, HH, II, SS // Set sketch compiling time //clock.setDateTime(__DATE__, __TIME__); // // clock.setDateTime(2017, 04, 14, 23, 59, 20); } void loop() { dt = clock.getDateTime(); secund = (dt.second); minut = (dt.minute); hor = (dt.hour); days = (clock.dateFormat("N", dt)); t = myHTU21D.readTemperature()+1; h = myHTU21D.readHumidity()+7; t0 = bme.readTemperature(); h0 = bme.readHumidity(); x1= digitalRead (pi1); // состояние кнопки x2= digitalRead (pi2); // состояние кнопки x3= digitalRead (pi3); // состояние кнопки x4= digitalRead (pi4); // состояние кнопки { if (x1 == HIGH){ // кнопка на максимальное закрытие x=1; } if (x2 == HIGH) { // кнопка на максимальное открытие x=2; } if ((x1 == LOW) && (x2 == LOW)){ // обе кнопки не нажаты x=3; } if (x3 == HIGH){ // кнопка на максимальное закрытие y=1; } if (x4 == HIGH) { // кнопка на максимальное открытие y=2; } if ((x3 == LOW) && (x4 == LOW)){ // обе кнопки не нажаты y=3; } if ((t0>=t2)&&( x!=1)){ // если температура ровна или больше температуры открытия и не нажата кнопка на максимальное открытие digitalWrite (38, LOW); digitalWrite (40, HIGH); } else if ((t0<=t1)&&(x!=2)){ // если температура ровна или меньше температуры закрытия и не нажата кнопка на максимальное закрытие digitalWrite (38, HIGH); digitalWrite (40, LOW); } else { digitalWrite (38, LOW); digitalWrite (40, LOW); } if ((t0>=t4)&&( y!=1)){ // если температура ровна или больше температуры открытия и не нажата кнопка на максимальное открытие digitalWrite (42, LOW); digitalWrite (44, HIGH); } else if ((t0<=t3)&&(y!=2)){ // если температура ровна или меньше температуры закрытия и не нажата кнопка на максимальное закрытие digitalWrite (42, HIGH); digitalWrite (44, LOW); } else { digitalWrite (42, LOW); digitalWrite (44, LOW); } } Curent_Time = ((hor * 3600) + (minut * 60)) + secund; //текущее время Curent_Alarm_On1 = (horstar*3600)+ (minstar*60) + secstar; // начало работы реле Curent_Alarm_Off1 = (horfin*3600)+ (minfin*60) + secfin; // завершение работы реле { String message = myNextion.listen(); if (message != "") { // Serial.println(message); } //**************************функции кнопок таймера********************************************** if ((message == "65 2 e 1 ffff ffff ffff") || (message == "65 2 e 0 ffff ffff ffff")) { secstar++; } if ((message == "65 2 f 1 ffff ffff ffff") || (message == "65 2 f 0 ffff ffff ffff")) { secstar--; } if ((message == "65 2 c 1 ffff ffff ffff") || (message == "65 2 c 0 ffff ffff ffff")) { minstar++; } if ((message == "65 2 d 1 ffff ffff ffff") || (message == "65 2 d 0 ffff ffff ffff")) { minstar--; } if ((message == "65 2 a 1 ffff ffff ffff") || (message == "65 2 a 0 ffff ffff ffff")) { horstar++; } if ((message == "65 2 b 1 ffff ffff ffff") || (message == "65 2 b 0 ffff ffff ffff")) { horstar--; } if ((message == "65 2 14 1 ffff ffff ffff") || (message == "65 2 14 0 ffff ffff ffff")) { secfin++; } if ((message == "65 2 15 1 ffff ffff ffff") || (message == "65 2 15 0 ffff ffff ffff")) { secfin--; } if ((message == "65 2 12 1 ffff ffff ffff") || (message == "65 2 12 0 ffff ffff ffff")) { minfin++; } if ((message == "65 2 13 1 ffff ffff ffff") || (message == "65 2 13 0 ffff ffff ffff")) { minfin--; } if ((message == "65 2 10 1 ffff ffff ffff") || (message == "65 2 10 0 ffff ffff ffff")) { horfin++; } if ((message == "65 2 11 1 ffff ffff ffff") || (message == "65 2 11 0 ffff ffff ffff")) { horfin--; } //****************************режим работы по дням недели******************************************** if ((message == "65 3 4 1 ffff ffff ffff") || (message == "65 3 4 0 ffff ffff ffff")) { Monday=!Monday; } if (Monday==true) { myNextion.sendCommand("b32.bco=63488"); } else if (Monday==false){ myNextion.sendCommand("b32.bco=48631"); } if ((message == "65 3 5 1 ffff ffff ffff") || (message == "65 3 5 0 ffff ffff ffff")) { Tuesday=!Tuesday; } if (Tuesday==true) { myNextion.sendCommand("b33.bco=63488"); } else if (Tuesday==false){ myNextion.sendCommand("b33.bco=48631"); } if ((message == "65 3 6 1 ffff ffff ffff") || (message == "65 3 6 0 ffff ffff ffff")) { Wednesday=!Wednesday; } if (Wednesday==true) { myNextion.sendCommand("b34.bco=63488"); } else if (Wednesday==false){ myNextion.sendCommand("b34.bco=48631"); } if ((message == "65 3 7 1 ffff ffff ffff") || (message == "65 3 7 0 ffff ffff ffff")) { Thursday=!Thursday; } if (Thursday==true) { myNextion.sendCommand("b35.bco=63488"); } else if (Thursday==false){ myNextion.sendCommand("b35.bco=48631"); } if ((message == "65 3 8 1 ffff ffff ffff") || (message == "65 3 8 0 ffff ffff ffff")) { Friday=!Friday; } if (Friday==true) { myNextion.sendCommand("b36.bco=63488"); } else if (Friday==false){ myNextion.sendCommand("b36.bco=48631"); } if ((message == "65 3 9 1 ffff ffff ffff") || (message == "65 3 9 0 ffff ffff ffff")) { Saturday=!Saturday; } if (Saturday==true) { myNextion.sendCommand("b37.bco=63488"); } else if (Saturday==false){ myNextion.sendCommand("b37.bco=48631"); } if ((message == "65 3 a 1 ffff ffff ffff") || (message == "65 3 a 0 ffff ffff ffff")) { Sunday=!Sunday; } if (Sunday==true) { myNextion.sendCommand("b38.bco=63488"); } else if (Sunday==false){ myNextion.sendCommand("b38.bco=48631"); } //****************************влажность почвы полив******************************************** if ((message == "65 4 8 1 ffff ffff ffff") || (message == "65 4 8 0 ffff ffff ffff")) { fvlaj=!fvlaj; } if (fvlaj==true) { myNextion.sendCommand("b42.bco=1024"); } else if (fvlaj==false){ myNextion.sendCommand("b42.bco=48631"); } if ((message == "65 4 5 1 ffff ffff ffff") || (message == "65 4 5 0 ffff ffff ffff")) { vlaj++; } if ((message == "65 4 6 1 ffff ffff ffff") || (message == "65 4 6 0 ffff ffff ffff")) { vlaj--; } //****************************ffffffff******************************************** if ((message == "65 5 1 1 ffff ffff ffff") || (message == "65 5 1 0 ffff ffff ffff")) { t1++; t2++; } if ((message == "65 5 7 1 ffff ffff ffff") || (message == "65 5 7 0 ffff ffff ffff")) { t1--; t2--; } if ((message == "65 5 8 1 ffff ffff ffff") || (message == "65 5 8 0 ffff ffff ffff")) { intt1++; } if ((message == "65 5 9 1 ffff ffff ffff") || (message == "65 5 9 0 ffff ffff ffff")) { intt1--; } t2=t1+intt1; /* if (intt1<1){ intt1=10; } if (intt1>10){ intt1=1; } */ //**************6666666666666666666666666666666666666666666666666666 if ((message == "65 6 4 1 ffff ffff ffff") || (message == "65 6 4 0 ffff ffff ffff")) { t3++; t4++; } if ((message == "65 6 5 1 ffff ffff ffff") || (message == "65 6 5 0 ffff ffff ffff")) { t3--; t4--; } if ((message == "65 6 9 1 ffff ffff ffff") || (message == "65 6 9 0 ffff ffff ffff")) { intt2++; } if ((message == "65 6 a 1 ffff ffff ffff") || (message == "65 6 a 0 ffff ffff ffff")) { intt2--; } t4=t3+intt2; /* if (intt2<1){ intt2=10; } if (intt2>10){ intt2=1; } */ } if (Curent_Time >= Curent_Alarm_On1 && Curent_Time <= Curent_Alarm_Off1 && N==true && govlaj==true) { // включение реле по таймеру(видимо китайская версия начинает работать при LOW ) digitalWrite (10, HIGH); } else { digitalWrite (10, LOW); } //******************************************переменная на влючения реле по дням недели******************************************************************** if ((days == "1")&&(Monday==true)){ N=true; } else if ((days == "2")&&(Tuesday==true)){ N=true; } else if ((days == "3")&&(Wednesday==true)){ N=true; } else if ((days == "4")&&(Thursday==true)){ N=true; } else if ((days == "5")&&(Friday==true)){ N=true; } else if ((days == "6")&&(Saturday==true)){ N=true; } else if ((days == "7")&&(Sunday==true)){ N=true; } else{ N=false; } //***********************************тут всё понятно******************************************************** if ( horstar > 23) { horstar = 0; } if (horfin > 23) { horfin = 0; } if (minstar > 59) { minstar = 0; } if (minfin > 59) { minfin = 0; } if (secstar > 59) { secstar = 0; } if (secfin > 59) { secfin = 0; } if ( horstar < 0) { horstar = 23; } if (horfin < 0) { horfin = 23; } if (minstar < 0) { minstar = 59; } if (minfin < 0) { minfin = 59; } if (secstar < 0) { secstar = 59; } if (secfin < 00) { secfin = 59; } if ((minut==59) || (minut==04) || (minut==9) || (minut==14) || (minut==19) || (minut==24) || (minut==29) || (minut==34) || (minut==39) || (minut==44) || (minut==49) || (minut==54)) { G=true ; } else { G=false; } if ((minut==00) || (minut==05) || (minut==10) || (minut==15) || (minut==20) || (minut==25) || (minut==30) || (minut==35) || (minut==40) || (minut==45) || (minut==50) || (minut==55)) { W=true ; } else { W=false; } //*******************************переменные датчиков******************************************************* // static int hh1; // static int tt1; // static int hh2; // static int tt2; static int fff; // почва static int hhh; // яркость static int ggg; // температура воды static int rein; // дождь // int moisture_value = analogRead(moisture_sensor); // int t1 = dht1.readTemperature(); //**************************************функция чтения переменных с датчиков****************************************************** if((secund == 57 && G==true) || (secund == 58 && G==true) || (secund == 58 && G==true)) { boolean z=true; //********************************************************************* int moisture_value = analogRead(moisture_sensor); if (moisture_value>0){ fff = map(moisture_value, very_moist_value, 1023, 100, 0); // Переводим показания датчика влажности почвы в проценты } //*********************************************************************** photocellReading = analogRead (photocellPin); hhh = photocellReading / 10; // hh1 = dht1.readHumidity(); // tt1 = dht1.readTemperature(); // hh2 = dht2.readHumidity(); // tt2 = dht2.readTemperature(); sensors.requestTemperatures(); ggg = (sensors.getTempCByIndex(0)); //***********************это дождь************************************************ val=digitalRead(dd); if (val == HIGH) { rein = 0; } if (val == LOW) { rein = 100; } //*********************************************************************** } else { boolean z=false; } //******************************включение пина подачи питания на датчики (опытным путём установленно ,что для стабилизации питания для чтения ,необходимо 3 секунды )****************************************************** if((secund == 55 && G==true) || (secund == 55 && G==true) || (secund == 56 && G==true) || (secund == 57 && G==true) || (secund == 58 && G==true)) { digitalWrite (2, LOW); // у нас тут (датчик влажности почвы). (датчик дождя). (датчик света). } else { digitalWrite (2, HIGH); } //******************************************************************************************* { if (fvlaj==false) { govlaj=true; } else if ((fvlaj==true)&&(vlaj<fff)) { govlaj=true; } else govlaj=false; } //*******************************запись данных на SD карту****************************************************** if (secund == 00 && W==true) { boolean z=true; //String dataString = String(clock.dateFormat("H:i:s", dt)) + "," + String(hhh) + "," + String(fff) + "," + String(hh2)+ "," + String(tt2)+ "," + String(hh1)+ "," + String(tt1)+ "," + String(ggg)+ "," + String(rein); String dataString = String(clock.dateFormat("H:i:s", dt)) + "," + String(hhh) + "," + String(fff) + "," + String(h0)+"," + String(t0)+ "," + String(h)+ "," + String(t)+ "," + String(ggg)+ "," + String(rein); String dat = String(clock.dateFormat("d_m_y", dt)) + ".csv"; // каждый день новый фаил File dataFile = SD.open(dat, FILE_WRITE); if (dataFile) { // delay (740); // задержка на запись ( для одной записи в пределах секунды) dataFile.println(dataString); dataFile.close(); myNextion.setComponentText("t10", "Rec"); } } else { myNextion.setComponentText("t10", "NO Rec"); boolean z=false; } myNextion.setComponentText("t13",String(secstar)); myNextion.setComponentText("t12",String(minstar)); myNextion.setComponentText("t11",String(horstar)); myNextion.setComponentText("t16",String(secfin)); myNextion.setComponentText("t15",String(minfin)); myNextion.setComponentText("t14",String(horfin)); myNextion.setComponentText("t7", String(fff)); myNextion.setComponentText("t6", String(hhh)); //myNextion.setComponentText("t3", String(tt2)); myNextion.setComponentText("t4", String(myHTU21D.readHumidity()+7)); //myNextion.setComponentText("t4", String(hh2)); myNextion.setComponentText("t3", String(myHTU21D.readTemperature()+1)); //myNextion.setComponentText("t1", String(tt1)); myNextion.setComponentText("t1", String(bme.readTemperature())); //myNextion.setComponentText("t2", String(hh1)); myNextion.setComponentText("t2", String (bme.readHumidity())); myNextion.setComponentText("t8", String((bme.readPressure() / 100.0F)*0.75)); myNextion.setComponentText("t0", String(clock.dateFormat("H:i:s d_m_y", dt))); myNextion.setComponentText("t20", String(clock.dateFormat("l", dt))); myNextion.setComponentText("t5", String(ggg)); myNextion.setComponentText("t22", String(t2)); myNextion.setComponentText("t23", String(t1)); myNextion.setComponentText("t25", String(t4)); myNextion.setComponentText("t26", String(t3)); myNextion.setComponentText("t24", String(t0)); myNextion.setComponentText("t21", String(vlaj)); myNextion.setComponentText("t60", String(rein)); if (z==false) { delay (200); // нужна для работы сенсорных кнопо (видимо особенность работы библиотеки ) } }
Круто!
Отлично!!!!! А справа от Nextion это DC-DC
А справа от Nextion
Слева
Да, понижает с 12 до 9 + от него питается серва , ну и заряд на акамуляторе смотреть
КЛАСС!!!
Очень здорово!!! А можно поподробней про комплектующие???
Вот бы бибилиотеки к этому проекту приложить и какая версия IDE
YRA к вам кстати доехал nextion ?
ide 1.8.1
https://ru.aliexpress.com/item/Best-Price-12V-10Rpm-Reversible-High-Torq...
https://ru.aliexpress.com/item/Free-Shipping-1PCS-New-Dual-H-Bridge-DC-S...
https://ru.aliexpress.com/item/Si7021-Industrial-High-Precision-Humidity...
https://ru.aliexpress.com/item/I2C-SPI-Breakout-Temperature-Humidity-Bar...
https://ru.aliexpress.com/item/Free-shipping-Micro-SD-card-mini-TF-card-...
https://ru.aliexpress.com/item/LM2596-LM2596S-LED-Voltmeter-ADJ-DC-DC-St...
https://ru.aliexpress.com/item/5set-lot-Snow-Raindrops-Detection-Sensor-...
https://ru.aliexpress.com/item/1pcs-Mega-2560-R3-CH340G-ATmega2560-16AU-...
https://ru.aliexpress.com/item/1pcs-Stainless-steel-package-Waterproof-D...
https://ru.aliexpress.com/item/Nextion-2-4-TFT-320-x-240-Resistive-Touch...
библиотеки , если что-то пропустил сильно не пинайте https://yadi.sk/d/L0o8okLU3KaNXT
монитор 320х240 горизонталь исходник https://yadi.sk/d/KaY4ALKl3KaNbm , для загрузки с sd на nextion https://yadi.sk/d/W32dEMmG3KaPNf
в рхиве есть библиотека для dht 11 или 22 , их можно использовать вместо si7021 и
BME280
только скетч чуть отредактируйте , там впринципе всё прописанно уберите только (//).
Спасибо, за быстрый ответ, сею поздно уже разбираться, только с дачи приехал( для Вашего региона это вообще ни очем 6 км), а завтра на работе, если время позволит, попробую, у меня из Вашей первой разработки все компилировась в 1.6.7. Да пришли нехтионы, пришла мега мини ( очень интересная платка)
Запустил 1.8.1 все скомпилировалось ,но в железе пока проверить не могу, на работе ремонт, все в коробках а где, сам черт ногу сломит
Вопрос:
082
//const int ledPin = 2; // пин подачи питания на датчики
Это закометирован пин 2 для подачи питания, как я понял, на часть датчиков, скорее всего DHT?
171
//pinMode(ledPin, OUTPUT);
Это я не понимаю что скорее всего для актуатора сигнализация.
"Это строки для установки дата и времени. раскоментирушь, устанавливаешь, прошиваешь далее можно закоментировать и прошить -время сохраниться. Так верно???
200
// Set from UNIX timestamp
201
// clock.setDateTime(1397408400);
202
203
// Manual (YYYY, MM, DD, HH, II, SS
204
// Set sketch compiling time
205
//clock.setDateTime(__DATE__, __TIME__);
206
//
207
// clock.setDateTime(2017, 04, 14, 23, 59, 20);
208
Вот как раз следующая строка 172 включает датчики , на 2 пине. 82 и 171 просто лишние строки
В 207 строке ставлю время
Спасибо, не знаю, в мегу микро залил, вроде нормально, если завтра время позволит. попытаюсь найти железяки в развалах ремонта, может что-т выйдет. заказал железяки не достающие.
P.S. Маниторчик то у меня 480х320
Ан нет нашел таки 320х240. Теперь прошьемся.
052
SoftwareSerial nextion(13, 12);
// Nextion TX to pin 11 and RX to pin 10 of Arduino
не въеду .
То ли "лыжи не едут у меня, толи я ...". но я то знаю, что Я .... от природы.
Завтра н работе попрбую собрать на проводах, если ситуевина позволит.
Здравствуйте,Есть теплица, хочиться повторить ваш Marchenko проект,купил всё что написано в 8-ом посте,ардуино только изучаю,на макетной плате ,соединил arduino mega 2560 //nextion //датчик дождя //sd kart//Скетч залил в мега в nextion.Вопрос nextion RX -13pin//TX-12pin я правильно соединил,//дачик дождя A0-20pin.D0-21pin//sd kart cs-53..miso-50..mosi-53.sck-52. Мега соединил через usb к комп,nextion показывает меню нажимаю полив и вижу что nextion не видить датчик ,не записывает дни недели ,в sd kart стоит карточка, Пробовал менял местами пины по разному но всё равно не работает
привет, надо как то всё по порядку .
датчик дождя у меня на 9 пин цифровой
byte
dd = 9;
// дождь
174
pinMode(dd, INPUT);
// датчик дождя
val=digitalRead(dd);
625
626
if
(val == HIGH)
627
{
628
rein = 0;
629
}
630
if
(val == LOW)
631
{
632
rein = 100;
633
}
тоесть либо дождь это 100
либо дождя нет это 0
d kart cs-53..miso-50..mosi-53.sck-52. ?????
http://howtomechatronics.com/wp-content/uploads/2016/08/Arduino-SD-Card-...
питание на цифровой датчик дождя идёт 172
pinMode(2, OUTPUT);
// пин питания датчиков
http://house4u.com.ua/photos/solar-controller/arduino-SD-sch.jpg
Привет,буду по порядку, 1,Nextion RX-13pin pwm.TX-12pin pwm.????? правильно я соединил НА pwm или на analog in запутлся ...//2,sd kart я содинял как показано в посте 17-ом,вставил пустую micro sd 16g .....//3.датчик дождя два пина на плату а четыре пина vcc. gnd. D0. A0.
pinMode(2, OUTPUT);
// пин питания датчиков ,D0.или A0 на 9-ый пин,
pinMode(2 я так понимаю это на плате где написано pwmНа пвм ,экран работает картинка есть кнлпки работают ? у меня карта 8g fat 32 птшет каждые 5 минут ,тут надо с картридером разбираться, датчик дождя vcc - d2 , gnd - gnd , d0 - d9
есть возможность фото прислать ?
На следующей недели буду дальше разбираться ,дачный сезон ,загатовки
DS3231: Real-Time Clock эти часы надо отдельно покупать я правильно понял
https://ru.aliexpress.com/item/Free-shipping-5PCS-DS3231-Real-Time-Clock-Module-for-arduino-3-3V-5V-with-battery-For/1812869576.html?spm=a2g0s.13010208.99999999.262.BRTX4V
Ну, если у Вас нет, то надо покупать. Странный вопрос :)
Ну, если у Вас нет, то надо покупать. Странный вопрос :)
А если спереть где? Будут работать?
Как вариант, чтобы не ждать долго, можно у соседа счетчик многотарифный раскурочить, правда 1307 ...дарасы ставят.))))
...датчик дождя у меня на 9 пин цифровой
byte
dd = 9;
// дождь
174
pinMode(dd, INPUT);
// датчик дождя
.....
Предполагаю, что датчик дождя типа такого
Как он реагирует на утреннюю росу?
Сколько времени обсыхает после дождя?
Подогрев ему не делали, чтоб быстрее обсыхал?
Не рассматривали другие датчики осадков?
Да такой датчик, он установлен на крыше, не смотрел как он реагирует на росу. но проработал он месяца 3 , весь окислелся.
это при том, что питание на него подаётся на несколько секунд с интервалом 5 минут . я думаю что нужна принципиально другая схема.
Не могу найти биилиотеку 43 #include <Adafruit_Sensor.h> при компиляции пишет ошибку
а разве тут её нет ? https://yadi.sk/d/L0o8okLU3KaNXT
Adafruit_BME280_Library-master
043
#include <Adafruit_Sensor.h>
044
#include <Adafruit_BME280.h>
https://github.com/adafruit/Adafruit_BME280_Library/blob/master/examples...
Не могу найти биилиотеку 43 #include <Adafruit_Sensor.h> при компиляции пишет ошибку
У гугла пробовал спрашивать?
https://www.google.com/search?q=Adafruit_Sensor.h
https://github.com/adafruit/Adafruit_BME280_Library
Да такой датчик, он установлен на крыше, не смотрел как он реагирует на росу. но проработал он месяца 3 , весь окислелся.
это при том, что питание на него подаётся на несколько секунд с интервалом 5 минут . я думаю что нужна принципиально другая схема.
Я так и не нашёл подходящего датчика осадков по приемлемой цене - до 1 т.руб, а дороже - жаба душит).
Делал несколько вариантов. На 555 таймере, на МК и даже на элементе Пельтье-самый простой. Подавал импульс тока (верх нагрев, а низ охлаждение) и затем мерил ЭДС с элемента. Хорошо определяется влажный верх или сухой. Недостаток - импульс тока порядка 2 А - тоже не подходит.
У гугла спрашивал
Вот https://github.com/adafruit/Adafruit_Sensor
Всем привет! Хочу озвучить зачем я сдесь..
Есть желание собрать на ардуино простую теплицу , но чтоб дома через инет смотреть что там творится. О себе 60 лет, радиолюбитель UA0COO, на даче есть инет хороший канал (микротики с оптики транстелеком), сейчас работают Вэб сдр приемники. С паяльникам в ладах , но в свое время заразился асемблером и вот в свои годы трудновато шагнуть в писанину скетчев.. Прошу , кто не ровно дышит к желанию сделать доступную теплицу, которая будет популярная по повторениям, (написать для ардуино) - отзовитесь... Со своей стороны подскажу что и как нужно для теплицы... Во всех просмотренных проектах, все хорошо, все работает , но нет простоты, гибкости, возможности упрощать или усложнять, обрастать исполнительным железом.......... Ну и согласитесь у пенсионера есть дома комп и у него просто будет чесаться зайти на вэб морду мозгов его теплицы, которая в 40-50 км от него и посмотреть как она кубатурит.
Ребята, жду советов, предложений, участия... Хорошо бы спеца, который бы мог визуализировать в винде работу теплицы (может даже с анимацией)
Всем привет! Хочу озвучить зачем я сдесь..
Ребята, жду советов, предложений, участия... Хорошо бы спеца, который бы мог визуализировать в винде работу теплицы (может даже с анимацией)
Готовый проект, с вебмордой, приложением под андроид, большим дисплеем с тачскрином, исходники открыты для некоммерческого использования: http://gardenboss.ru
Ессно, есть недоработки, т.к. проект хоббийный, и делается в свободное время.
Обсуждение: https://www.forumhouse.ru/threads/489004/page-104
Гитхаб: https://github.com/Porokhnya/GreenHouseProject