Универсальный контроллер управления инкубатором, теплицей и др. на Atmega 328

Тема в разделе "Глядите, что я сделал", создана пользователем solonovich, 9 июн 2017.

  1. solonovich

    solonovich Нерд

    Всем привет!

    Решил выложить на всеобщее обозрение свой проект – универсальный контроллер для управление инкубатором и не только.

    Это не первый мой проект в теме инкубаторов. Было сделано много различных устройств на ARDUINO и не только. В результате я пришел к выводу, что необходимо сделать одну универсальную плату, и переписывать в ней софт в зависимости от поставленных задач.

    Плата была разработана на основании схемы ARDUINO NANO V3.0, с загрузкой в нее загрузчика ARDUINO.Что здорово облегчило процесс её программирования.

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


    И вот что получилось:
    [​IMG]

    Размер платы 50мм х 100мм.

    Контроллер Atmega 328P AU

    Вход питания от7 до 30 В

    Экран – NOKIA 5110

    Выходы управления – 4шт. (N- канальные транзисторы)

    Напряжение на выходе = напряжение на входе

    1 выход на сервопривод

    1 вход для DS18B20 ( до 5 шт.)

    1 вход для DHT21

    2 входа для контактных датчиков (вход измеряет АЦП)

    Разъем для подключения USB TTL переходника (для программирования), он же для подключения BLUETOOTH HC-05.

    На плате установлены часы DS3231.


    Схема электрическая

    [​IMG]


    На данном этапе контроллер запрограммирован под инкубатор. Сейчас проходит обкатку.


    Фото реального устройства

    [​IMG]


    [​IMG]

    Контроллер имеет гибкую систему конфигурации. Ниже приведены его настраиваемые параметры с клавиатуры.

    Пункты меню:

    [​IMG]


    Так же в память контроллера «зашита» таблица режимов инкубации, в зависимости от типа птицы и дня инкубации.


    [​IMG]

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


    Нагревателями управляет выход 1 . В качестве ключа стоит транзистор IRLZ 44N выходной ток max. 47А. Но я рекомендую не больше 5, если больше, то транзистор необходимо вешать на радиатор.

    Выход 1 может управляться ШИМом , что я и делаю. Для расчета сигнала управления использую ПИД регулятор.


    Выход 2-4 работают как ключи.

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


    При настройки ПИД регулятора стала необходимость вывода показания температуры на график, для анализа и корректировки коэффициентов ПИД регулятора.

    Сначала я написал программку на processing, но это мне не очень понравилось, т.к. приходилось постоянно держать ноутбук возле инкубатора. В результате я сел «осваивать» App Inventor.

    После долгих бессонных ночей, я сделал приложение, которое раз в 5 сек. опрашивает контроллер, и полученный результат выводит в виде графика на экран планшета (7 “).

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

    Вот как это выглядит:


    [​IMG]



    На рисунке 3 графика:

    1-й Температура

    2-й Влажность

    3-й уровень ШИМ сигнала


    Если температура ниже установленной график рисуется синей линией, если больше – красной. Так проще при анализе, сразу бросается в глаза.

    [​IMG]

    На этом рисунку видна синяя области (график 1). В это время осуществлялся поворот лотков, и открывалась заслонка для забора свежего воздуха (аэрация).


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

    Была доработана программа на планшете таким образом что бы данные с инкубатора посылались на сервер.

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

    Вот скрин:


    [​IMG]

    Дальше буду добавлять функцию SMS оповещения и SMS управления контроллером.

    Вот в принципе и всё.

    Будут вопросы, задавайте. solonovich-as@mail.ru

    P.S. Скетч не скидываю, т.к. постоянно вношу изменения. Когда всё будет готово выложу.
     

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      239 КБ
      Просмотров:
      15.689
    • shem.jpg
      shem.jpg
      Размер файла:
      192,1 КБ
      Просмотров:
      14.267
    • tb1.jpg
      tb1.jpg
      Размер файла:
      132,3 КБ
      Просмотров:
      12.972
    • 1p.jpg
      1p.jpg
      Размер файла:
      72,3 КБ
      Просмотров:
      13.288
    • 2p.jpg
      2p.jpg
      Размер файла:
      60,4 КБ
      Просмотров:
      12.961
    • Rejim.jpg
      Rejim.jpg
      Размер файла:
      155,9 КБ
      Просмотров:
      13.152
    • gr2.jpg
      gr2.jpg
      Размер файла:
      95,9 КБ
      Просмотров:
      12.711
    • gr1.jpg
      gr1.jpg
      Размер файла:
      92,2 КБ
      Просмотров:
      12.617
    • screen.jpg
      screen.jpg
      Размер файла:
      17,9 КБ
      Просмотров:
      12.394
    sslobodyan, Нигрол, SpiritOfMight и 5 другим нравится это.
  2. solonovich

    solonovich Нерд

    [​IMG]

    Скриншот приложения на планшете
     

    Вложения:

    • Screenshot.jpg
      Screenshot.jpg
      Размер файла:
      270,1 КБ
      Просмотров:
      12.054
  3. solonovich

    solonovich Нерд

    Сделал небольшой обзор.

     
    jriy51 нравится это.
  4. solonovich

    solonovich Нерд

    Скетч
     

    Вложения:

  5. solonovich

    solonovich Нерд

    В архиве есть библиотека Adafruit_GFX_Library.zip , в ней изменён файл со шрифтами.
    Маленькие латинские буквы, я заменил на русские большие.
     
  6. DIYMan

    DIYMan Guest

    Предложение: заведите проект на github, туда и выкладывайте скетч. Сразу будет и версионность, всегда можно откатиться на любую версию, git - он такой, удобный в этом смысле, и вообще - маст хэв ;)
     
  7. DIYMan

    DIYMan Guest

    Дело вкуса :) Но сам факт, что без гита уже никуда - это факт ;)
     
  8. solonovich

    solonovich Нерд

    Нужно подумать над этим, возможно вы и правы.
     
  9. Гирес

    Гирес Нуб

    kontroller_v1.ino:70:25: error: expected unqualified-id before ',' token
    kontroller_v1.ino: In function 'void loop()':
    kontroller_v1.ino:336:26: error: expected primary-expression before '=' token
    kontroller_v1.ino:336:60: error: expected primary-expression before '=' token
    kontroller_v1.ino:468:8: error: expected primary-expression before ';' token
    menu.ino: In function 'void Frame_1()':
    menu.ino:187:52: error: expected primary-expression before ',' token
    Ошибка компиляции.



    Не пойму что не так
     
  10. dimon733

    dimon733 Нуб

    Устройство хорошее.только еще добавить бы режим проветривания, реверс поворота лотков и звуковую сигнализацию аварийных режимов.
     
    павел1965 нравится это.
  11. be8708

    be8708 Нуб

    У меня тоже ошибка компиляции. Что я неправильно делаю ???
     
  12. solonovich

    solonovich Нерд

    Вот скетч и библиотеки, будут проблемы пишите в личку, свяжемся через скайп или вайбер, помогу
     

    Вложения:

    be8708 нравится это.
  13. be8708

    be8708 Нуб

    Добрый день. Получилось скомпилировать и залить в Arduino. Пока в UNO. Сейчас попробую Вашу плату нарисовать в lay.
     
  14. RuslanV

    RuslanV Нерд

    Что сделали чтобы скомпилировать. Ошибки те же.
    kontroller_v1.ino:70:25: error: expected unqualified-id before ',' token
    kontroller_v1.ino: In function 'void loop()':
    kontroller_v1.ino:336:26: error: expected primary-expression before '=' token
    kontroller_v1.ino:336:60: error: expected primary-expression before '=' token
    kontroller_v1.ino:468:8: error: expected primary-expression before ';' token
    menu.ino: In function 'void Frame_1()':
    menu.ino:187:52: error: expected primary-expression before ',' token
    Ошибка компиляции.
     
  15. be8708

    be8708 Нуб

    Если честно, то методом "научного" тыка.
    -сначала снес Arduino IDE.
    -затем скачал FLProg_3-1-4_Portable.zip и развернул его на диске D.
    -из этой папки запустил Arduino IDE 1.8.1, добавил библиотеки из архива, которые предоставил Solonovich (перед этим удалив из названия библиотеки слово "-master"
    -загрузил скетч.
    Как то так.
     
  16. SpiritOfMight

    SpiritOfMight Нуб

    Возможно слегка невежливо с моей стороны будет просить о таком, но возникла необходимость повторить данное устройство, скетч, библиотеки и принципиальная схема здесь уже есть, вся проблема в том что я в такого рода делах новичок и не справился с трассировкой печатной платы, не могли бы вы выложить гербер файлы данного проекта пожалуйста и возможно bom файл для заказа комплектующих. Спасибо.
     
  17. помогите начинающему. схему и плату можно для ардуино нано или под мегу 328. лучше для ардуино.ардуино нано получилось прошить почти сразу. особых проблем не возникло.
    прошил ардуино нано и подключил только дисплей. показания постоянно моргают и у вас на видео тоже, зачем это сделано? нельзя , чтобы горели постоянно?
     
    Последнее редактирование: 8 янв 2019
  18. jriy51

    jriy51 Нерд

    Если нужно могу свою предложить.Файл в лайоут6
    Я его слепила из того что было;)
     

    Вложения:

    • DSCN5364.JPG
      DSCN5364.JPG
      Размер файла:
      147,6 КБ
      Просмотров:
      899
    • DSCN5365.JPG
      DSCN5365.JPG
      Размер файла:
      146,9 КБ
      Просмотров:
      1.128
    • DSCN5382.JPG
      DSCN5382.JPG
      Размер файла:
      138,7 КБ
      Просмотров:
      934
    • DSCN5383.JPG
      DSCN5383.JPG
      Размер файла:
      141,1 КБ
      Просмотров:
      909
    Последнее редактирование: 9 янв 2019
  19. спасибо!!! конечно нужно!!!
    можно марку микросхемы на 3.3 вольта?
    не подскажите, программы для планшета или андроид в свободном доступе нет?
    и почему дисплей моргает все время? это так и должно быть?и еще не вижу у Вас на плате микросхему времени или она не нужна?
     
    Последнее редактирование: 9 янв 2019
  20. DetSimen

    DetSimen Guest

    а порядок байт правильный? Или как написано? По научному надо так прописывать
    uint64_t addr = 0x2842EBCC0A0000EE;