duminică, 12 aprilie 2020

Sistem de automatizare incubator oua (2)

   Am reusit sa-mi fac timp sa mai lucrez la sistemul de control automatizat al unui incubator.
   In articolul Sistem de automatizare incubator oua am pus si varianta asta, pentru cei ce cunosc acel articol. Versiunea actuala are un modul RTC (ceas cu DS3231 sau DS1307) pentru a nu pierde numaratoarea inversa pana la terminarea perioadei de incubare.
   M-am gandit sa descriu mai bine ultima versiune, care are urmatoarele facilitati, incluzandu-le si pe cele ale versiunii initiale, ce sunt vazute daca se apasa lung (3-4 secunde) pe butonul de MENIU/NEXT, valorile se schimba prin apasarea tastelor + sau -.
- reglaj temperatura dorita
- reglaj diferenta acceptata de temperatura
- reglaj umiditate dorita
- reglaj diferenta acceptata de umiditate
- timp intre rotire oua
- timp rotire oua
- prag atentionare depasire sau scadere temperatura
- prag atentionare depasire sau scadere umiditate
- total zile de incubare
- dupa a cata zi de la pornire sa se roteassca prima data oualele
- dupa a cata zi de la pornire sa se opreasca rotirea oualelor
- pornire si oprire sistem de incubare
   Daca sistemul este oprit, se indica doar temperatura si umiditatea, fara a a avea activate iesirile.
   Daca sistemul este pornit, sunt indicate temperatura si umiditatea, timpul ramas pana la terminarea incubarii (ca exemplu aici am pus 21 zile, cum e la oualele de gaina).
   Abia dupa trecerea numarului de zile se arata timpul pana la urmatoarea rotire... pentru asta in program am o variabila debug ce e false sau true pentru a putea verifica mai rapid functionarea, deoarece reduce timpul dintre intoarceri oua de la nivel de ore la cel de minute, respectiv zilele la minute pentru a simula trecerea mai rapida a orelor.
iar daca a trecut timpul, sa roteasca intr-un sens oualele (led rosu aprins, led verde stins, cele din dreapta)
iar la urmatoarea data in sens opus (led verde aprins, led rosu stins, cele din dreapta)
   Daca temperatura este prea scazuta, se comanda alimentarea unei rezistente de incalzire, care este simultata cu ledul galben. Daca umiditatea este prea ridicata se comanda un electrovalva sa un alt sistem pentru a se deschide o "ferestruica" pentru a reduce umiditatea, aceasta electrovalva este simulata de ledul vede de langa cel galben. Ledul rosu din stanga indica o eroare (depasire pagruri impuse) si la acea iesire se pune un avertizor acustiv activ sau o sonerie simpla ce se poate alimenta de la 5V fara a consuma prea mult.In acelasi timp, pe ecran in fata temperaturii si/sau umiditatii apar stelute, pentru a indica depasirea. daca se apasa oricare din butoanele fara retinere + sau - se opreste avertizarea, dar raman stelutele pe ecran pana eroarea dispare.
   Am facut 2 filmulete, cu setarea de simulare (trecere rapida timp):
- cu comentarii in romana
- cu comentarii in engleza
    Programul folosit este eggincubator_2.ino, iar schema principala este cea pe care am aratat-o la inceputul articolului:
 Partea de comanda a rezistentei de incalzire se poate face cu releu sau mai bine cu optocuplor si triac. 
 respectiv 
   Comanda electrovalvei de evacuare umiditate poate fi facuta cu un releu.
   Comanda motorului de curent continuu se face cu o punte H realizata:
- cu relee (cum am prezentat in articolul Sistem de comanda automata sau manuala sens rotatie motor de c.c.
sau
- cu L298 (cum este prezentat in articolul Scurta prezentare si testare a unui modul de comanda motoare cu L298)
   Numarul de zile de incubare se face in functie de tipul speciei:
iar prima zi de intoarcere sa fie a 3-a, iar ultima de rotire cu 3 zile inainte.

    Astept comentarii si rezultate ale testelor voastre, pentru eliminarea eventualeor bug-uri (erori). De asemenea, comentariile tendentiose, cu jigniri se vor sterge, avand in vedere ca acest proiect a fost dezvoltat fara a obtine beneficii materiale, iar firme sau persoane din Indonezia deja comercializeaza versiunea initiala, fara a ma anunta macar. Proiectul e open source, dar asta inseamna sa il dezvoltati singuri, nu sa ma stresati pe mine... nici eu nu-s programator, dar invat singur, testez... si mai e si timpul liber limitat, care observ ca nu va intereseaza deloc... 

13.04.2020
   Pentru cei cu motor de cuptor de microunde, cu o singura iesire, se face o modificare simpla:
pentru a avea iesirea in 1 logic doar pe iesirea MOT_A, cand trebuie rotite oualele.

22.4.2020
    Pentru a NU reseta cronometrul, daca se umbla in meniu, nu trebuie sa se ajunga la ultima selectie de pornire/oprie incubator. Se modifica parametrii necesari si s lasa sa iasa singur sistemul din programare parametrii (in 60 secunde de la intrarea in meniu, prin apasare lunga buton).

01.05.2020
   Deoarece acest proiect pare ca are ceva succes, vreau sa imi trimiteti pe adresa de email poze cu incubatorul (partea de comanda) realizat de dvs, pe care sa le postez (sa imi scrieti si cum vreti sa va prezint). Daca sunt suficiente proiecte reale, o sa continui dezvoltarea softului, relativ repede, daca nu, cand o sa imi mai aduc aminte de el..

05.08.2020
   Am primit doar de la Hassan ITNAHC (gamstair) poze cu incubatorul sau:
   Am modificat programul pentru a se folosi un senzor LM35 conectat la pinul A3, cum a fost prezentat in articolul Senzorul de temperatura LM35 si Arduino
   Programul modificat este eggincubator_2d.ino.

03.03.2024
   Anul trecut, prin noiembrie, am primit niste poze niste poze cu un incubator realizat in Cehia, Frantisek Mikulcikovi

98 de comentarii:

  1. Salut Nea Nicu, felicitari pt realizarile dumneavoastra si va mai multumim ca v-ati gandit la noi cei care am facut acest proiect de la inceput si nu la cei de afara care plagiaza :)
    Daca nu va suparati, as mai avea doua sugestii, ( desi spuneti destul de clar, ca fiecare sa dezvolte acest proiect dupa dorinte, eu doar va sugerez, dumneavoastra decideti ).
    -1 La ziua 18( ziua sfarsit de rotit ouale ) sa avem un buzer semnal acustic pt a ne atentiona, sa va spun si de ce. Daca ouale sunt in cofrag, acel cofrag trebuie indepartat si ouale se aseaza pe gratar.
    -2 La umiditate scazuta ar fi binevenita o comanda pt o mini pompa de apa care sa introduca o mica cantitate de apa dintr-un rezervor. Asta in cazul in care nu vom fi acasa.
    Si ar mai fi o rugaminte personala, pt rotire oua folosesc un motoras care era folosit la platanul cuptorului cu microwawe, este posibil sa lasati in sketch si vechea comanda pt acest motor?

    Inca odata, multumim frumos pt imbunatatirea acestui proiect si mai ales pt timpul alocat.
    Doamne ajuta!

    RăspundețiȘtergere
    Răspunsuri
    1. legat de ultima rotire, o sa incerc sa implementez si acel sunet de avertizare la sfarsitul perioadei de rotire, sa configurez programul sa se poata folosi si vechea comanda, dar cum e acum, se pot pune 2 diode 1N4001 si la iesirea lor se va da comanda la fiecare data.. o sa vad cum pun si comanda pompei de apa

      Ștergere
    2. Nea Nicu ce va mai spun? stiti vb aia romaneasca, mare boier mare caracter! asta sunteti dumneavoastra care ne bucurati inimile. Pe acest pamant sunt miliarde de oameni insa din pacate ca dumneavoastra 1 la mie.

      Nu am cuvinte sa va multumesc pt ca ceea ce faceti ne impartasiti si noua.
      Dumnezeu sa va ajute!

      Ștergere
  2. Sa testat treaba cu cele doua diode 1N4007 si este in regula. Ar mai trebui putin umblat la intrarea iesirea din meniu. Pt cine nu stie, daca se navigheaza prin meniu cand acesta este pus la treaba, nu trebuie ajuns cu meniul la capat pt ca se reseteaza ceasul. Buzzerul este deranjant pt ca piuie continuu, va rog puneti un delay ceva ( sunet intermitent ).
    Consider foarte utile acele functii descrise la punctul 1 si 2 mai sus pe blog.

    Felicitari pt proiect si munca depusa.

    RăspundețiȘtergere
  3. momentan notez observatiile... puneti scotch pe buzer, daca va deranjeaza.. spasati plus sau minus si tace...

    RăspundețiȘtergere
  4. hello
    igot this error pls help

    Arduino: 1.8.12 (Windows 7), Board: "Arduino Uno"

    In file included from C:\Users\moth\Documents\Arduino\libraries\DHT-sensor-library-master\DHT_U.cpp:15:0:

    C:\Users\moth\Documents\Arduino\libraries\DHT-sensor-library-master\DHT_U.h:36:10: fatal error: Adafruit_Sensor.h: No such file or directory

    #include

    ^~~~~~~~~~~~~~~~~~~

    compilation terminated.

    exit status 1
    Error compiling for board Arduino Uno.

    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

    RăspundețiȘtergere
    Răspunsuri
    1. in sketch after command is link to download the library

      Ștergere
    2. #include "DHT.h" // https://github.com/tehniq3/used_library (DHT)

      Ștergere
  5. thnx i fix it
    you are very generous
    i will try it and tell you the results

    RăspundețiȘtergere
  6. Buna seara,
    este posibil sa mariti putin timpul rotire oua din 10sec la un 20-30 sec ? am un motor mai lenes :))

    Multumiri.

    RăspundețiȘtergere
    Răspunsuri
    1. linia 781 e asa if (taim2 > 10) taim2 = 10; unde 10 reprezinta secundele puteti pune pana la maxim 254

      Ștergere
  7. Sa traiti si multumesc pt solutia timp motor.
    Precizez ca am pus proiectul in probe de acum 10 zile
    si totul functioneaza normal.

    Multumesc pt proiectul frumos pe care-l oferiti pt noi,
    si sunt nerabdator sa-l vad la final avand comanda pt
    servo la fereastra pt evacuare exces de umiditate, alimentarea
    cu apa cand nivelul umiditate scade si ce mai credeti ca este cazul
    de adaugat.

    Sanatate va doresc.

    RăspundețiȘtergere
    Răspunsuri
    1. Din pacate, acest proiect nu reprezinta o prioritate pentru mine, acum e inca in teste sa vad cum face pana la sfarsit (test cu reglare de 21 zile)... o sa incerc sa impementez toate aceste "facilitati", cand gasesc timp si pentru el. Trebuie sa va ganditi ca un amarat de incubator de oua, care functioneaza foarte bine, in comert este la cca 100lei, incluzand sistemul de termostatare, sistem de rotire oua (manual, ce-i drept)... acesta costa mult mai mult, dar daca nu se implica si altcineva cu programarea, o sa ma "tocati" pe mine la cap cu tot felul de vise... calm, o sa fac cand pot si cand am dispozitie... am pierdut zeci de ore la ultima versiune.. ca era un mic concediu si a trebuit sa stau in casa, cu covid-ul... dar asta nu inseamna ca o sa fac tot asa... notez, ce se doreste si fac apoi o selectie cu ce implementez...

      Ștergere
  8. i love you man
    you helped us alot
    thank you so much
    i hope you a good life
    😊😊😊🌻🌼🌷

    RăspundețiȘtergere
  9. how can i change code to see temperature on classic screen like this
    24.1
    24.2
    24.3
    24.5
    ...........

    RăspundețiȘtergere
    Răspunsuri
    1. I don't understand what you want to do.. temperature is displayed as 24.5...

      Ștergere
  10. I want to increase the accuracy of the measurement shown on the screen
    The number after the comma

    RăspundețiȘtergere
    Răspunsuri
    1. line 65 is now:
      int resolution = 11 ; // for more precission put 12

      Ștergere
  11. On the screen it appears only one and a half degrees and does not appear with the accuracy that we choose in the settings
    I know I have more than just requests, but I am very happy with this project and very happy to have a decent person like you

    RăspundețiȘtergere
  12. Thank you
    I wish you the best life

    RăspundețiȘtergere
  13. Hi sir , when i try to enter the code to arduino i get this message:

    no matching function for call to 'LiquidCrystal_I2C::begin()'

    i already downloaded all the library , how i can fix this thank you sir.

    RăspundețiȘtergere
    Răspunsuri
    1. use libraries with link in dketch... please see the sketch

      Ștergere
    2. thank you very much , i changed begin() with lcd.init() and worked ,

      Ștergere
  14. hello, i have this error...please help

    Arduino: 1.8.5 (Windows 10), Board: "Arduino/Genuino Uno"

    In file included from C:\Users\E5\Documents\Arduino\libraries\DHT-sensor-library-master\DHT_U.cpp:15:0:

    C:\Users\E5\Documents\Arduino\libraries\DHT-sensor-library-master\DHT_U.h:36:29: fatal error: Adafruit_Sensor.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compiling for board Arduino/Genuino Uno.

    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.


    thank you

    RăspundețiȘtergere
    Răspunsuri
    1. library from github link is already installed

      Ștergere
    2. ok, use library from https://github.com/tehniq3/used_library

      Ștergere
  15. hi sir , i build the project it works very good thank you , but when i connect relay after a while the arduino freeze and lcd too .

    RăspundețiȘtergere
    Răspunsuri
    1. you connected the diode in parallel with coil of the relay ? also, you must use another power supply for motor

      Ștergere
    2. i connected the diode in parallel with relay and powered the motor form another source , also powered the relay with separate supply , everything work great but when i connect 220 v to relay to test the bulb my arduino freeze after couples of relay switch, please give me solution because i invested a lot in this project and build a big incubator all i need is the control to work , thank you very much for your time.

      Ștergere
    3. i solved the problem , i changed the relay with solid state relay that help me eliminate Electromagnetic radiation (EMR).

      Ștergere
  16. i connected the diode in parallel with relay and powered the motor form another source, also powered the relay with separate supply, everything work great but when i connect 220 v to relay to test the bulb my arduino freeze after couples of relay switch, please give me solution because i invested a lot in this project and build a big incubator all i need is the control to work, thank you very much for your time.

    RăspundețiȘtergere
  17. i solved the problem , i changed the relay with solid state relay that help me eliminate Electromagnetic radiation (EMR).

    RăspundețiȘtergere
  18. Sir , i want to ask, is it good to add watchdog timer to the code so the program will reset if the code hang or the Watchdog Timer is not needed in the application , plz give me your advice because i don't want the code to hang and that will led to burn or cold eggs , thank you .

    RăspundețiȘtergere
    Răspunsuri
    1. https://www.google.com/amp/s/circuits4you.com/2018/01/24/tutorial-on-arduino-watchdog-timer-setup/amp/

      Ștergere
    2. thank you very much sir .

      Ștergere
  19. hi sir , i build the project it works very good thank you I want to adjust the egg rotation time because it reduces the time between egg retrieval from hours to minutes, respectively from days to minutes to simulate the passage of hours faster.

    RăspundețiȘtergere
  20. Salute sir,
    May this schem work with 16×2 LCD display. I tried it many time..
    Error shows.. LCD.begin() is error.
    In display box shows
    " no matching function for call to ' LiquidCrystal::begin()' please help sir...
    Thanks lot.....

    RăspundețiȘtergere
    Răspunsuri
    1. in sketch is link to used library, but you can change this line with lcd.init();

      Ștergere
  21. Salute sir,
    May this schem work with 16×2 without i2c board. LCD display. I tried it many time..
    Error shows.. LCD.begin() is error.
    In display box shows
    " no matching function for call to ' LiquidCrystal::begin()' please help sir...
    Thanks lot.....

    RăspundețiȘtergere
    Răspunsuri
    1. in sketch is link to used library, but you can change this line with lcd.init();

      Ștergere
  22. Привет сер проект очень хороший но переворот яиц всегда включен как сделать что бы он включался по времени и еще можно добавить проветривание по времени с уважением Сергей

    RăspundețiȘtergere
  23. Cristi

    Buna domnule autor, un update ceva ?

    RăspundețiȘtergere
    Răspunsuri
    1. salut, momentan nu... cum am noutati, postez... nu am primit macar o poza cu un incubator realizat, deci nu pare un proiect de interes sa-l dezvolt prea curand, eu notez observatiile dib comentarii...

      Ștergere
  24. hello sir , whats your email i want to send you my incubators pictures

    RăspundețiȘtergere
  25. i did send you pictures, check your email, give feedback thank you.

    RăspundețiȘtergere
  26. hi..thanks for sharing this greatest article, and i love to build one, but this is just my little bit experiences about hatching eggs, i always forgot to add water in the tank, and it cause temperature rise up.., can you add more feature of this arduino code about water level sensor??, best regard agrhatea@gmail.com

    RăspundețiȘtergere
    Răspunsuri
    1. I just note your desire for the momment. I'm very busy.

      Ștergere
  27. I wanted the time between rotation in minute basis.

    RăspundețiȘtergere
  28. Răspunsuri
    1. comment line no. 133 and activate line no, 134 to have
      boolean debug = true;

      Ștergere
    2. By changing this part
      Will the eggs rotate in minute basis ?

      Ștergere
    3. this mode is judt fot testing and debugging mode.. not be used for real eggs

      Ștergere
  29. The eggs shall rotate on minute basis.

    RăspundețiȘtergere
    Răspunsuri
    1. if activate debugging mode is like in vide from.article.. this case is just for testing, not for real eggs

      Ștergere
  30. And one more doubt
    Can I use LM35 as the heat sensor ?

    RăspundețiȘtergere
    Răspunsuri
    1. you can use LM35 jyst if you change the sketch for read this sensor

      Ștergere
    2. search on net a sketch for LM35 and replace part used for DS18B20... I haven't time in this period .. must study yourself... I note your desire and when I have a litle free time I modify the sketch...

      Ștergere
    3. I modified myself the sketch for LM35, see https://github.com/tehniq3/egg-incubator/blob/master/eggincubator_2d.ino

      Ștergere
  31. I have a suggestion for you.
    sir if you are going to update the programme for the incubator in the future. Make sure you include the feature "periodic cooling".
    the heater and humidifier would turn off every day for 30 min every day till the hatching period .
    Thank you.

    RăspundețiȘtergere
  32. hello, I've looked all over the internet on this subject, definitely you are the best, thanks for making a project like this available, I'm setting up mine despite little experience, but it would be very interesting if you update this project to replace the buttons by one membrane keyboard, it would be awesome
    thanks again

    RăspundețiȘtergere
    Răspunsuri
    1. membrane keyboard or mechanical switch = same for software (sketch)

      Ștergere
  33. Sir,No letters found on lcd how to fix?

    RăspundețiȘtergere
    Răspunsuri
    1. you must find the adress for display with i2c_scanner, then test sketch

      Ștergere
  34. Sir adress is 0×27 how to change sketch

    RăspundețiȘtergere
    Răspunsuri
    1. use search function (CTRL+F) and put 0x27.. or read sketch..

      Ștergere
    2. in line no. 26 you must change 0x3F with 0x27

      Ștergere
  35. Why LCD affiche all the Time "THE END",I USE RTC DS1302

    RăspundețiȘtergere
  36. after how many days from the start to rotate the eggs for the first time

    it start at the second day in the program. how can i start it in first day itself.

    RăspundețiȘtergere
    Răspunsuri
    1. you can change from menu, but not from first day (as real incubator and real hen/chicken)

      Ștergere
  37. I need to rotate my eggs in the normal mode.

    Because a chicken rotates it's egg 50 times a day.

    So to increase the hatchbility, it is essential.


    Please help me with the program.

    In the normal mode.
    Please sir.
    Consider this as my request

    RăspundețiȘtergere
  38. just in movie rotstion of egg is quick.. in normal mode time between rotation is hours, as in meniu adjustment

    RăspundețiȘtergere
  39. Felicitari ! Faci o treaba minunata si iti multumesc pt ca inveti sa ne inveti.!
    Am invatat multe de la tine !
    Sa ai un an nou plin de bucurii !

    ...

    RăspundețiȘtergere
    Răspunsuri
    1. multumesc... din pacate, nu am foarte mult timp liber sa lucrez acest proiect.. printre picaturi, testez cate ceva si pun pe blog,,,

      Ștergere
  40. Thank you for this great work. It's possible to find lot of dyy incubators, but this is "another lewel." Going to try to build it. These arduino things are iterresting to me. What do you use as heater? Think, some kanthal wire about 30-40 W, will be good. Greetings from Slovakia.

    RăspundețiȘtergere
    Răspunsuri
    1. I just wrote the program (sketch) and simulated the device, but 30-40W heater is enough for small egg incubator.

      Ștergere
    2. Thank you again. Have a one question. The fist egg turning should not be the "turning time"/2? Because the egg tray is in middle position, and will start turning only half way.

      Ștergere
  41. Why are there two motors, motor A, and motor B?

    RăspundețiȘtergere
    Răspunsuri
    1. The device use just one motor, but a pin is for a direction (forward) and other oin is for reverse direction... you can see schematics with relay and L298

      Ștergere
  42. Great Job ! I have a question though, I am wondering how I could use a bme280 on this project.

    RăspundețiȘtergere
    Răspunsuri
    1. for me is a very old project... you can solve yourself the problem...

      Ștergere
  43. Felicitari , Mare om mare caracter !!!!

    RăspundețiȘtergere