Регистратор данных теплицы + автополив теплицы

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

Привет, решил выложить свое творение , очередной автополив в теплице с записью данных на SD.

система пока тестируется в горшке, весной буду монтировать в теплицу.

читая на форумах про автополив, ничего интересного к сожалению не нашёл , люди привязываются к влажности почвы , как только она высыхает начинают её поливать , в итоге корни не развиваются , у корней должны быть стимул к росту . Как поливать и когда это целая наука. (так к слову) .

   Естественно для каждого огорода , уход за растениями индивидуальный.

мой огород в Лен области ,  болотистое место , торфянники, солца нет , ветра. Ну вобщем "это Питер детка"

поэтому решил начать с записи данных на карту , для поледующего вывода графика и анализа данных.

проветривание в теплице скорей всего будет отдельно от системы , на гидропоршне.

а полив будет по таймеру и дням недели .

  Записывать будем данные температуры с наружи и внутри , влажномть воздуха также снаружи и внутри, яркость солца, температуру почвы ,ну и влажность почвы.

данные записываются каждые 5 мин, новый фаил каждый день.

ну и полив через реле, время начала и время завершения + дни недели.

в принципе в коде всё понятно, я новичёк поэтому скетч выглядит смешно, но работает.

интересно ваше мнение предложения и замечания. в дальнейшем думаю добавить датчик дождя.

и уже дальше по анализу данных привязывать полив к влажности температуре и тд. 

может кстати кому и скетч пригодится.

 

/*

скетч для регистрации данных теплицы + полив по таймеру
код написан любителем и возможно имеет ряд недостатков, но функционал работает
если у Вас есть вопросы, замечания и предложения по коду присылайте на почту  print-spb@yandex.ru

в проекте используются датчики и модули:

dht - датчики влажности воздуха и температуры внутри и снаружи
датчик влажности почвы
датчик света
датчик температуры герметичный

часы реального времени
модуль записи на 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>

SoftwareSerial nextion(11, 10);// Nextion TX to pin 11 and RX to pin 10 of Arduino

Nextion myNextion(nextion, 9600);

#define moisture_sensor A0 // датчик влажности почвы
int very_moist_value = 200;   // Показания датчика влажности почвы  при очень мокрой почве (для калибровки процентного вывода)

DHT dht1(4, DHT22); // датчик влажноси и температуры
DHT dht2(5, DHT11); // датчик влажноси и температуры

#define ONE_WIRE_BUS 3 // герметичный датчик температуры

//int photocellPin = A1; // датчик света
#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)

void setup()
{

sensors.begin();

dht1.begin();
dht2.begin();

//pinMode(ledPin, OUTPUT);
pinMode(2, OUTPUT); // пин питания датчиков
pinMode(7, OUTPUT); // пин реле
pinMode(8, OUTPUT); 

  Serial.begin(9600);

  myNextion.init();

  clock.begin();

  {
    if (!SD.begin(chipSelect))
    {
      myNextion.setComponentText("t3", "error");
    }
    myNextion.setComponentText("t3", "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(2016, 11, 30, 17, 54, 00);

}
void loop()
{
    
dt = clock.getDateTime();
secund = (dt.second); 
minut = (dt.minute);
hor = (dt.hour);
days = (clock.dateFormat("N", dt));

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 1 5 1 ffff ffff ffff") {
    secstar++;
  }
   if (message == "65 1 6 1 ffff ffff ffff") {
    secstar--;
  }
   if (message == "65 1 3 1 ffff ffff ffff") {
    minstar++;
  }
  if (message == "65 1 4 1 ffff ffff ffff") {
    minstar--;
  }
  if (message == "65 1 f 1 ffff ffff ffff") {
    horstar++;
  }
  if (message == "65 1 10 1 ffff ffff ffff") {
    horstar--;
  }
  
  
  if (message == "65 1 b 1 ffff ffff ffff") {
    secfin++;
  }
  if (message == "65 1 c 1 ffff ffff ffff") {
    secfin--;
  }
  if (message == "65 1 9 1 ffff ffff ffff") {
    minfin++;
  }
  if (message == "65 1 a 1 ffff ffff ffff") {
    minfin--;
  }
  if (message == "65 1 7 1 ffff ffff ffff") {
    horfin++;
  }
  if (message == "65 1 8 1 ffff ffff ffff") {
    horfin--;
  }
  
//****************************режим работы по дням недели********************************************  

if ((message == "65 2 3 1 ffff ffff ffff")) {
    Monday=!Monday;
  }
  if (Monday==true) {
   myNextion.sendCommand("b16.bco=63488"); /т
  }
  else if (Monday==false){
  myNextion.sendCommand("b16.bco=48631"); 
  }
  
if ((message == "65 2 4 1 ffff ffff ffff")) {
    Tuesday=!Tuesday;
  }
  if (Tuesday==true) {
   myNextion.sendCommand("b17.bco=63488"); 
  }
  else if (Tuesday==false){
  myNextion.sendCommand("b17.bco=48631"); 
  }
  
if ((message == "65 2 5 1 ffff ffff ffff")) {
    Wednesday=!Wednesday;
  }
  if (Wednesday==true) {
   myNextion.sendCommand("b18.bco=63488"); 
  }
  else if (Wednesday==false){
  myNextion.sendCommand("b18.bco=48631"); 
  }
if ((message == "65 2 6 1 ffff ffff ffff")) {
    Thursday=!Thursday;
  }
  if (Thursday==true) {
   myNextion.sendCommand("b19.bco=63488"); 
  }
  else if (Thursday==false){
  myNextion.sendCommand("b19.bco=48631"); 
  }
if ((message == "65 2 7 1 ffff ffff ffff")) {
    Friday=!Friday;
  }
  if (Friday==true) {
   myNextion.sendCommand("b20.bco=63488"); 
  }
  else if (Friday==false){
  myNextion.sendCommand("b20.bco=48631"); 
  }
if ((message == "65 2 8 1 ffff ffff ffff")) {
    Saturday=!Saturday;
  }
  if (Saturday==true) {
   myNextion.sendCommand("b21.bco=63488"); 
  }
  else if (Saturday==false){
  myNextion.sendCommand("b21.bco=48631"); 
  }
if ((message == "65 2 9 1 ffff ffff ffff")) {
    Sunday=!Sunday;
  }
  if (Sunday==true) {
   myNextion.sendCommand("b22.bco=63488"); 
  }
  else if (Sunday==false){
  myNextion.sendCommand("b22.bco=48631"); 
  }
  }

if (Curent_Time >= Curent_Alarm_On1 && Curent_Time <= Curent_Alarm_Off1 && N==true) { // включение реле по таймеру(видимо китайская версия начинает работать при LOW  )

    digitalWrite (7, LOW);
}
else {
    digitalWrite (7, HIGH);
} 

//******************************************переменная на влючения реле по дням недели********************************************************************

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;
 
//**************************************функция чтения переменных с датчиков******************************************************
 
   if((secund == 57 && G==true) || (secund == 58 && G==true))  {

boolean z=true;
       
 int moisture_value = analogRead(moisture_sensor);                                   
 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));
      
  }
else
 {
 boolean z=false;
 }  

//******************************включение пина подачи питания на датчики  (опытным путём установленно ,что для стабилизации питания для чтения ,необходимо 3 секунды )******************************************************

  if((secund == 56 && G==true) || (secund == 57 && G==true) || (secund == 58 && G==true)) {
 digitalWrite (2, HIGH);
  }
 else
 {
 digitalWrite (2, LOW);
 }

//*******************************запись данных на 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 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("t1", "Rec"); 
  }
  }
  else
  {
    myNextion.setComponentText("t1", "NO Rec");
    boolean z=false;
  }

myNextion.setComponentText("t12",String(secstar));
myNextion.setComponentText("t11",String(minstar));
myNextion.setComponentText("t10",String(horstar));

myNextion.setComponentText("t15",String(secfin));
myNextion.setComponentText("t14",String(minfin));
myNextion.setComponentText("t13",String(horfin));

myNextion.setComponentText("t7", String(fff));
myNextion.setComponentText("t0", String(hhh));
myNextion.setComponentText("t2", String(tt2));
myNextion.setComponentText("t4", String(hh2));
myNextion.setComponentText("t16", String(tt1));
myNextion.setComponentText("t17", String(hh1));

myNextion.setComponentText("t6", String(clock.dateFormat("H:i:s d:m:y", dt)));
myNextion.setComponentText("t5", String(clock.dateFormat("l", dt)));
myNextion.setComponentText("t18", String(ggg));

if (z==false) 
{
   delay (350); // нужна для работы сенсорных кнопо (видимо особенность работы библиотеки )
}
}

 

Emer
Offline
Зарегистрирован: 02.11.2016

Приветствую! ЛО, проблемы знакомы. Наблюдения им опыт:

1.Не делайте по таймеру, в период когда сезон дождей и тепла нет(как август 2016) растения очень страдают от влажности повышенной, а вы их еще поливать собрались. Будет болото.

2. алгоритм продумывать для разных типов расстений. Помидоры и огурцы в нашем климате требуют разного подхода. И температурного и поливного.

3.Отказывайтесь от гидропоршней. Если участок ветренный, то их (неспотря на плюсы) дикая инерционность сыграет в минус. У меня два года опыта на них в теплице на ветренном месте, на следующий 2017 переделываю на электромеханику. Термометр-МК-мотор-штанга-форточка. Инерционность такая, что когда выглянулро солнышко, его бы чуть в объеме запасти, но открывашки открыли и ветром все выдуло. Пока они после закроются, солнце уже ушло и ветер все выдул.

4.Помидорки бояться повышенной влажности при температурах меньше 13 гр. 

Итогом в 2016 году получил полностью погибший урожай помидор. Хотя анализ показывает, что имея автоматику по управлению влажностно-температурным режимом то урожай можно было спасти.

 

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

Emer пишет:

3.Отказывайтесь от гидропоршней. Если участок ветренный, то их (неспотря на плюсы) дикая инерционность сыграет в минус. У меня два года опыта на них в теплице на ветренном месте, на следующий 2017 переделываю на электромеханику. Термометр-МК-мотор-штанга-форточка. Инерционность такая, что когда выглянулро солнышко, его бы чуть в объеме запасти, но открывашки открыли и ветром все выдуло. Пока они после закроются, солнце уже ушло и ветер все выдул.

Полностью согласен, стоят гидропоршни второй год, с одной стороны помощь, но только с середины июня, когда ночами уже стабильно теплее. Я ставил по причине что нет электричества в теплице и как следствие автоматики. А так они ну ОЧЕНь инерционные, вечером уже холодает а они все не закроют никак форточки, теплица остывает. А надо как упала на улице температура ниже 25, солнышка нет, сразу бы и захлопнуть. 

Поэтому если есть контроллер то лучше элктро форточки.

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

Спасибо за комент,  да я вот тоже скланяюсь к условиям полива , брать данные влажности почвы .

но тут надо конечно понимать ,что такое сухо и что такое влажно и как нужно для томатов например.

это же и от почвы зависет , от плотности почвы наверно , верхняя часть быстрей испоряется в рыхлой почве , а в торфяннике на глубине 1м. уже болото.

может таблица где есть по сопративлению в почве . и стандарт измерения влажности почвы.

 

интересно посмотреть конечно Ваш вариант на электромеханике.

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

дак и у меня проблема с электричеством , свою систему я от аккамулятора хочу запитать,  тут надо понимать сколько электропривод жрать будет , форточки у меня тяжелые.

Emer
Offline
Зарегистрирован: 02.11.2016

Marchenko пишет:

дак и у меня проблема с электричеством , свою систему я от аккамулятора хочу запитать,  тут надо понимать сколько электропривод жрать будет , форточки у меня тяжелые.

Я пока планирую (пока сбор всех запчастей и комплектующих идет, да неторопливое проектирование) на аккум от авто повесить все.  Главная его задача держать все пока там никого нет (максимум неделю нас там не бывает). На форточки 12В моторчики с редукторами, дальше резьбовая штанга. От Дуни контроль температуры снаружи, внутри, влажности снаружи и внутри. Логгирование данных на SD для последующего анализа и отправка данных по gprs на сервер.

+контроль напряжения на батарее, как близится к минимуму-СМС о необходимости подзарядки. 

Но..эл-во на даче и так есть, просто его оставлять без контроля страшно.

Пока вижу только одну существенную проблему: как все же влажность почвы обрабатывать, она же в пределах теплицы разная (разные растения, разные условия). Ставить кучу датчиков?? Бред же..

 

rik2000
rik2000 аватар
Offline
Зарегистрирован: 25.07.2015

По поводу привода для двигания форточек могу посоветовать мотор от авто для стеклоочестителя... мощи за глаза... у меня в проэкте двигает раздвижные ворота... в нем редуктор присутствует и концевики... 

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

2000 р.  такая штука стоит , надо 2 , + сервоконтроллер 

Emer
Offline
Зарегистрирован: 02.11.2016

Что 2000 стоит? Да и зачем там серва? Если про мотор, то за 300 руб на али нормальные моторы с редуктором на 13 вольт.

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

подождите , я правильно понимаю , вот такая штука http://kord-piter.ru/?mode=product&product_id=84514806

ну или любая другая.

и как её прикрутить без вот этой штуки http://www.yourduino.com/sunshop/index.php?l=product_detail&p=292

на релюхах ?

Emer
Offline
Зарегистрирован: 02.11.2016

Мотор шилд , тот который в ссылке максимум на 600 мА? А мотор с сылки сколько ест?

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014
Emer
Offline
Зарегистрирован: 02.11.2016

Моторчики хорошие, найдите их показатели (токи) и сравните с шилдом. Но на 99% уверен что потянут. Ну совсем для параноиков можно паралельно 298-м припаять еще по одной 298-ой))

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

шилд их потянет , а вот с форточкой у меня сомнения , 

напряжение: DC12V

скорость без нагрузки: 10r/min

выходной крутящий момент: 5.6kg.cm

номинальный ток: 0.06A

вес: 163 г

у меня 2 окна  2000х400 мм. петли сверху  2000 это ширина .

рама 25х25 + полик 6 , вот у меня сомнения что они их потянут , есть ещё 2 и 1 оборот в минуту

ну уж совсем экстрим 0,6 оборотов ,номинальный крутящий момент: 20KG. CM

 

Emer
Offline
Зарегистрирован: 02.11.2016

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

Я буду использовать такие вот движки с редукторами

Покупал в этом магазине, там на любой вкус. Можно конечно и дешевле найти, но в этом купил 3 движка, качеством доволен. из за 100-200 рублей экономии смысла рисковать не вижу. Если к весне доделаю механизм и  испытаю в полевых условиях электрооткрывашку, то напишу что как делал и как оно работает. Пока только собираю детали.

 

12-V-%D0%B4%D0%B2%D0%B8%D0%B3%D0%B0%D1%812 V двигатель постоянного тока 60 оборотов в минуту мощный с высоким крутящим моментом коробка передач двигатель микро-мотор 60 RPM 12 V DC

633,24 руб. / шт.

Rated 5.0/5 based on 16 customer reviews

 

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

мотор похоже такой же , что и я заказал . только привод другой.

теперь с механизмом надо думать

ВН
Offline
Зарегистрирован: 25.02.2016

вот вполне рабочий девайс http://shyza.ru/forum/viewtopic.php?f=12&t=129

 

и сдается, что такие форточки требуют еще и датчик порывистого ветра, чтобы их закрывать в таком случае.

По этой же причине конструкция актуатора не может быть сделана слишком хлипкой, а то просто что-то оторвет, т.к. нагрузки за сотню кг при порывах получаются.

YRA
Offline
Зарегистрирован: 10.01.2015

Старые шуроповерты подойдут, в патроны шпильки.

windowz
Offline
Зарегистрирован: 04.01.2017

Привет. У меня ардуино уно, датчики темпер+влажности и освещенности. Можете упростить скетч под мои "запчасти"?

YRA
Offline
Зарегистрирован: 10.01.2015

Да   и Pro MINI  или Nano должно хватить. После пораздниов поробуюю

Можно поаробовать SHT10 типа 

 

https://ru.aliexpress.com/store/product/New-Electric-Different-Quality-P...

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

скидывайте тут посмотрим, но я не спец по скетчам. в уну этот скетч не влазит , библиотека SD много требует

windowz
Offline
Зарегистрирован: 04.01.2017

Понятно

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

кстати никте не думал вентиляцию делать с помощью вентиляторов, таких https://www.aliexpress.com/item-img/The-strong-wind-12-v-car-motorcycle-violence-fan-heat-dissipation-of-the-turbocharger-Cold-air/32777949809.html?spm=2114.10010208.1000017.2.sHRVlf

например.

YRA
Offline
Зарегистрирован: 10.01.2015

Да  если приспичит то от компов 12V поставить. а так зачем если вентиляция будет по температуре с помщью форточек.

 

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

на форточки конструировать нужно , открывашку. + ещё 2 пина задействовать ,кнопки для фиксации открыто и закрыто .

 

Emer
Offline
Зарегистрирован: 02.11.2016

Вентиляторы не справятся с таким объемом. Форточки эффективнее.

vlanis
Offline
Зарегистрирован: 05.01.2017

Я у себя сделал форточки открывающися в нутрь теплицы, что бы ветром их не рвало. один мотор тедуктор открывает 4 форточки, на приципе лебёдки - один вал и 4 кароновых шнура мотаются на него, минимум слесарных работ 

YRA
Offline
Зарегистрирован: 10.01.2015

Marchenko, а библиотеки можнопоаросить выложить????

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

https://yadi.sk/d/JPM9SHz7375NNm

тут библиотеки. остальные стандартные

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

vlanis , а что за мотор редуктор можно ссылку, и какие форточки , по размеру и по весу ?

vlanis
Offline
Зарегистрирован: 05.01.2017

Покупал год назад на алли, https://ru.aliexpress.com/item/LUOB2-DC-24V-0-33A-11-3kg-cm-120RPM-Speed-Reducing-Geared-Motor/1984564110.html#! мотор - пишут на 24вольта, но прекрасно крутит и на 12вольт, там куча аналогов и по дешевле. У меня типовая теплица, 4 форточки размером приблизительно 30*40 см, расположены по торцам со боих строн от дверей, навесы по верхней кромке, мотор спокойно поднимает их все 4 , учитывая что на кааждой форточке по килограму свинца - для уверенного закрытия под собственым весом, Я не стал делать форточки по крыше, потому что их ветер рвёт, (поликарбонат вырывает с рамок)

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

прикольно , и привод на прямую крутит троса (120RPM) , без дополнительных приблуд ? 

я предпологаю ,что и форточки быстро открываются.

а питание от батареи или от сети ?

vlanis
Offline
Зарегистрирован: 05.01.2017

Мотор расположен на перекладине - распорке по чентру теплицы и крутит лыжную палку установленую в подшипниках, на неё мотаются рыболовние шнуры, на против форточек закрепил блоки и через них тянет форточки в верх под самую крышу, автоматика простейшая, вот сейчас задумался усовершенствовать. изучаю андурино., питание от сети через транс и выпрямитель , аккумулятор подключен через диоды  и когда есть сеть то аккумулятор не нагружен.

 

vlanis
Offline
Зарегистрирован: 05.01.2017

наберите на алли в поиске "мотор редуктор" и выбирайте, по той ссылке увы их уже нет.

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

да уже заказал 

https://ru.aliexpress.com/item/Best-Price-12V-10Rpm-Reversible-High-Torq...

теперь буду думать что из этого сделать

 

Emer
Offline
Зарегистрирован: 02.11.2016

vlanis пишет:
на кааждой форточке по килограму свинца - для уверенного закрытия под собственым весом,

Была такая идея, только рассматривал открывание с помощью пружин (резинок натянутых крепежных), а закрывание - вращанием , как у вас. Но при открытии наружу решил данный вариант опасный. 

vlanis
Offline
Зарегистрирован: 05.01.2017

Так у Вас где форточки, на крыше, или с торцов? В принципе можно попытаться сделать по типу варньерного устройства как на старых радиоприёмниках - настройка, тогда и закрывать и открывать можно мотором

lean_74
Offline
Зарегистрирован: 22.12.2015

https://www.youtube.com/watch?v=renpJ0Adv8U

у меня вот так на автостеклоподъемниках "Форвард" сделано, второй год работает, от солнечной батарейки в 5ват заряжается 7Ач акуммулятор, и он прекрасно весь сезон отработал,без внешнего электричества. производитель пишет, что стеклоподъемники в максимуме потребляют до 8 ампер, реально у меня до 6,5 ампер. Открытие окна на 1/3 занимает 1,8 секунды примерно. Утром и вечером пока температура не установиться "хлопают"  окошки туда сюда довольно часто, и тем не менее ни разу аккумулятор за лето не заряжал, хватает зарядки от солнечной батареи. На зиму все отключаю. 

YRA
Offline
Зарегистрирован: 10.01.2015

Marchenko, а версия Ардрруино какая??????

Попытка компиляции на 1.7.8 и на 1.6.7 оканчивается неудачей.

 

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

1,6,7  что за неудача , что пишет ? 

 

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

строка 201 , удали (/т)

YRA
Offline
Зарегистрирован: 10.01.2015

Много пишет. 

Ардуино: 1.6.7 (для Windows 7), Плата:"с Arduino/Genuino Mega или Mega 2560, базе atmega2560 (Мега 2560)"



sketch_jan06a:52: ошибка: нет подходящей функции для вызова 'DS3231::DS3231()'



DS3231 часы;



^



F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\Sketch\sketch_jan06a\sketch_jan06a.ino:52:8: Примечание: кандидаты:



В файл включены из F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\Sketch\sketch_jan06a\sketch_jan06a.ino:25:0:



F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\libraries\DS3231/DS3231.h:80:3 Примечание: DS3231::DS3231(uint8_t, uint8_t)



DS3231(uint8_t data_pin, uint8_t sclk_pin);



^



F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\libraries\DS3231/DS3231.h:80:3 Примечание: кандидат ожидает 2 аргументов, 0 предоставляемые



F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\libraries\DS3231/DS3231.h:77:7 Примечание: DS3231 пользователем::DS3231(константный DS3231&)



DS3231 класс



^



F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\libraries\DS3231/DS3231.h:77:7 Примечание: кандидат ожидает 1 аргумент, 0 предоставляемые



F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\libraries\DS3231/DS3231.h:77:7 Примечание: DS3231 пользователем::DS3231(DS3231&&)



F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\libraries\DS3231/DS3231.h:77:7 Примечание: кандидат ожидает 1 аргумент, 0 предоставляемые



sketch_jan06a:53: ошибка: 'RTCDateTime' не называет типа



RTCDateTime ДТ;



^



F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\Sketch\sketch_jan06a\sketch_jan06a.ino: в функции 'пустая петля()':



sketch_jan06a:128: ошибка: 'ДТ' не был объявлен в этой области..

YRA
Offline
Зарегистрирован: 10.01.2015

Библиотеки DS3231 меняю, в архиве DS3232RTC-master, пробовал поменять  в скетче на 3232RTC- результат тот же

 

 

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

странно , ща посмотрю может другая библиотека часов запускается

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

а вот наверно https://yadi.sk/d/erb2b--L37QA4E

YRA
Offline
Зарегистрирован: 10.01.2015

Ну да, это она тперь SD ругает:

Arduino: 1.6.7 (Windows 7), Board:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"
 
F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\Sketch\sketch_jan06a\sketch_jan06a.ino: In function 'void loop()':
 
sketch_jan06a:402: error: no matching function for call to 'SDClass::open(String&, int)'
 
File dataFile = SD.open(dat, FILE_WRITE);
 
^
 
F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\Sketch\sketch_jan06a\sketch_jan06a.ino:402:40: note: candidate is:
 
In file included from F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\Sketch\sketch_jan06a\sketch_jan06a.ino:23:0:
 
F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\libraries\SD\src/SD.h:73:8: note: File SDClass::open(const char*, uint8_t)
 
File open(const char *filename, uint8_t mode = FILE_READ);
 
^
 
F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Marchenko\libraries\SD\src/SD.h:73:8: note: no known conversion for argument 1 from 'String' to 'const char*'
 
exit status 1
no matching function for call to 'SDClass::open(String&, int)'
 
This post will contain more information than
 "Display output during compilation"
included in the File > Settings
 
Я свои пдставлял
 
 
Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

ну sd стандартное , другого нет

 

YRA
Offline
Зарегистрирован: 10.01.2015

Скомпилировалось, но как-то после танцев с бубнами в папке libraries скачанная штатная библиотека SD, в ней же созданная папка libraries тоже файл SD . ессли его удатиь ,то сразу же ругается. Ждем мониторчик

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

дак просто подключить библиотеку sd 

Marchenko
Marchenko аватар
Offline
Зарегистрирован: 15.12.2014

монитор тут https://yadi.sk/d/a7ZK3yw037XyQW