Web pagina voermachine

Goedemorgen mannen,

Voor thuis ben ik bezig met het ontwerpen van een automatische voermachine. Het doel is om een systeem te maken dat automatisch kippen voert. De gebruiker kan dan met een web interface communiceren met de voermachine en bepaalde dingen instellen zoals de intervaltijd van zowel het voer als water en kan bepaalde dingen inzien zoals het gewicht van de voerbak en het waterniveau.

Ook wil ik dat de gebruiker het systeem kan regelen met 3 buttons en het display op de voermachine zelf.

Ik heb de volgende In en ouputs:

***sensoren***
waterlevelsensor1 - A0
waterlevelsensor2 - A1
buttonup - A2
buttondown - A3
buttonselect - A5
Weightsensor - D5, D6

***actuatoren***
steppermotor - D1, D2, D3, D4
led lights - D7
Waterpump - D8
Drain valve - D9
Led indicator on - D10
Led indicator error - D11

***i2c display***
VCC
GND
A4
A5

Nu vraag ik me af, wat zou een goede microcontroller zijn om dit te realiseren? Kan dit met een arduino uno? En dan met een ethernetshield en sd card (om de code in op te slaan).

Dit heb ik al eens op school werkend gehad maar toen had ik een smarthphone applicatie in android studio gebouwd en een voermachine werkend op een raspberry pi en python. Dit idee wil ik nu groter uitwerken maar dan dat elke gebruiker de voermachine kan bedienen over het netwerk. Ik snap dat er veel vragen zijn maar ik ben nu aan het kijken voor een goede microcontroller gezien de vele in en outputs en code.

Ik hoop dat jullie mij hierbij kunnen helpen en raad hebben.

Groeten,

Sven

Uno is veel te klein als webserver.
Beter een Pi-zero-W of een ESP32.

Is het niet mogelijk om een uno te gebruiken als webserver? (Met een ethernet shield).

Gezien de In en outputs moet het kunnen toch? En de code gaat sowieso over het geheugen heen van de arduino uno. Is het mogelijk om dan de code op een SD kaart te zetten?

ESP32 heeft toch te weinig IO poorten? voor mijn project.

Als ik dit duidelijk heb kan ik met de code beginnen

Ja, het kan wel met een UNO, maar het is wel zwaar behelpen.
En code draaien vanuit een SD kaart kun je vergeten.
En trouwens FAT32 is ook al best een uitdaging op een UNO, dus het uitlezen van een SD is nauwelijks te doen.

2 kB Sram is simpelweg een factor 100 te weinig voor dat soort toepassingen.

Als je te weinig I/O hebt dan kun je beter de webserver op de PI draaien en dan via serial port of I2C een UNO koppelen voor de I/O.

blackdog

Honourable Member

Hi,

Kijk eens naar de Teensy 4.1, nog steeds te programmeren met de Aduino IDE.

Dit is een zeer krachtige microcontrolen, heeft een SD kaart en 100mBit voorbereid aan boord.

Werp hier eens een blik:

https://www.pjrc.com/store/teensy41.html

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Oke, dus het is handiger om een ESP32 te gebruiken. Deze heeft wel de nodige Inputs en outputs voor mijn project. Maar heeft het genoeg geheugen voor een webserver? Ik snap dat het afhankelijk is van de grootte van de website. Ik heb voor het gemak een voorbeeld bijgevoegd in de bijlage van hoe ik het ongeveer wil hebben.

Het waterniveau is in procenten en wordt door 2 sensoren gemeten. Deze 2 waardes moeten weer worden ingelezen en daarvan het gemiddelde genomen. De stappenmotor moet ook een hele regeling krijgen en voor het meten van het gewicht gebruik ik een HX711 weegschaalsensor.

Zou dit allemaal mogelijk zijn met een ESP32?
Ik kan denk ik nu het beste beginnen met de code schrijven in arduino en dan kijken hoe ik uit kom met het geheugen.

Zie bijlage

ps . het is bedoeld nu als hobby, maar het zou leuk zijn om zoiets ook in de toekomst op de markt te brengen of uit te werken naar industrieel design. Is het mogelijk om dan nog de esp32 te gebruiken of moet ik daarvoor naar een andere microcontroller kijken?

blackdog

Honourable Member

Hi SvenTech,

Je microcontroler moet makkelijk je aplicatie aan kunnen, het kost veel tijd ergens iets in te proppen wat eigenlijk te klein is.
Hou er rekening mee dat je beter een 15 Euro microcontroler kan kopen die het makkelijk aan kan, dan dat je weken bezig bent de software zo te kneden zodat het in de controler past en soepel werkt.
Tijd is heel duur!

Het is natuurlijk anders als je b.v. 1000 stuks gaat maken, dan kan je ook beter er een programmeur bij halen die met het gene wat je wilt, goed op de hoogte is.

De tijd zit niet in de zeg 10 knoppen op je display en de functies die je aanstuurd, maar zit in je foutcontrole, wat gebeurd er als een gebruiker op twee knoppen drukt?
Er loopt water over je touch scherm, iemand hangt een jas over het scherm, meerdere funties achter elkaar aangestuurd, heb je er over nagedacht hoe je dit gaat afvangen/testen?

Ik deed regelmatig testen bij schermen die mijn collega's hadden geprogrameerd, kon ik een fout situatie maken zodat het systeem ontregeld raakt?

En WiFi zou ik niet voor Industriële toepassingen gebruiken, je bent bij het aansturen van machienes verantwoordelijk voor mens en dier.
Dat zijn de dingen waar ik aan denk als ik jouw start topic lees.

Het kan heel goed zijn dat je al met veel rekening hebt gehouden, maar voor de zekerheid wou ik dit toch even aantippen.

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

bedankt voor je bericht Bram,

Ik ben het volledig met je eens, het is ook eerst even uitzoeken en kiezen voor een simpele microcontroller. Ik denk dat het voor mij nu het verstandigste is om een ESP32 aan te schaffen en de code te schrijven.

Ook denk ik dat het verstandig is om de knoppen en het display op de voermachine voor nu even als optie in gedachten te houden. (ook ivm foutmeldingen en afhandeling).

Dus voor nu de regeling en daaraan de site programmeren. En natuurlijk goed het protocol met wat ik precies wil op orde hebben.

Wanneer dit allemaal goed functioneert zou ik pas kunnen kijken om dit op grote schaal te doen ( en bespreken).

Voor nu is het gewoon een klein project voor thuis. De automaat is bedacht voor een klein kippenhok (denk aan 5 kippen).

Voor nu de komende weken in de avonduurtjes zoet met het programmeren en het oplossen van eventuele bugs.

Allemaal bedankt voor jullie input!