Перейти к содержимому

Open

Фотография
- - - - -

Подскажите, что купить.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 Zeelz7

Zeelz7

    Новичок

  • Пользователи
  • Pip
  • Cообщений: 2

Отправлено 17 Март 2018 - 15:26

Здравствуйте.

Только начинаю изучать тему arduino.

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

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

Это для начала.

В будущем планируется добавить туда же включение-отключение светильника, датчик PH, и жк экранчик.

 

Хочу заранее заказать необходимые компоненты. Подскажите пожалуйста, что заказать.

Мегу или уны хватит? Какие реле? Скольки канальные? Нужны ли платы расширения?

Какие резисторы нужны бывают(кОм). Какой бп для запитки всего этого?

 

Заранее спасибо.

 

 

 

Прикрепленные изображения

  • набросок.jpg


#2 Gum

Gum

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 367

Отправлено 17 Март 2018 - 15:50

Точно хотите сами писать? Вроде есть готовые проекты, почему их не хотите?



#3 avfv

avfv

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 583
  • Меня зовут:Андрей
  • Откуда:Санкт-Петербург

Отправлено 17 Март 2018 - 17:19

Все зависит от того, чему в итоге вы хотите научиться. Если ничему, то нужен готовый автодолив. Если программированию уровня 80х и электронике 00х - ардуино. Лучше мегу. Если интересует современный уровень - выберите подходящую отладочную плату на STM32. Есть с дисплеями (STM32F429I-DISC1 например, немного дороже меги, но такой дисплей как там к меге нормально не подключить), есть с разъемами как у ардуины - серия Nucleo. 

 

Если по картинке, то реле там лишнее. Кулер и эта мини-помпочка - потребители одного порядка, подключаются одинаково обычно через n-канальные мосфеты. Я бы попробовал ключи серии BTS - есть удобные корпуса, защита, недорогие.



#4 igorlab

igorlab

    Пользователь

  • Пользователи
  • PipPip
  • Cообщений: 72
  • Меня зовут:Igor
  • Откуда:Kyiv

Отправлено 17 Март 2018 - 18:06

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

#5 lexx8691

lexx8691

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 5 998
  • Меня зовут:Алексей
  • Откуда:Новосибирская обл. р. п. Чаны.

Отправлено 18 Март 2018 - 07:50

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

С какой стороны нерационально?

1. дешевле

2. меньше

3. полезней для мозга :)

Если есть цель самому программировать и делать. А так конечно ардуино наше фсё.



#6 igorlab

igorlab

    Пользователь

  • Пользователи
  • PipPip
  • Cообщений: 72
  • Меня зовут:Igor
  • Откуда:Kyiv

Отправлено 18 Март 2018 - 23:37

С какой стороны нерационально?

1. дешевле

2. меньше

3. полезней для мозга :)

Если есть цель самому программировать и делать. А так конечно ардуино наше фсё.

не, ну можно конечно и сопромат выучить чтобы из проволки скрепку скрутить, а можно за 5 сек взять и просто скрутить скрепку не выпендриваясь:) вы часом не программист? ;) 

 

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

#include <SPI.h>
#include <Wire.h>
//#include "DHT.h"
#include <Adafruit_SSD1306.h>

#include <Wire.h>
#include "Sodaq_DS3231.h"
#include <Bounce2.h>

#define OLED_RESET 4
#define DHTPIN 2
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//DHT dht(DHTPIN, DHTTYPE);
Adafruit_SSD1306 display(OLED_RESET);
//DateTime dt(2017, 22, 06, 16, 9, 00, 3);

int pin_WLS1 = 3;
int pin_WLS2 = 2;
int pin_WLS_tank = 7;

int pin_RelayON = 8;

String timedate;
String timedateLast;

Bounce WLS1 = Bounce();
Bounce WLS2 = Bounce();
Bounce WLS_tank = Bounce();



void setup() {
  Serial.begin(9600);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 
  //dht.begin();
  
  Wire.begin();
  rtc.begin();
  
  pinMode(pin_WLS1, INPUT_PULLUP);
  WLS1.attach(pin_WLS1); //2
  WLS1.interval(5);
  
  pinMode(pin_WLS2, INPUT_PULLUP);
  WLS2.attach(pin_WLS2); //3
  WLS2.interval(5);
  
  pinMode(pin_WLS_tank, INPUT_PULLUP);
  WLS_tank.attach(pin_WLS_tank); //4
  WLS_tank.interval(5);
  
  pinMode(pin_RelayON, OUTPUT); //6
  digitalWrite(pin_RelayON, LOW);
  
  display.setTextSize(1);
  SendToScreen(0, 0, "Diagnostic...", 0, 1);  
  digitalWrite(pin_RelayON, LOW);

  //tone(10, 2000, 1000);
}

String printDigits(int digits){
  // utility function for digital clock display: prints preceding colon and leading 0
  String valtm;
  if(digits < 10)
  {
  valtm = "0" + String(digits);
  return valtm;
  }
  valtm = String(digits);
  return valtm;
}

void SendToScreen (int x, int y, String text, int colour, int clear1) //SendToScreen(0, 16, "To open click RST", 0, 0);
{ 
  display.clearDisplay();
  if (colour == 0) display.setTextColor(BLACK);
  else 
  { 
  display.setTextColor(WHITE);
  Serial.println( text);
  }
  
  display.setCursor(x, y);  
  display.print(text);
  display.display();
}

int ooo = 0, nnn = 0;

void loop()
{ 
  DateTime now = rtc.now(); //get the current date-time 
  timedate =  printDigits(now.date()) + String(".") + printDigits(now.month()) + String(".") + printDigits(now.year()).substring(2, printDigits(now.year()).length()) + String("  ") +
  printDigits(now.hour()) + String(":") + printDigits(now.minute()) + String(":") + printDigits(now.second());
  
  if (timedate.compareTo(timedateLast) != 0)
  {
  //Serial.println(timedateLast);
  SendToScreen(0, 25, timedateLast, 0, 0);
  SendToScreen(0, 25, timedate, 1, 0);
  timedateLast = timedate;
  /*nnn = digitalRead(waterPin);
  SendToScreen(100, 0, ooo, 0, 0);
  SendToScreen(100, 0, nnn, 1, 0);
  ooo = nnn;*/
  }

 //--------------------------------------------------------------------------- 

 WLS1.update();
 WLS2.update();
 WLS_tank.update();
 
 // if (WLS2.update())
 //{
   if (WLS2.read()==0 ) //если второй сенсор сработал на затопление, то выключаем помпу 
   {
      digitalWrite(pin_RelayON, LOW); //отключаем помпу долива воды
      SendToScreen(0, 0, "Pomp OFF", 1, 1);
   }
 //}
 
 //if (WLS_tank.update())
 //{
   if(WLS_tank.read()==0) //если в емкости закончилась вода
   {
    digitalWrite(pin_RelayON, LOW); //отключаем помпу долива воды
    SendToScreen(0, 0, "Fill water tank", 1, 1);
   }
 //}
 
 /*if (WLS1.update())
 {
  
  SendToScreen(0, 0, "WLS1.read()..." + WLS1.read(), 1, 1); 
  
 }
 */
 if (WLS1.read()==0 and WLS2.read()==1 and WLS_tank.read()==1) //если оба сенсора сработали на осушение и в емкости для долива есть вода, то включаем помпу на долив
 {
  digitalWrite(pin_RelayON, HIGH); //начинам долив воды
  SendToScreen(0, 0, "Pomp ON", 1, 1);
 }

 
}


#7 kapelan

kapelan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 419

Отправлено 19 Март 2018 - 16:08

Здравствуйте.

Только начинаю изучать тему arduino.

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

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

Это для начала.

В будущем планируется добавить туда же включение-отключение светильника, датчик PH, и жк экранчик.

 

Хочу заранее заказать необходимые компоненты. Подскажите пожалуйста, что заказать.

Мегу или уны хватит? Какие реле? Скольки канальные? Нужны ли платы расширения?

Какие резисторы нужны бывают(кОм). Какой бп для запитки всего этого?

 

Заранее спасибо.

ардуину саму-посебе покупать бесполезно: информацию надо куда-то выводить и чем-то вводить.
Таким образом нужно сразу рассматривать набор: ардуина+кнопки+экран
Отсюда вывод: зачем эти кнопки если можно взять сразу ардуину с тачем
Самый популярный вариант: ардуино+3.2TFT touchscreen



#8 Zeelz7

Zeelz7

    Новичок

  • Пользователи
  • Pip
  • Cообщений: 2

Отправлено 20 Март 2018 - 21:45

Огромное спасибо, за то что откликнулись. Начал так сказать изучение)

 

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

Буду сразу брать с тачем.

Отдельное спасибо за набросок кода.



#9 Gum

Gum

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 367

Отправлено 21 Март 2018 - 01:15

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

Нынче модно в каждое устройство ставить свой маленький контроллер (без экрана и кнопок). Управление все через вифи (браузер, комп, телефон).

Сейчас есп8266, есп32 рулят.

Прежде, чем изобретать велосипед, посмотрите, что делают люди, это полезно. Взгляните в соседние темы, по форумам пройдитесь, там есть контроллеры уже с исходниками. Например в https://reefcentral....-ne-dorozhe-20/автор раздает исходник контроллера света под есп8266. Код там простой, и новичку будет вполне понятен.


  • lexx8691, Павел.В и igorlab это нравится




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных