Om even helemaal vanaf het begin te beginnen, ik heb momenteel een Arduino draaien die mijn aquarium aanstuurt. Nu wil ik deze gaan vervangen door een Raspberry Pi.
De software heeft meerdere functionaliteiten:
Op de raspberry zou ik alles het liefste in 1 applicatie gieten, zodat ik ook alles in 1 taal kan schrijven. Nu gebruik ik C++ op de Arduino, PHP op de webserver en Javascript op de webpages.
Aangezien ik voornamelijk ervaring heb met de arduino en de arduino code altijd in een simpele loop draait, ben ik op zoek hoe ik dit het beste kan aanvliegen op de Pi.
Ik kan alles opdelen in 3 threads:
Data acquisitie (Het pollen van de sensoren, relatief heel veel wachttijd)
Core prosessing (Verwerken van de sensor data, reageren op de timers, output naar database en hardware outputs)
Web frontend
De uitdaging van multi-threaded oplossingen waar ik altijd tegen aanloop is het sharen van data tussen de threads zonder veel globale variabelen te gebruiken.
Een simpele oplossing is is om 3 separate oplossingen te schrijven die via tmpfs data sharen, en voor het uitlezen van de sensoren is dit waarschijnlijk de beste oplossing.
Ik heb zitten kijken naar een Node.JS oplossing, en de web integratie lijkt me super makkelijk, maar ik betwijfel of de eventloop niet te beperkt is voor het control deel en aansturen van de hardware.
Maar er zullen vast efficiëntere oplossingen zijn en dan vooral voor de koppeling naar de web interface, en daar heb ik jullie hulp een beetje bij nodig. Ik hoef geen voorgekauwde oplossing te hebben maar ik heb een duwtje nodig in de richting waar ik naar zou kunnen kijken.
Ik heb voornamelijk veel ervaring met C op de arduino, maar tegenwoordig doe ik ook steeds meer in Javascript en Python. Nu ben ik wel van mening dat alle programmeer talen op elkaar lijken dus over stappen naar een Java oplossing of iets dergelijks is niet een onoverkomelijk probleem
De software heeft meerdere functionaliteiten:
- Instellingen en monitoring via een web interface.
- Pollen van temperatuur en andere sensoren.
- Aansturen van relais op basis van de sensoren.
- Aansturen van relais op basis van tijd en user input.
- Aansturen van i2c pwm outputs voor de LED verlichting op basis van tijd en user input.
- Logging naar een database(je)
Op de raspberry zou ik alles het liefste in 1 applicatie gieten, zodat ik ook alles in 1 taal kan schrijven. Nu gebruik ik C++ op de Arduino, PHP op de webserver en Javascript op de webpages.
Aangezien ik voornamelijk ervaring heb met de arduino en de arduino code altijd in een simpele loop draait, ben ik op zoek hoe ik dit het beste kan aanvliegen op de Pi.
Ik kan alles opdelen in 3 threads:
Data acquisitie (Het pollen van de sensoren, relatief heel veel wachttijd)
Core prosessing (Verwerken van de sensor data, reageren op de timers, output naar database en hardware outputs)
Web frontend
De uitdaging van multi-threaded oplossingen waar ik altijd tegen aanloop is het sharen van data tussen de threads zonder veel globale variabelen te gebruiken.
Een simpele oplossing is is om 3 separate oplossingen te schrijven die via tmpfs data sharen, en voor het uitlezen van de sensoren is dit waarschijnlijk de beste oplossing.
Ik heb zitten kijken naar een Node.JS oplossing, en de web integratie lijkt me super makkelijk, maar ik betwijfel of de eventloop niet te beperkt is voor het control deel en aansturen van de hardware.
Maar er zullen vast efficiëntere oplossingen zijn en dan vooral voor de koppeling naar de web interface, en daar heb ik jullie hulp een beetje bij nodig. Ik hoef geen voorgekauwde oplossing te hebben maar ik heb een duwtje nodig in de richting waar ik naar zou kunnen kijken.
Ik heb voornamelijk veel ervaring met C op de arduino, maar tegenwoordig doe ik ook steeds meer in Javascript en Python. Nu ben ik wel van mening dat alle programmeer talen op elkaar lijken dus over stappen naar een Java oplossing of iets dergelijks is niet een onoverkomelijk probleem
All electric components run on smoke. If you let the smoke out, they won't work anymore.