контроль за температурой воздуха паливом и освещением
- Войдите на сайт для отправки комментариев
Вс, 24/01/2016 - 17:34
Доброго времени суток,решил зделать чтото вроде тетлицы,помещение небольшое размер шкафав электронике ичего еще непонимаю,
Кто может памочь в создании теплицы для гидрапоного метода,какой кантролер лучше как его сопрягать с движками помпами вентиляторами. И дачиками
Я просто еще нечего непонимаю во всех этих штуках,простите за безграмотность
если ничего не знаешь ищи готовое
У меня много лет работает этот бокс, но пока без ардуино. По рассаде успехи неплохие. В электронике и помидорах понимаю, а в программировании нет. Контроль и регулирование температуры на ардуино освоил. Сейчас методом тыка пробую управлять светодиодной подсветкой по времени суток. Не могу подружиться с дисплеем. Помочь некому.
Не могу подружиться с дисплеем. Помочь некому.
Гони этот недружелюбный дисплей. И пригласи дружелюбный+дешевый 1602.))))
Может для начала выводить данные через СОМ порт в ПК. Со временем будет видно, какие данные наиболее информационные и уже их на дисплей 1602.
Добрый день. Тоже занимаюсь с растениями в исскуственом освещение.
Вот мой код только гуру не ругайтесь на него .
#include <EEPROM.h> #include <OneWire.h> #include <DallasTemperature.h> #include <LiquidCrystal.h> #include <Wire.h> #include <DS3231.h> char flag = 0; char regim = 1; byte set_up , set_down , time_t , minute_t , time1_off , time1_on , time2_off , time2_on; //char set = 250; LiquidCrystal lcd(13, 11, 10, 9, 7, 8); DS3231 rtc(SDA, SCL); Time t; #define ONE_WIRE_BUS 4 // Setup a oneWire instance to communicate with any OneWire devices OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); void setup(void) { DDRD |= (1<<2);// rele temperaturi DDRD |= (1<<3);// rele vremeni DDRB &= ~(1<<4); // button menu PORTB |= (1<<4);// button menu high DDRD &= ~(1<<5); // button down PORTD |= (1<<5);// button down high DDRD &= ~(1<<6); // button up PORTD |= (1<<6);// button up high sensors.begin(); lcd.begin(16,2); // columns, rows. use 16,2 for a 16x2 LCD, etc. //lcd.clear(); // start with a blank screen rtc.begin(); { lcd.setCursor(1,0); lcd.print("######"); lcd.setCursor(5,1); lcd.print("######"); delay(2000); } //Serial.println("Test"); lcd.clear(); delay(100); //PORTD |= (1<<2); //PORTD |= (1<<3); //delay(100); //PORTD &= ~(1<<2); //PORTD &= ~(1<<3); set_up = EEPROM.read(1); // температура вверхний предел set_down = EEPROM.read(2);//температура нижний предел time1_off = EEPROM.read(3);// таймер 1 time1_on = EEPROM.read(4);// таймер 1 time2_off = EEPROM.read(5);//таймер2 time2_on = EEPROM.read(6);//таймер2 //set_uplim = set_up; //sei(); //rtc.setTime(12, 0, 0); // Set the time to 12:00:00 (24hr format) //rtc.setDate(1, 1, 2014); // Set the date to January 1st, 2014 } void work() { //time_t = t.hour; // minute_t = t.min; //t = rtc.getTime(); sensors.requestTemperatures(); byte S1 = sensors.getTempCByIndex(0); //S1 = sensors.getTempC(oneThermometer); lcd.setCursor(1,0); lcd.print(set_down); lcd.print("< "); lcd.print( S1); //lcd.setCursor(,0); lcd.print("C >"); lcd.print( set_up); //lcd.setCursor(0,1); //lcd.print(t.date, DEC); //lcd.print(" "); //lcd.print (rtc.getMonthStr()); //lcd.print(" "); //lcd.print(t.year, DEC); lcd.setCursor(0,1); lcd.print(time_t); lcd.print(":"); lcd.print (minute_t); lcd.setCursor(6,1); lcd.print(" > "); lcd.print(time1_on); lcd.print("> "); lcd.print(time1_off); if (S1>set_up) { PORTD &= ~(1<<2); } else if (S1<set_down) { PORTD |= (1<<2); } if (time_t >=time1_on&& time_t <=time1_off-1 ) { PORTD |= (1<<3); } else { PORTD &= ~(1<<3); } } void loop() { time_t = t.hour; minute_t = t.min; t = rtc.getTime(); if (!(PINB & (1<<PINB4)) && flag == 0) // low { regim++; flag=1; lcd.clear(); } if (PINB & (1<<PINB4) && flag == 1) // high { flag=0; } if (regim==1) { work(); } if (regim==2) { menu_up(); } if (regim==3) { menu_down(); } if (regim==4) { time_setting(); } if (regim==5) { light_off(); } if (regim==6) { light_on(); } if (regim>6) { regim=1; } /*if (set_up != set_uplim ) { cli(); // EEPROM.write (1,set_up); set_uplim = set_up; sei(); PORTD |= (1<<3); } else { PORTD &= ~(1<<3); }*/ } void menu_up () { //int set; lcd.setCursor(0,0); lcd.print("tem up"); lcd.setCursor(7,0); lcd.print(">"); lcd.print(set_up); if (!(PIND & (1<<PIND6))) { set_up = set_up + 1 ; if (set_up > 40) { set_up = 40; } EEPROM.write (1,set_up); } else if (!(PIND & (1<<PIND5))) { set_up = set_up - 1; if (set_up < 20) { set_up = 20; } EEPROM.write (1,set_up); } delay(250); } void menu_down () { lcd.setCursor(0,1); lcd.print("tem down"); lcd.setCursor(8,1); lcd.print(">"); lcd.print(set_down); if (!(PIND & (1<<PIND6))) { set_down = set_down + 1 ; if (set_down > 40) { set_down = 40; } EEPROM.write (2,set_down); } else if (!(PIND & (1<<PIND5))) { set_down = set_down - 1; if (set_down < 20) { set_down = 20; } EEPROM.write (2,set_down); } delay(250); } void time_setting () { lcd.setCursor(0,0); lcd.print("time-setting"); lcd.setCursor(6,1); lcd.print(time_t); lcd.print(":"); lcd.print (minute_t); } void light_off() { lcd.setCursor(0,0); lcd.print("time1 off"); lcd.setCursor(8,0); lcd.print(">"); lcd.print(time1_off); if (!(PIND & (1<<PIND6))) { time1_off = time1_off + 1 ; if (time1_off > 24) { time1_off = 24; } EEPROM.write (3,time1_off); } else if (!(PIND & (1<<PIND5))) { time1_off = time1_off - 1; if (time1_off < 0) { time1_off = 0; } EEPROM.write (3,time1_off); } delay(250); } void light_on() { lcd.setCursor(0,1); lcd.print("time1 on"); lcd.setCursor(8,1); lcd.print(">"); lcd.print(time1_on); if (!(PIND & (1<<PIND6))) { time1_on = time1_on + 1 ; if (time1_on > 24) { time1_on = 24; } EEPROM.write (4,time1_on); } else if (!(PIND & (1<<PIND5))) { time1_on = time1_on - 1; if (time1_on < 0) { time1_on = 0; } EEPROM.write (4,time1_on); } delay(250); }в помидорах не хрена не понимаю но делал такую штуку:
Для гидропоники нужно контролировать Ph раствора.
Нужен будет электрод от Ph метра. У электрода принцип подключения, как у термопары: через усилитель и с термокомпенсацией. Это самый сложный момент.
А управлять насосами и освещением, через реле это просто.