The raspberry water

Raspberry lake of the Altai Territory

Who was at least once in the Altai Territory, then, probably, was struck by the nature that the land awarded these lands. And one of such miracles is the so-called Raspberry Lake, which many experts quite rightly compare with the merits of the Dead Sea lying on the border of Israel, Jordan and Palestine.

The fact that the Crimson Lake of the Altai Territory, although located high in the mountains, unlike its Middle Eastern brother, but on the properties of its water, salt and therapeutic mud can compete with it. It should be noted that the name itself, the Raspberry Lake has received not just that, but due to the fact that at any time of the year it has a crimson-pink tinge of its water due to the presence in it of unique planktonic crustaceans, which by nature is such Colour.

This feature of the Crimson Lake and the salt falling in it was noticed by Russian explorers in the beginning of the eighteenth century. With this in mind back to the table of the Empress Catherine II brought this curiosity, which was not only a fairly original crimson shade, but had no less original taste qualities. And, proceeding from this, since those times, in the Altai Territory saline fishing has been established, which still exists.

No less remarkable are the sulphide-silt of this closed reservoir, which by their properties have the ability to normalize the functioning of the human skin. According to experts, this mud effectively cleans the skin of all kinds of toxins and keratinized cells, which in turn contributes to a fairly effective treatment of many skin diseases, including the same psoriasis, eczema and neurodermatitis.

Taking into account these particular features of the given region of Altai Krai in recent years, particular attention has been paid to the development of these areas of ecological tourism. So, in particular, on the shore of the same Malin Lake, a rather large recreation center has already been built, where everyone can not only spend their free time surrounded by the pristine nature of the Altai Territory, but also obtain the necessary balneological services using the same medicinal salts, water and mud . It should be noted that, taking into account the climatic features of the Altai Territory and the area where the Raspberry Lake is located, the optimal period of stay in this locality is the beginning of June and until the middle of September.

Источник

Raspberry Pi, Python и полив комнатных растений

У меня не складываются отношения с комнатными растениями. Дело в том, что я забываю их поливать. Зная это, я начал размышлять о том, что кто-то, наверняка, уже нашёл способ автоматизации полива. Как оказалось, способов таких существует очень много. А именно, речь идёт о решениях, основанных на Arduino или на Raspberry Pi. В этом материале я хочу рассказать о том, как создал систему, основанную на Raspberry Pi и Python, предназначенную для автоматизации полива растений.

Компоненты и полезные ресурсы

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

Вот список компонентов, которые я использовал в своём проекте.

После того, как я раздобыл все необходимые мне компоненты, пришло время заняться некоторыми изысканиями. Ниже приведён список ресурсов, которые помогли мне правильно соединить электронные компоненты и понять основные моменты, касающиеся их функционирования:

Схема GPIO-портов Raspberry Pi

Подключение реле к Raspberry Pi

Я начал с подключения реле к Raspberry Pi. Вот как это выглядит.

Подключение реле к Raspberry Pi

Красный провод (Female-Female) идёт от пина платы реле JD_VCC к 5V-пину (контакт №2) Raspberry Pi. Оранжевый провод (Female-Female) ведёт от пина платы реле VCC к 3.3V-пину (контакт №1) Raspberry Pi.

Пины JD_VCC и VCC платы реле

С помощью этих проводов мы подаём питание на плату реле. Для того чтобы получить возможность управлять отдельными реле, нужно соединить плату реле и Raspberry Pi ещё двумя проводами, которые подключаются к пинам GND и IN1 платы реле.

Пины GND и IN1 платы реле

Чёрный провод (Female-Female) — это кабель заземления, который соединяет пин GND платы реле и контакт заземления на Raspberry Pi (я подключил его к контакту №34). Белый провод (Female-Female) ведёт от пина IN1 платы реле к контакту №12 Raspberry Pi. Именно этот белый провод позволяет нам программным способом управлять реле, включая и отключая отдельные реле, расположенные на плате.

Чёрный и белый провода, подключённые к Raspberry Pi

Если вы решите воспроизвести мой проект — вы можете организовать связь реле и Raspberry Pi, пользуясь любыми подходящими пинами. Но учитывайте, что если схема соединения компонентов вашего проекта будет отличаться от схемы соединения компонентов моего проекта — вам придётся внести соответствующие изменения в мой код.

Подключение блока питания к реле

После того, как я присоединил плату реле к Raspberry Pi, я подключил блок питания к одному из реле.

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

Подключение блока питания к одному из реле

Используемый мной блок питания на 12V поставляется с адаптером, к которому удобно подключать соединительные провода. Я подключил красный провод (Male-Male) к разъёму «+» адаптера, а коричневый кабель (Male-Male) — к разъёму «-» адаптера. Затем я подключил кабель с разъёмом «крокодил» (Female-Male) к коричневому проводу.

Адаптер, который поставляется с блоком питания

На плате реле имеется четыре отдельных реле. У каждого из них есть три контакта, к которым можно подключать кабели. В центре каждого реле находится разъём, к которому подключают положительный вывод внешнего источника питания. Слева находится разъём, к которому подключают положительный вход устройства, на которое нужно подавать питание.

Подключение отдельного реле

Я подключил красный кабель от блока питания (положительный вывод) к центральному контакту реле. Затем я подключил оранжевый кабель (Male-Male) к левому разъёму реле и подключил к этому кабелю кабель с «крокодилом» (Female-Male).

Красный и оранжевый кабели

Блок питания и адаптер

Реле и Raspberry Pi

Подключение водяного насоса к реле

Теперь осталось лишь подключить разъёмы «крокодилы» к водяному насосу. Порядок их подключения определяет направление тока воды.

Так, мне нужно было, чтобы вода поступала бы в левый канал насоса и выходила бы из правого канала. Поэтому я подключил разъём «крокодил» чёрного провода к выводу насоса, около которого имеется красная точка, а другой «крокодил» — к другому выводу насоса. Если бы я подключил «крокодилы» в другом порядке — вода пошла бы в обратном направлении — из правого канала в левый.

Подключение водяного насоса к реле

Система полива в сборе: вода поступает в насос через левый канал, выходит из правого и идёт к растению

Вот мы и добрались до того, в чём я по-настоящему хорош. Мы дошли до кода. Для того чтобы наладить программную работу с GPIO-портами Raspberry Pi, я использовал библиотеку gpiozero. Пользоваться ей легко, она скрывает от программиста массу низкоуровневых механизмов, с которыми обычно нужно разобраться тому, кто хочет работать с GPIO-пинами. Библиотека хорошо документирована.

Прежде чем заниматься написанием кода, к Raspberry Pi нужно подключить монитор, мышь и клавиатуру. Или нужно подключиться к Raspberry Pi по SSH.

После того, как вы войдёте в Raspberry Pi, перейдите к папке Desktop и создайте там папку run . В этой папке создайте папку classes . А в папке classes создайте файл Hardware.py . В нём должен быть следующий код:

В этом файле я всего лишь объявил новый класс Relay , который является наследником класса OutputDevice.

Далее, в папке classes я создал новый файл TimeKeeper.py :

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

Итак, файлы Hardware.py и TimeKeeper.py находятся в папке classes . Теперь я, за пределами этой папки, создаю файл water_plant.py :

Тут можно поменять значения переменных WATERING_TIME и SECONDS_TO_WATER на те, которые кажутся вам подходящими. Первая переменная определяет то, в какое время нужно поливать растения. Вторая задаёт длительность полива.

Кроме того, я создал тут механизм рассылки уведомлений и напоминаний по электронной почте. Благодаря этому механизму владелец системы полива получает электронное письмо каждый раз, когда система включается и поливает растения. Кроме того, каждую пятницу он получает письмо с напоминанием о том, что ему нужно проверить запасы поливочной воды. В коде вызов соответствующих методов закомментирован, в результате программа может нормально работать и без настроек, касающихся электронной почты. Если вы хотите эти напоминания включить — надо сделать следующее:

  1. Надо ввести в строки FROM = TO = «YOUR_EMAIL@gmail.com» и password = «YOUR_PASSWORD» ваш адрес электронной почты Gmail и пароль.
  2. Нужно раскомментировать следующие строки:
  • # send_last_watered_email(time_keeper.time_last_watered)
  • # schedule.every().friday.at(«12:00»).do(send_check_water_level_email)
  • # schedule.run_pending()
  • Нужно перейти сюда, войти в учётную запись Gmail и включить переключатель, имеющийся на данной странице. В противном случае при попытке отправить письмо с использованием Gmail вы получите сообщение об ошибке.
  • Кроме того, тут важно отметить, что моя система напоминаний работает только с учётными записями Gmail.

    Теперь, когда всё готово к работе, у вас должна получиться следующая структура файлов и папок:

    Папку run можно, на самом деле, разместить где угодно. Я решил оставить её в папке Desktop .

    Меня не прельщала перспектива подключаться к Raspberry Pi каждый раз, когда надо было запустить water_plant.py . Мне хотелось, чтобы этот скрипт запускался бы автоматически при включении Raspberry Pi. Это, например, позволило бы легко отключить систему, перенести её в другое место, включить, и уже ни о чём не беспокоиться. Для того чтобы реализовать этот привлекательный сценарий, нам понадобится команда crontab .

    Откроем на Raspberry Pi окно терминала и введём следующую команду:

    В ответ на неё система должна вывести нечто, напоминающее то, что изображено на следующем рисунке.

    Настройка задач cron

    В этот файл нужно добавить следующую строчку:

    Затем этот файл надо сохранить, воспользовавшись комбинацией клавиш Ctrl+X , введя Y и нажав Enter .

    Вышеописанной строкой мы даём Raspberry Pi следующие инструкции: «Каждый раз, когда ты перезагружаешься, запускай файл water_plant.py , находящийся в папке run , котораях находится в папке Desktop ». Если у вас папка run находится по другому пути — отредактируйте соответствующим образом эту команду.

    Итоги

    Посмотреть код проекта можно здесь. Если хотите — можете сразу клонировать себе репозиторий такой командой:

    Вот и всё! Теперь вы знаете о том, как создать систему автоматизированного полива комнатных растений, основанную на Raspberry Pi. Она умеет поливать растения каждые 24 часа и может отправлять своему владельцу уведомления и напоминания по электронной почте.

    Уважаемые читатели! Как бы вы подошли к разработке домашней автоматизированной системы полива растений?

    Источник

    Thaldos/Raspberry-water-the-garden

    Use Git or checkout with SVN using the web URL.

    Work fast with our official CLI. Learn more.

    Launching GitHub Desktop

    If nothing happens, download GitHub Desktop and try again.

    Launching GitHub Desktop

    If nothing happens, download GitHub Desktop and try again.

    Launching Xcode

    If nothing happens, download Xcode and try again.

    Launching Visual Studio Code

    Your codespace will open once ready.

    There was a problem preparing your codespace, please try again.

    Latest commit

    Git stats

    Files

    Failed to load latest commit information.

    README.md

    Water the garden with a Raspberry pi

    Connect your devices like this:

    Raspberry Pi installation

    Installation of Raspbian

    Extract the archive.

    Copy past the files on your SD cart.

    Insert the SD cart in your Raspberry Pi and start it.

    Follow the installations steps.

    Installation of PHP 7.3

    Uncomment the line : deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi

    apt-get install -t stretch php7.3 php7.3-curl php7.3-gd php7.3-fpm php7.3-cli php7.3-opcache php7.3-mbstring php7.3-xml php7.3-zip

    Test by typing php -v in your terminal. You should have something like :

    Installation of Curl

    Type in Raspberry terminal :

    Installation of Composer

    Type in Raspberry terminal :

    Type in your terminal : sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

    And append some thing like :

    Now when you will restart your Raspberry, it will automatically connects to this network.

    Fixing of the Raspberry Pi IP

    Type in Raspberry terminal : sudo nano /etc/network/interfaces and append this :

    Then type in Raspberry terminal sudo nano /etc/dhcpcd.conf and append this :

    Check if your IP address is set well:

    Reboot then check your local IP : hostname -I

    Reboot again and re-check your local IP

    It should be the same.

    Installation of VNC server on the Raspberry

    To easily access to your Raspberry every time, you should use VNC. You have to enable VNC server on your Raspberry and install VNC viewer on you desktop.

    Menu > Preference > Raspberry configuration > Interfaces > Enable VNC

    Installation of VNC viewer on your desktop

    Launch VNC viewer and add a new connection to 192.168.1.201 , with the user pi and password raspberry .

    Important note: be sure te be on same Wi-Fi network on both sides.

    Installation of SMTP

    Follow this good tutorial:

    If, like me, you use gmail, this is a good configuration :

    Copying of the project files on your Raspberry pi

    Copy all this project files to your Raspberry in /home/pi/Raspberry-water-the-garden/ by typing :

    Copy .env.dist to .env and customize the constants in the .env file as your wish.

    Download the vendors

    Then type in Raspberry terminal :

    Set the cron tab

    On your Raspberry, in terminal, type crontab -e and add the lines:

    Your Raspberry pi will check every day at 23pm if your garden need to be watered, and if it is needed, the Raspberry will water your garden during the appropriate delay.

    You can run manually the watering by typing in your Rapsberry Pi terminal :

    The garden will be watered during the delay defined by DELAY_MIN in .env .

    You can reset the relay by typing in your Rapsberry Pi terminal :

    Special thanks to my lovely wife for the logic contained in the function getDelayForWatering($temperature) .

    Источник

    Adblock
    detector