Het MBSE-ArdRims Arduino software topic

Gestart door mbroek, 29-04-2016 21:51 u

Vorige topic - Volgende topic

0 leden en 1 gast bekijken dit topic.

mbroek

Deze software heb ik geschreven omdat de bestaande Open ArdBir software niet naar mijn zin was en niet meer uit te breiden. Deze software is te gebruiken met verschillende hardware bordjes, zoals ook het brewboard van biertje1985. Uit de LEESMIJ:

        MBSE-ArdRims
        ------------

Arduino software voor een eenpans brouw systeem met wat extras. De code is
gebaseerd op Open ArdBir, maar het meeste is geheel opnieuw geschreven.
De recepten opslag is niet uitwisselbaar met Open-ArdBir door een bug in de
Open-ArdBir code. De meeste, maar niet alle EEPROM opslag instellingen zijn
uitwisselbaar zodat het in gebruik nemen van deze software eenvoudig is.
Maar, controleer alle instellingen wanneer je deze software installeert of
als je andere software gaat gebruiken!


Verschillen tussen andere software en MBSE-ArdRims:

1.  Alleen voor elektrische systemen, ik heb geen plannen voor gas.
2.  Alleen 20x4 LCD displays.
3.  Tijdens de maisch stappen is de PID altijd in gebruik, er is geen vol
    gas methode als de temperatuur te ver af is.
4.  Logaritmische PWM vermogen regeling. Als de PID 1% vermogen wil, dan
    kan het effectieve vermogen groter zijn omdat je met 1% vermogen niets
    kan verwarmen. In de setup heet dit "Log Factor". Deze kan ingesteld worden
    tussen 0 (niets) en 20 (maximaal) extra vermogen. Hierdoor werkt de PID
    regeling een stuk beter. Het nut hangt sterk af van je installatie.
5.  Maisch stappen setup is vriendelijker. Eerst bepaal je of een bepaalde
    maisch stap wel of niet doorlopen moet worden, en als het "aan" is dan
    pas kun je de temperatuur en tijd instellen.
6.  Geen PID regeling tijdens koken. Verhitten naar de kook is altijd 100%.
    Als de kook temperatuur bereikt is kan dit minder zijn, dit is in te
    stellen. Als de temperatuur onder de kook temperatuur komt wordt weer
    100% gebruikt.
7.  Er zijn nu 4 Whirlpool fases mogelijk. De instellingen worden opgeslagen
    in het geheugen voor de recepten. Iedere whirlpool fase kan zijn:
    1. 88..100 Celcius, minimum temperatuur 93.
    2. 71..77 Celcius, minimum temperatuur 74.
    3. 60..66 Celcius, minimum temperatuur 63.
    4. Na de laatste koeling fase, geen minimum temperatuur.
8.  Een conditionele define in de sketch voor de display taal. Standaard is
    dit Engels, Nederlands kan aangezet worden.
9.  Een conditionele define om een extra SSR en DS18B20 sensor te gebruiken
    voor spoelwater. De verwarming gebeurt als er niet verwarmt wordt in de
    maisch ketel, dus het maximale stroomverbruik is die van de zwaarste ketel.
10. Verbeterde en meer robuuste uitlezing van de 1-wire sensoren.
11. Geen timer tijdens de handbediening, kijk zelf maar op de klok.
12. De code voor Automatic mode is nu State code. Dit scheelt geheugen en de
    code is beter te onderhouden.
13. De EEPROM opslag heeft een handtekening en versie markeringen. Hierdoor
    worden upgrades naar nieuwere versies eenvoudiger. Omdat dit nu zo is,
    worden de recepten van andere systemen (Open-Ardbir oa) gewist! Deze
    waren verkeerd opgeslagen.
14. Alleen gewijzigde waarden worden in EEPROM geschreven (update mode), dit
    moet de levensduur van de EEPROM aanzienlijk verlengen.
15. Het recepten menu is gebruiksvriendelijker. Het onthoud nu het laatst
    gebruikte recept. Ook is er nu een aparte Save en Save-as keuze.
16. Alleen nog Celcius.
17. De koel temperatuur wordt opgeslagen als een Auto/Recept instelling.
18. De timing wordt gedaan met een interrupt timer van de secTimer library.
    Dat werkt stukken beter als de oude millis() methode.

Naast de standaard Arduino bibliotheken zijn de volgende extra bibliotheken
nodig:

    OneWire
    PID
    secTimer

Via het menu: Schets -> Bibliotheken gebruiken -> Bibliotheken beheren.
In het nieuwe window kun je zoeken naar deze biblitheken en installeren.

Echte documentatie is er nog niet, met de handleiding van Open-ArdBir kom je een heel eind. En, dit is een forum dus je kunt altijd een vraag stellen.

De code vind je hier: https://github.com/mbroek/MBSE-ArdRims


De PID instellingen voor de MBSE/Brewboard software van verschillende gebruikers en brouwinstallaties. Op het tweede blad staan de laatste software versies.

https://docs.google.com/spreadsheets/d/1ddw43d5lz_D7QjSCa0G8MVvGC3b5Sj-BljUPQMGITJM/edit?usp=sharing

Pimmels

De sketch loopt goed, alleen zie ik op het bord van Biertje85 (optie 4 uit het keuze menu) nog niets op het display verschijnen :weetniet:
Ben ik iets vergeten te selecteren in de setup? ???

mbroek

Citaat van: Pimmels op 01-05-2016  11:59 uDe sketch loopt goed, alleen zie ik op het bord van Biertje85 (optie 4 uit het keuze menu) nog niets op het display verschijnen :weetniet:
Ben ik iets vergeten te selecteren in de setup? ???

Dat zou ik niet weten, ik heb niet zo'n bordje en kan het niet testen. Ik heb de pin nummers overgenomen uit zijn software. Even afwachten wat biertje1985 nog ontdekt, die zou het ook weer proberen.

En misschien weet hij waarom het bij jouw niet werkt.

Hoor je wel een korte beep na het downloaden van de software?

Chiel

rajd

Ik heb zo'n bordje en kan / wil graag wat testen. Wacht toch nog op leveringen uit China, dus tot die tijd kan ik ook wel wat testen met alternatieve software :).

Was het niet zo dat de verschillende PCB's anders aangesloten zijn op de Arduino? Dat zou dit gedrag kunnen verklaren.

mbroek

Citaat van: rajd op 01-05-2016  22:36 uIk heb zo'n bordje en kan / wil graag wat testen. Wacht toch nog op leveringen uit China, dus tot die tijd kan ik ook wel wat testen met alternatieve software :).

Was het niet zo dat de verschillende PCB's anders aangesloten zijn op de Arduino? Dat zou dit gedrag kunnen verklaren.

Dat klopt, je kunt dan ook uit 5 verschillende bordjes kiezen. Ik heb er maar 1 van die 5 kunnen testen, er kunnen dus foutjes in zitten.

Pimmels

Citaat van: mbroek op 01-05-2016  17:55 uDat zou ik niet weten, ik heb niet zo'n bordje en kan het niet testen. Ik heb de pin nummers overgenomen uit zijn software. Even afwachten wat biertje1985 nog ontdekt, die zou het ook weer proberen.

En misschien weet hij waarom het bij jouw niet werkt.

Hoor je wel een korte beep na het downloaden van de software?

Chiel
Chiel,
Ik heb even vergeleken en het lijkt er op dat in de MBSE sketch de Buzzer op A7 staat en bij het ArduinoBrewboard op 11...
De rest, sensor, lcd en buttons, staat bij beiden het zelfde ingesteld.
Ik ga het vanavond weer eens proberen...

mbroek

Citaat van: Pimmels op 02-05-2016  13:17 uChiel,
Ik heb even vergeleken en het lijkt er op dat in de MBSE sketch de Buzzer op A7 staat en bij het ArduinoBrewboard op 11...
De rest,sensor, lcd en buttons, staat bij beiden het zelfde ingesteld.
Ik ga het vanavond weer eens proberen...


En dat is het board van Jelle toch?


mbroek

Omdat de PID instellingen heel anders zijn dan in andere software even wat opmerkingen. In de Open ArdBir software wordt tussen wat er op het display staat en wat er intern in de PID gebeurt een rekenslag gemaakt. Omdat daar een probleem in zat heb ik dat er uit gehaald en zie je heel andere waardes. Als je daarmee zonder aanpassingen gaat brouwen zul je een behoorlijke overshoot krijgen.

Zelf gebruik ik:
 Kp 30
 Ki  0.001
 Kd 50
Logfactor 18

Dat is met een 2000 Watt maischpan met ongeveer 15 liter maischwater.
Over je Ki, oud 1 is nu 0.004, oud 25 is nu 0.100. Ik heb het veranderd om kleinere stappen van 0.001 te kunnen maken.
 

Probeer het eerst uit met de handbediening en water. Probeer deze in stappen van 45, 60, 70 en 80 graden. Heb je teveel overshoot, de Ki lager zetten. Haal je de 80 niet, dan of de logfactor verhogen (maximaal 20) of de Kp verhogen is stapjes van 5.

"Edit aangepast om Ki beter uit te leggen".

McMelloW

Mogelijk bde test gedaan met wat te weinig water. 10L In de Hand Bediening, timers heb ik niet kunnen testen. Deze zijn uit de Hand Bediening gesloopt.

Kp = 30
Ki = 0.001
Kd = 50
Log Factor = 18

Het verwarmen ging eigenlijk te snel 2.5 °C / minuut. De overshoot tov het SetPoint was 0.5 °C.
Het duurde ongeveer 4 min voor dit is terug gezakt naar het SetPoint.
Daarna was er een hysteresis tussen het SetPoint en +0.12 °C

De Log Faktor op 16 gezet. De regeling ging eerder al Power terug nemen. De overshoot tov het SetPoint was 0.25-0.30 °C.
Nu duurde het ongeveer 5-6 min voor dit is terug gezakt was tot het SetPoint.
Daarna was er een hysteresis tussen het SetPoint en +0.12 °C

Een hystersis van 0.12 °C is natuurlijk fantatstisch. Nu nog proberen de overshoot te verkleinen. Ik ben benieuwd hoe dit gaat 17L water en een stort van 5 kg.

Vraagjes:
Kan je in tijdens handbediening zelf de waarde van de PWM instellen?
Kan je in de Automatische stand de pomp uitzetten?
Kan je in de Automatische stand door gaan naar een volgende stap, ook als de huiddige nog niet klaar is.

Pimmels

Citaat van: mbroek op 02-05-2016  14:04 uEn dat is het board van Jelle toch?
Ja klopt, ik heb de Buzzer aangepast naar poortje 11 en nu piept het boardje prima, maar nog geen beeld op de LCD?


EDIT/: Gevonden! In de BrewDuino sketch stond ' LiquidCrystal lcd(A5, A4, 2, 3, 4, 5); en in de MBSE sketch stond 'LiquidCrystal lcd(A4, A5, 2, 3, 4, 5);'

Ik heb de MBSE sketch aangepast en het werkt!

mbroek

Citaat van: McMelloW op 02-05-2016  16:41 uMogelijk bde test gedaan met wat te weinig water. 10L In de Hand Bediening, timers heb ik niet kunnen testen. Deze zijn uit de Hand Bediening gesloopt.

Kp = 30
Ki = 0.001
Kd = 50
Log Factor = 18

Het verwarmen ging eigenlijk te snel 2.5 °C / minuut. De overshoot tov het SetPoint was 0.5 °C.
Het duurde ongeveer 4 min voor dit is terug gezakt naar het SetPoint.
Daarna was er een hysteresis tussen het SetPoint en +0.12 °C

De Log Faktor op 16 gezet. De regeling ging eerder al Power terug nemen. De overshoot tov het SetPoint was 0.25-0.30 °C.
Nu duurde het ongeveer 5-6 min voor dit is terug gezakt was tot het SetPoint.
Daarna was er een hysteresis tussen het SetPoint en +0.12 °C

Een hystersis van 0.12 °C is natuurlijk fantatstisch. Nu nog proberen de overshoot te verkleinen. Ik ben benieuwd hoe dit gaat 17L water en een stort van 5 kg.

Vraagjes:
Kan je in tijdens handbediening zelf de waarde van de PWM instellen?
Kan je in de Automatische stand de pomp uitzetten?
Kan je in de Automatische stand door gaan naar een volgende stap, ook als de huiddige nog niet klaar is.

Over het verwarmen, tijdens het maischen gaat dit niet sneller dan 1 ºC per minuut, de software stapt de doeltemperatuur en 1 ºC per minuut omhoog tot de temperatuur volgende stap. Ik had dat nodig voor mijn 3 liter nano setje wat 4  ºC per minuut verwarmt.

De overshoot beïnvloed je met de Ki waarde. Kleiner is minder overshoot. Kd werkt hier ook aan mee, ik meen hoger is eerder gast terug nemen.

Over de vragen:
1. Nee, met de op/neer verander je de doel temperatuur. De PID regelt het vermogen.
2. Op de meeste plaatsen nog niet. Ik moet dat er nog terug inzetten waar dat nuttig is.
3. Nee, dat kon wel met open ardbir, maar ik heb dat er nog niet inzitten. De vraag is (jij stelt hem eigenlijk al) of dat wenselijk is.
Ik zit er aan te denken dat als je op pauze drukt er dan een aantal dingen gedaan kunnen worden zoals de resterende tijd veranderen (0 betekend dan vanzelf volgende stap), temperatuur wijzigen. Nu kun je alleen helemaal afbreken.

Er is nog best wel wat te verbeteren. En dat een aantal dingen nu anders gaan heeft ook te maken dat ik niet meer dat tegelijk indrukken van de op/neer toetsen wilde gebruiken. Dat doe je nooit perfect goed en dan gebeurde er weer iets wat je niet wilde.

Suggesties hoe het dan zou kunnen zijn dan ook welkom.




mbroek

Citaat van: Pimmels op 02-05-2016  16:55 uJa klopt, ik heb de Buzzer aangepast naar poortje 11 en nu piept het boardje prima, maar nog geen beeld op de LCD?


EDIT/: Gevonden! In de BrewDuino sketch stond ' LiquidCrystal lcd(A5, A4, 2, 3, 4, 5); en in de MBSE sketch stond 'LiquidCrystal lcd(A4, A5, 2, 3, 4, 5);'

Ik heb de MBSE sketch aangepast en het werkt!

Ik denk dat er verschillende uitvoeringen zijn, ook omdat bij jouw ook de buzzer op een andere poort zit.

@biertje1985 kan dat kloppen??

mbroek

Citaat van: Pimmels op 02-05-2016  16:55 uJa klopt, ik heb de Buzzer aangepast naar poortje 11 en nu piept het boardje prima, maar nog geen beeld op de LCD?


EDIT/: Gevonden! In de BrewDuino sketch stond ' LiquidCrystal lcd(A5, A4, 2, 3, 4, 5); en in de MBSE sketch stond 'LiquidCrystal lcd(A4, A5, 2, 3, 4, 5);'

Ik heb de MBSE sketch aangepast en het werkt!

Ik heb bordje type 6 in de nieuwste versie erbij gezet.

mbroek

Versie 0.0.8 is net op github gezet.

De rare logica van de maischstappen setup is er nu uit, met dank aan McMellow. Dit was nog een erfenis van Open ArdBir.

Je hebt nu na de "Maisch in" stap zes genummerde stappen. De eerste is verplicht. Het was de laatste stap die verplicht was, dit houd in dat je bestaande recepten MOET aanpassen voor je die gaat gebruiken.

Dus bij 1 beginnen (na Maisch in). De 78 graden "Maisch uit" stap hoort hier niet bij, die komt nog gewoon er achter aan. Wil je niet uitmaischen, geef die dan de temperatuur van je stap daarvoor en zet de tijd op 1 minuut. Dus zelfs met een eenstapsmaisch moet je 3 regels gebruiken.

Verder heb ik nog een PCB type toegevoegd, hoe het precies zit weet ik niet maar er lijken 2 verschillende soorten gemaakt te zijn. Jelle kan daar wel wat meer over vertellen denk ik. Dus of type 4 of 6 gebruiken.

Morgen brouwen met deze versie.

Pimmels

Citaat van: mbroek op 03-05-2016  22:04 uVersie 0.0.8 is net op github gezet.

De rare logica van de maischstappen setup is er nu uit, met dank aan McMellow. Dit was nog een erfenis van Open ArdBir.

Je hebt nu na de "Maisch in" stap zes genummerde stappen. De eerste is verplicht. Het was de laatste stap die verplicht was, dit houd in dat je bestaande recepten MOET aanpassen voor je die gaat gebruiken.

Dus bij 1 beginnen (na Maisch in). De 78 graden "Maisch uit" stap hoort hier niet bij, die komt nog gewoon er achter aan. Wil je niet uitmaischen, geef die dan de temperatuur van je stap daarvoor en zet de tijd op 1 minuut. Dus zelfs met een eenstapsmaisch moet je 3 regels gebruiken.

Verder heb ik nog een PCB type toegevoegd, hoe het precies zit weet ik niet maar er lijken 2 verschillende soorten gemaakt te zijn. Jelle kan daar wel wat meer over vertellen denk ik. Dus of type 4 of 6 gebruiken.

Morgen brouwen met deze versie.

Ik heb het eerste bordje van Jelle en de nieuwe sketch ingesteld op type 6 werkt daar perfect op! :groots:

mbroek

Citaat van: Pimmels op 03-05-2016  22:43 uIk heb het eerste bordje van Jelle en de nieuwe sketch ingesteld op type 6 werkt daar perfect op! :groots:

Mooi. Is type 4 een volgende serie waarschijnlijk. Succes.

terragady

Hi guys, sorry for English but my Dutch is not really good :)

I would like to ask if the mbroek software is in a daily use stage or just developmental?
As I assume and understand it is basically the same with further modification?  Is there any manual? Is it easy to set up a PID parameters? I just build my controller and considering few software to put in, most-likely it will be this version from forum (I was also considering one from here http://vito.tw/ and of course original ArdBir).

Another question maybe you guys know. Can I connect my temp sensor to Arduino and as well to ESP8266 to send it by WiFi somewhere to plot the temp graph? Like shared sensor, in that method I will not need to change any software at arduino side just write small software for WiFi module.


EDIT:
or actually something else what I can think of is that you can screw Arduino and just use ESP8266 instead? It has even more memory and you can use Arduino IDE.

mbroek

Citaat van: terragady op 11-05-2016  18:16 uHi guys, sorry for English but my Dutch is not really good :)

I would like to ask if the mbroek software is in a daily use stage or just developmental?
As I assume and understand it is basically the same with further modification?  Is there any manual? Is it easy to set up a PID parameters? I just build my controller and considering few software to put in, most-likely it will be this version from forum (I was also considering one from here http://vito.tw/ and of course original ArdBir).

Another question maybe you guys know. Can I connect my temp sensor to Arduino and as well to ESP8266 to send it by WiFi somewhere to plot the temp graph? Like shared sensor, in that method I will not need to change any software at arduino side just write small software for WiFi module.


EDIT:
or actually something else what I can think of is that you can screw Arduino and just use ESP8266 instead? It has even more memory and you can use Arduino IDE.

The software is in development stage, but I use it to brew and test it. There is no manual yet, but the OpenArdBir manual for version 2.8.3 is a good starting point. But check the README for some differences.

The Vito software looks good too, but is also in an early development phase.

About the temp sensor, it will probably not work because it's a two way protocol, so both boards will most likely fight to get control over the sensor. I would buy a second one and tie them together.

I have been looking at the ESP8266 (and ordered one), it is a bit short with I/O pins, but there are ideas to use a NANO and SP board together. Vito has been working on that too, but I have no idea when everything would be production ready.

terragady

Hi mbroek!

Sorry I didn't get notification for your reply so I missed that. Thanks for answer! I just built my ArdBir using my own PCB (you can check it out here https://github.com/terragady/ArdBir ) and it is working nice with your software version ;) Hopefully it will be still maintain by you not as original ArdBir which was abandoned due to some fights in the group. There is also nice project worth checking CraftBeerPI (http://craftbeerpi.com/) based on RaspberryPI and you can control it using your smartphone or PC.

Cheers! And thank you for your work!

Marcin

mbroek

Citaat van: terragady op 23-05-2016  18:37 uSorry I didn't get notification for your reply so I missed that. Thanks for answer! I just built my ArdBir using my own PCB (you can check it out here https://github.com/terragady/ArdBir ) and it is working nice with your software version ;) Hopefully it will be still maintain by you not as original ArdBir which was abandoned due to some fights in the group. There is also nice project worth checking CraftBeerPI (http://craftbeerpi.com/) based on RaspberryPI and you can control it using your smartphone or PC.

Hi Marcin,

That board looks good. For this moment I don't intend to stop the software, but it is opensource licensed so anyone can fork it and continue to develop it. There is another nice one called brewmaniac: http://vito.tw/.

Chiel.

Biertje1985

Citaat van: mbroek op 01-05-2016  17:55 uDat zou ik niet weten, ik heb niet zo'n bordje en kan het niet testen. Ik heb de pin nummers overgenomen uit zijn software. Even afwachten wat biertje1985 nog ontdekt, die zou het ook weer proberen.

En misschien weet hij waarom het bij jouw niet werkt.

Hoor je wel een korte beep na het downloaden van de software?

Chiel
Er zijn 2 versies van het bord, de de een is A4 en A5 omgekeerd van de ander, en dan heb je inderdaad geen beeld op het LCD schermpje.

mbroek

Citaat van: Biertje1985 op 25-05-2016  07:03 uEr zijn 2 versie's van het bord, de de een is A4 en A5 omgekeerd van de ander, en dan heb je inderdaad geen beeld op het LCD schermpje.

Is daarbij ook niet de buzzer veranderd van A7 naar 11?
Ik heb nu board types 4 en 6, beiden schijnen nu te werken voor jouw beide versies. Is daar nog een mooie aanduiding voor die ik in de source erbij kan zetten?


mbroek

Versie 0.1.0
  • Voorbereiding voor WIFI interface met een ESP8266-12E board.
  • Gedurende 20 seconden wordt getest of de bereikte temperatuur stabiel blijft.
  • Enige kleine aanpassingen gedaan die geen invloed op de werking hebben.

terragady

Hi, which ESP8266 board are you using? Just plain one or some dev like wemos d1 mini or something?
What functions are you trying to implement there, all the setup etc will be done through WiFi? Or is it just for sending data to computer not two way communication?

Do you think arduino will not slow down because of this addon? I was testing and its pretty slow with PID calculations.

mbroek

Citaat van: terragady op 05-06-2016  18:35 uHi, which ESP8266 board are you using? Just plain one or some dev like wemos d1 mini or something?
What functions are you trying to implement there, all the setup etc will be done through WiFi? Or is it just for sending data to computer not two way communication?

Do you think arduino will not slow down because of this addon? I was testing and its pretty slow with PID calculations.

I have a ESP8266 12E DEVKIT v2.0, http://www.banggood.com/Geekcreit-Doit-NodeMcu-Lua-ESP8266-ESP-12E-WIFI-Development-Board-p-985891.html

This board should fetch the actual state, temperatures etc. from the Arduino, do the recipes and programming. So basically two way. The Arduino will do almost everything it now does, I only plan to remove the recipe menus to make room for the interface with the ESP. It will need a lot of code changes before it will work, I want to keep the Arduino to fully control the brew, even if the ESP is on fire.
The ESP will not do anything with the brew process, so I think the impact will be minimal. And even if there is some, brewing is slow compared with the speed of controllers.

On the other hand, this ESP only needs an extra interface for a LCD and it can do everything an Arduino do, there are just fewer IO pins available.


Zoeken met Google op deze site.
Brouwspullen zijn ook te koop via Bol.com.
Als je iets bestelt bij Bol.com (ook andere zaken dan brouwspullen) via deze link steun je het forum.


Het boek van de beheerder van deze site.