Если вам не зайти на форум
воспользуйтесь функцией "Забыли пароль?" для восстановления доступа.

Освещение и другие технические вопросы (ХР)

Освещение, почва, полив и пр.
Ответить
uarynastya
новичок
Сообщения: 28
Зарегистрирован: Ср янв 22, 2020 23:25
Откуда: Москва
Благодарил (а): 12 раз
Поблагодарили: 1 раз

Re: Освещение и другие технические вопросы

Сообщение uarynastya »

Cyathus, ТатьянаОЗ, спасибо вам большое! Для новичка вроде меня это достаточно сложно – кажется, что миллион деталей нужно учесть и руки опускаются.
У меня обывательский вопрос:
Подскажите, пожалуйста, должно быть определенное количество Вт? Свет лучше >4000к, верно? Зависит ли что-то от цоколя лампочки?
Простите новичка, если вдруг вопросы слишком глупые :Plachet:
Аватара пользователя
ТатьянаОЗ
ветеран
Сообщения: 1593
Зарегистрирован: Чт мар 09, 2017 20:05
Откуда: Подмосковье
Благодарил (а): 553 раза
Поблагодарили: 695 раз

Re: Освещение и другие технические вопросы

Сообщение ТатьянаОЗ »

uarynastya,
Cyathus писал(а): Пт янв 24, 2020 11:33 светодиодная лампа на 20 ватт с цоколем Е27, свет нейтральный белый, но на мой глаз всё-таки ближе к тёплому (цветовая температура 4000 К).
Цоколь Е 27 это как обычная стандартная лампа накаливания. У светильника соответственно тоже должен быть такой же патрон. Светильник лучше берите настольный, на длинной ножке, абажур лучше поменьше. Так лампа будет больше "высовываться" и меньше перегреваться. Или абажур можно вообще снять.
что то вроде этого:
e01b94a6cae8fecb2c3013da9ac05700.jpeg
vamsvet_nastolnaya_lampa_globo_sakura_24800s.jpeg
Если есть кому порукодельничать, можно вообще просто патрон с проводом к верхнему откосу окна прикрепить
Аватара пользователя
Cyathus
долгожитель
Сообщения: 684
Зарегистрирован: Пт июн 14, 2019 11:27
Откуда: Санкт-Петербург
Благодарил (а): 512 раз
Поблагодарили: 498 раз
Контактная информация:

Re: Освещение и другие технические вопросы

Сообщение Cyathus »

uarynastya писал(а): Пт янв 24, 2020 17:15должно быть определенное количество Вт? Свет лучше >4000к, верно? Зависит ли что-то от цоколя лампочки?
20 Вт - достаточно мощная светодиодная лампочка, больше вам не нужно. 16 Вт тоже должно хватить. 5, 7, 9, 11 Вт - маловато, мухоловка свет любит.
Свет лучше не намного ниже 4000 К, т.е. близкий к белому солнечному.
От цоколя зависит только совместимость со светильником :)
uarynastya
новичок
Сообщения: 28
Зарегистрирован: Ср янв 22, 2020 23:25
Откуда: Москва
Благодарил (а): 12 раз
Поблагодарили: 1 раз

Re: Освещение и другие технические вопросы

Сообщение uarynastya »

Cyathus, спасибо, была только 4100 К лампочка на 20 Вт, взяла ее:)
Думаю, будет хорошо:)
Спасибо за помощь!
:wink:
Artcore
участник
Сообщения: 74
Зарегистрирован: Сб мар 02, 2019 3:57
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 23 раза

Re: Освещение и другие технические вопросы

Сообщение Artcore »

andrei5550, извиняюсь за отсутствие в связи с праздниками. Напишите пожалуйста ваш код (что есть).
Аватара пользователя
andrei5550
долгожитель
Сообщения: 621
Зарегистрирован: Вс июн 03, 2018 10:25
Откуда: 19 регион
Благодарил (а): 413 раз
Поблагодарили: 420 раз

Re: Освещение и другие технические вопросы

Сообщение andrei5550 »

Artcore, Всё понимаю :wink:
Ну в общем что я нашел, есть два вида подключения и оба работают, какой проще и удобнее в дальнейшем не знаю.
Вариант 1. ( Сейчас так подключено)
Вложения
#define SENSOR A0 // Определяем номер аналогового входа, к которому подключен датчик влажности почвы.<br /><br />void setup () {<br />  Serial.begin (9600); // передача данных по последовательному порту на скорости 9600 бот.<br />}<br />void loop () {<br />  uint16_t sensor = analogRead (SENSOR); // Читаем данные с датчика,<br />  Serial.println (датчик); // выводим текущую влажность почвы из датчика в последовательный порт,<br />  Задержка (5000); // приостанавливаем выполнение программы на 5 секунд.<br />}
#define SENSOR A0 // Определяем номер аналогового входа, к которому подключен датчик влажности почвы.

void setup () {
Serial.begin (9600); // передача данных по последовательному порту на скорости 9600 бот.
}
void loop () {
uint16_t sensor = analogRead (SENSOR); // Читаем данные с датчика,
Serial.println (датчик); // выводим текущую влажность почвы из датчика в последовательный порт,
Задержка (5000); // приостанавливаем выполнение программы на 5 секунд.
}
Вариант 2 <br />#define SENSOR A2 // Определяемый номер аналогового входа, к которому подключен датчик влажности почвы<br />#define Vcc A1 // Определяемый номер выхода, от которого запитан датчик (вывод Vcc)<br />#define GND A0 // Определяемый номер выхода, от которого запитан датчик (вывод GND)<br />void setup () {<br />  Serial.begin (9600); // передача данных по последовательному порту на скорости 9600 бот<br />  pinMode (Vcc, OUTPUT); // Переводим вывод Vcc в режиме выхода<br />  pinMode (GND, OUTPUT); // Переводим вывод GND в режиме выхода<br />  digitalWrite (Vcc, LOW); // Подаем уровень логического 0 на вывод Vcc датчика<br />  digitalWrite (GND, LOW); // Подаем уровень логического 0 на вывод GND датчика<br />}<br />void loop () {<br />  digitalWrite (Vcc, HIGH); // Включаем датчик<br />  задержка (50); // Ждем генератор частоты<br />  Serial.println (analogRead (ДАТЧИК)); // Выводим текущую влажность почвы из датчика в последовательный порт<br />  digitalWrite (Vcc, LOW); // Выключаем датчик<br />  Задержка (5000); // Приостанавливаем выполнение программы на 5 секунд<br />}
Вариант 2
#define SENSOR A2 // Определяемый номер аналогового входа, к которому подключен датчик влажности почвы
#define Vcc A1 // Определяемый номер выхода, от которого запитан датчик (вывод Vcc)
#define GND A0 // Определяемый номер выхода, от которого запитан датчик (вывод GND)
void setup () {
Serial.begin (9600); // передача данных по последовательному порту на скорости 9600 бот
pinMode (Vcc, OUTPUT); // Переводим вывод Vcc в режиме выхода
pinMode (GND, OUTPUT); // Переводим вывод GND в режиме выхода
digitalWrite (Vcc, LOW); // Подаем уровень логического 0 на вывод Vcc датчика
digitalWrite (GND, LOW); // Подаем уровень логического 0 на вывод GND датчика
}
void loop () {
digitalWrite (Vcc, HIGH); // Включаем датчик
задержка (50); // Ждем генератор частоты
Serial.println (analogRead (ДАТЧИК)); // Выводим текущую влажность почвы из датчика в последовательный порт
digitalWrite (Vcc, LOW); // Выключаем датчик
Задержка (5000); // Приостанавливаем выполнение программы на 5 секунд
}
Аватара пользователя
andrei5550
долгожитель
Сообщения: 621
Зарегистрирован: Вс июн 03, 2018 10:25
Откуда: 19 регион
Благодарил (а): 413 раз
Поблагодарили: 420 раз

Re: Освещение и другие технические вопросы

Сообщение andrei5550 »

Artcore,
Так у меня не захотел работать ( то есть он работает но цифры постоянно убегают, не находятся в заданном интервале 0-100, почему не знаю, но и не принципиально такой тип отображения информации).

Для удобства чтения данных можно использовать карту видимой функции (), которая в следующем сценарии преобразует и инвертирует "сырые" показания дат в диапазоне от 0 до 100 :
Работает но не корректно по варианту подключения 2

#define SENSOR A2 // Определяемый номер аналогового входа, к которому подключен датчик влажности почвы.
// Датчик инверсный: больше влажность - меньше значение.
#define MIN 630 // Определяем минимальное показание датчика (в воздухе),
#define MAX 330 // определяющий высокое показание датчика (в воде),
датчик uint16_t; // создаем переменную для хранения адаптированных показаний,
void setup () {
Serial.begin (9600); // передача данных по последовательному порту на скорости 9600 бот.
}
void loop () {
датчик = аналоговыйЧит (ДАТЧИК); // Читаем сырые данные с датчика,
датчик = карта (датчик, MIN, MAX, 0, 100); // адаптируем значения от 0 до 100,
Serial.println (датчик); // выводим текущую влажность почвы из датчика в последовательный порт,
задержки (500); // приостанавливаем выполнение программы на 0,5 секунды.
}

P.S. это всё что у меня есть !!!!
Artcore
участник
Сообщения: 74
Зарегистрирован: Сб мар 02, 2019 3:57
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 23 раза

Re: Освещение и другие технические вопросы

Сообщение Artcore »

andrei5550, если со вторым вариантом проблемы, будем использовать вариант первый. Для начала нужно скачать библиотеки dht и tft. Я загрузил их на Яндекс диск на случай, если у вас их нет. https://yadi.sk/d/LaY91wSLyDjhhw

Теперь собираем всё воедино. Я не знаком с датчиком влажности почвы т.к. не имел с ним дело. Но данные с него вы уже получили. Я написал код подключения датчика влажности воздуха и дисплея. Осталось ввести переменные типа int, присвоить им значения с датчика влажности почвы, и всё это конвертировать в переменные типа string как у меня. Вот сам код:

Код: Выделить всё

#include <TFT.h>                 // Подключаем библиотеку TFT  
#include <DHT.h>                 // Подключаем библиотеку DHT

#define DHTPIN 7     // вывод, к которому подключается датчик DHT
#define DHTTYPE DHT22   // это не трогаем
#define cs   6                  // Указываем пины cs (цифровые пины 4,5,6 используются TFT дисплеем)
#define dc   4                   // Указываем пины dc (A0)
#define rst  5                   // Указываем пины reset

DHT dht(DHTPIN, DHTTYPE);
TFT TFTscreen = TFT(cs, dc, rst);

void setup() 
{
  dht.begin();                  //инициализируем DHT датчик
  TFTscreen.begin();            //инициализируем TFT дисплей
  TFTscreen.background(0, 0, 0); // Очистим экран дисплея
  TFTscreen.setTextSize(1);      // Устанавливаем размер шрифта
}

void loop() 
{  
String sHumidity, sTemperature;               //инициализируем строковые переменные влажности и температуры
  float h = dht.readHumidity();               //инициализируем переменную влажности типа float и передаем ей данные с датчика
  float t = dht.readTemperature();             //инициализируем переменную температуры типа float и передаем ей данные с датчика
  sHumidity = h;                              //конвертируем данные типа float в String
  sTemperature = t;                           //конвертируем данные типа float в String
  TFTscreen.background ( 255 , 255 , 255 );     //устанавливаем фон TFT дисплея
  TFTscreen.stroke(255, 0, 0);                    //цвет надписей
  TFTscreen.text("V", 3, 10);                       //выводим на дисплей букву v(влажность)    (3 и 10 это параметры размещения данных на дисплее)
  TFTscreen.text(sHumidity.c_str(), 50, 10);        //выводим влажность
  TFTscreen.text("T", 3, 60);                       //выводим на дисплей букву t(температура)
  TFTscreen.text(sTemperature.c_str(), 50, 60);     //выводим температуру
  }
Аватара пользователя
andrei5550
долгожитель
Сообщения: 621
Зарегистрирован: Вс июн 03, 2018 10:25
Откуда: 19 регион
Благодарил (а): 413 раз
Поблагодарили: 420 раз

Re: Освещение и другие технические вопросы

Сообщение andrei5550 »

Artcore, нет библиотек ещё нет, спасибо, скачаю, для начала попробую запустить всё как у вас, проблема куда какие выводы подключать :idnk:
Artcore
участник
Сообщения: 74
Зарегистрирован: Сб мар 02, 2019 3:57
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 23 раза

Re: Освещение и другие технические вопросы

Сообщение Artcore »

andrei5550,
для dht: dat - цифровой пин 7, vcc - питание пять воль, gnd - земля
для tft: led - пин 3v
sck - цифровой пин 13
sda - цифровой пин 12
a0 - цифровой пин 4
reset - цифровой пин 5
cs - цифровой пин 6
gnd - земля
vcc - питание 5 вольт

Если будут вопросы обязательно спрашивайте. Доведем дело до конца)
Аватара пользователя
andrei5550
долгожитель
Сообщения: 621
Зарегистрирован: Вс июн 03, 2018 10:25
Откуда: 19 регион
Благодарил (а): 413 раз
Поблагодарили: 420 раз

Re: Освещение и другие технические вопросы

Сообщение andrei5550 »

Artcore,
Ну в общем беда :Plachet:
Всё как положено, скачал библиотеки и установил их в папку, затем подключил дисплей и датчик влажности всё по инструкции ( ошибиться не мог, перепроверил), затем скопировал ваш скетч в программу , при подключении ардуинки к компу дисплей засветился и тут я увидел что дисплей раздавлен или ещё что то, короче залил я скетч и ничего на дисплее не отображается.
Вопрос: всё дело в дисплее или я что то не так сделал, по идее же хоть что-то должно отображаться или нет, есть мысли ?
Вложения
IMG_20200130_160053.jpg
IMG_20200130_161450.jpg
Artcore
участник
Сообщения: 74
Зарегистрирован: Сб мар 02, 2019 3:57
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 23 раза

Re: Освещение и другие технические вопросы

Сообщение Artcore »

andrei5550, такого быть не должно. Дисплей явно битый. Можно попробовать написать продавцу, или открыть спор. Может быть виновата наша почта, а может такой и отправили... не угадаешь :(
Аватара пользователя
andrei5550
долгожитель
Сообщения: 621
Зарегистрирован: Вс июн 03, 2018 10:25
Откуда: 19 регион
Благодарил (а): 413 раз
Поблагодарили: 420 раз

Re: Освещение и другие технические вопросы

Сообщение andrei5550 »

Artcore, Это ещё не всё :ir: , как выяснилось позже, ещё и DHT-22 не рабочий оказался, проверял отдельно через "Монитор порта", я в шоке :Smyshenie: , спор не открыть время упущено, ну да ладно.
Если помните, я же и LCD дисплей брал, проверил его, рабочий, удалось подключить ёмкостный датчик влажности и вывести на дисплей, ситуация следующая, меняю по очереди входа для датчика ( А0 А1 А2 и т.д.) и меняю в скейче, всё работает, а ума не приложу как их воедино (3штуки) заставить работать и вывести на дисплей ?

Скейч
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// инициализировать библиотеку с номерами интерфейсных штырьков
LiquidCrystal_I2C lcd (0x27,20,4); // устанавливаем ЖК-адрес 0x27 для 20-ти символьного и четырёхстрочного дисплея

const int waterSensor = 0 ;
int waterValue = 0 ;

void setup ()
{
lcd.init (); // инициализируем lcd
lcd.backlight (); // открываем подсветку
}
void loop ()
{
int waterValue = analogRead (waterSensor ); // получить значение датчика воды
lcd.setCursor (2,0); // поместить курсор в 2 столбцов, 1 строки
lcd.print (waterValue ); // значение отображается на ЖК
}

P.S. ну а уж со временем приобрету новый датчик DHT и дополним код.
Вложения
IMG_20200130_225957.jpg
IMG_20200130_230008.jpg
Artcore
участник
Сообщения: 74
Зарегистрирован: Сб мар 02, 2019 3:57
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 23 раза

Re: Освещение и другие технические вопросы

Сообщение Artcore »

andrei5550, константа const int waterSensor = 0 отвечает за выбор пина. Сейчас у вас там указан пин 0. Нужно просто ввести остальные переменные. И попробуем вывести все данные одной строкой через массив:

Код: Выделить всё

 #include <Wire.h> 
#include <LiquidCrystal_I2C.h>
// инициализировать библиотеку с номерами интерфейсных штырьков
LiquidCrystal_I2C lcd (0x27,20,4); // устанавливаем ЖК-адрес 0x27 для 20-ти символьного и четырёхстрочного дисплея

const int waterSensor1 = 1;
const int waterSensor2 = 2;
const int waterSensor3 = 3;

void setup ()
{
lcd.init (); // инициализируем lcd
lcd.backlight (); // открываем подсветку
}
void loop ()
{ 
int d1 = analogRead (waterSensor1 ); // получить значение датчика 1
int d2 = analogRead (waterSensor2 ); // получить значение датчика 2
int d3 = analogRead (waterSensor3 ); // получить значение датчика 3

char line1[16]; // Массив данных
sprintf(line1, “D1:%3d,D2:%3d,D3:%3d”,d1,d2,d3); //запись в буфер
lcd.print(line1); // Вывод

}
Аватара пользователя
andrei5550
долгожитель
Сообщения: 621
Зарегистрирован: Вс июн 03, 2018 10:25
Откуда: 19 регион
Благодарил (а): 413 раз
Поблагодарили: 420 раз

Re: Освещение и другие технические вопросы

Сообщение andrei5550 »

Artcore, скопировал ваш код и залил на скорую руку, подключил два датчика А0,А1, выдало такую ошибку ?

P.S. сори за такой скрин.
Вложения
IMG_20200201_090944.jpg
Artcore
участник
Сообщения: 74
Зарегистрирован: Сб мар 02, 2019 3:57
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 23 раза

Re: Освещение и другие технические вопросы

Сообщение Artcore »

andrei5550, попробуем так:

Код: Выделить всё

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
// инициализировать библиотеку с номерами интерфейсных штырьков
LiquidCrystal_I2C lcd (0x27,20,4); // устанавливаем ЖК-адрес 0x27 для 20-ти символьного и четырёхстрочного дисплея

void setup ()
{
lcd.init (); // инициализируем lcd
lcd.backlight (); // открываем подсветку
}
void loop ()
{ 
int d1 = analogRead (1); // получить значение датчика 1
int d2 = analogRead (2); // получить значение датчика 2
int d3 = analogRead (3); // получить значение датчика 3

lcd.begin(16, 2);
lcd.print(d1);
lcd.setCursor (2,0);
lcd.print(d2);
lcd.setCursor(3,0);
lcd.print(d3);
}
Отправлено спустя 46 минут 10 секунд:
Покажу что имею я на данный момент. Итак, моя система измеряет температуру и влажность. И если влажность меньше установленного порога, запускается устразвуковой испаритель. Так же для выдувки пара установил в корпус 12в кулер. Все значения (включая дату и время) выводятся на дисплей.
Вложения
A0AB537D-05D5-49C9-9878-403A6C21D16C.jpeg
6D3F7F67-0C40-48E6-8939-5EABE9F961F6.jpeg
A2E8E8DF-937D-4A69-B6F2-BAC61803A0F9.jpeg
Аватара пользователя
andrei5550
долгожитель
Сообщения: 621
Зарегистрирован: Вс июн 03, 2018 10:25
Откуда: 19 регион
Благодарил (а): 413 раз
Поблагодарили: 420 раз

Re: Освещение и другие технические вопросы

Сообщение andrei5550 »

Artcore, Подключил 3 датчика А0 А1 А2, заработали два А1 и А2 но в одной строке и слитно, инициализации датчика А0 нет, пробовал сесть на А3 - тишина.
Вложения
IMG_20200203_061436.jpg
Аватара пользователя
andrei5550
долгожитель
Сообщения: 621
Зарегистрирован: Вс июн 03, 2018 10:25
Откуда: 19 регион
Благодарил (а): 413 раз
Поблагодарили: 420 раз

Re: Освещение и другие технические вопросы

Сообщение andrei5550 »

Artcore, Удалось таки запустить датчики !!!

P.S. ждём другие датчики и спасибо за помощь !!!
Вложения
Подключил все 3 датчика.
Подключил все 3 датчика.
Подписал нумерацию датчиков и процент.
Подписал нумерацию датчиков и процент.
Преобразовал в привычное отображение 0 - сухо и 100 - вода.
Преобразовал в привычное отображение 0 - сухо и 100 - вода.
Аватара пользователя
andrei5550
долгожитель
Сообщения: 621
Зарегистрирован: Вс июн 03, 2018 10:25
Откуда: 19 регион
Благодарил (а): 413 раз
Поблагодарили: 420 раз

Re: Освещение и другие технические вопросы

Сообщение andrei5550 »

Сегодня слегка " УХУ ЕЛ" я :ir: :ir: :ir:
Приобрёл в гипермаркете своего города " Светофор" для теста светодиодный линейный светильник, так поковырятся типо, цена вопроса 150 рублей.
P.S. продолжение следует.
Вложения
IMG_20200220_171713.jpg
IMG_20200220_171724.jpg
IMG_20200220_180548.jpg
Аватара пользователя
andrei5550
долгожитель
Сообщения: 621
Зарегистрирован: Вс июн 03, 2018 10:25
Откуда: 19 регион
Благодарил (а): 413 раз
Поблагодарили: 420 раз

Re: Освещение и другие технические вопросы

Сообщение andrei5550 »

И так, длина светильника в сборе 60 см, основание очень тонкий алюминий или жесть, всё остальное дешманский пластик, потребляемая мощность 20 Вт, меня интересует именно начинка, вскрыв светильник увидел две алюминиевые текстолитовые линейки с последовательной распайкой светодиодов smd 2835 в количестве 96 штук, длина линейки 52 см.
Вложения
IMG_20200220_171844.jpg
IMG_20200220_171913.jpg
Светит довольно ярко, цветовая температура в характеристиках не указано, но и визуально можно понять что примерно 6500к холодного свечения.
Светит довольно ярко, цветовая температура в характеристиках не указано, но и визуально можно понять что примерно 6500к холодного свечения.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Агротехнический раздел»