1 # BrewBoard on ESP32 using FreeRTOS. |
1 # BrewBoard op een ESP32 onder FreeRTOS. |
|
2 |
|
3 Dit is een vervolg project van het BrewBoard op de Arduino Nano met de |
|
4 MBSE-ArdRims software. Tot begin 2017 zijn deze kant en klare boards via |
|
5 het forum hobbybrouwen.nl verspreid. |
|
6 |
|
7 Het plan was om een upgrade kit te maken op basis van de WeMos chip die bijna |
|
8 gelijk is aan de Arduino Nano maar ook WiFi heeft. In de praktijk bleek dat |
|
9 niet zonder prpblemen te werken, WiFi en brouwen tegelijk is teveel voor een |
|
10 WeMos chip (ESP8266). Toen ongeveer op hetzelfde moment de markt overspoeld |
|
11 werd door BrewMonks, EasyBrew en gelijke systemen was er ook geen behoefte |
|
12 meer om hiermee verder te gaan. |
|
13 |
|
14 Voor mezelf heb ik een nieuw board gemaakt (op experimenteerprint) wat even |
|
15 groot is als het oorspronkelijk board wat ik gebruik, inclusief dezelfde |
|
16 plaats voor alle schroef aansluitingen. De bedoeling is dit board zo uit te |
|
17 kunnen wisselen met het Arduino board. Op dit board wordt de Doit ESP32 Devkit |
|
18 V1 gebruikt. Dit is een ESP32 development board met meer pinnen dan de meeste |
|
19 boards. De meeste boards hebben 30 pennen, deze heeft er 36. En dat is precies |
|
20 genoeg, de 30 pins boards hebben onvoldoende aansluitingen. |
|
21 |
|
22 Als display wordt een 320x240 TFT touchscreen gebruikt wat aangesloten wordt |
|
23 via een SPI bus. Op een tweede SPI bus zit een SD/MMC kaartslot wat aan de |
|
24 voorzijde bereikbaar is. Dit slot wordt gebruikt om recepten in te voeren en |
|
25 om log bestanden op te slaan. Alle overige aansluitingen op het ESP32 board |
|
26 worden gebruikt voor de SSR's, relais en buzzer. |
|
27 |
|
28 In vergelijking met de Arduino Nano heeft de ESP32 de volgende hardware: |
|
29 |
|
30 * 2 processors op 240 MHz, |
|
31 * WiFi |
|
32 * BlueTooth, maar wordt niet gebruikt. |
|
33 * Timers en een Realtime Klok. |
|
34 * 2 SPI bussen (voor de TFT en SD/MMC). |
|
35 * OTA, Over The Air updates. |
|
36 * Nog veel meer bussen die we niet gebruiken. |
|
37 |
|
38 De software is FreeRTOS, dit is een mini embedded OS wat eenvoudig meerdere |
|
39 taken tegelijk kan uitvoeren, dit maakt het programmeren van de brouw software |
|
40 een stuk eenvoudiger als onder de Arduino programmeer opmgeving. |
|
41 |
|
42 Een voorbeeld: de taak task_DS18B20 doet niets anders dan de twee bussen met |
|
43 temperatuur sensoren uit te lezen en de gemeten temperaturen op te slaan zodat |
|
44 andere taken die waardes kunnen gebruiken. Taken kunnen dus klein, simpel en |
|
45 hopelijk vrij van bugs zijn. |
|
46 |
|
47 Het hele systeem zit in elkaar door kleine taken die wel samen moeten werken |
|
48 om tot een totale applicatie te komen. |
|
49 |
|
50 Tot zover de achtergrond van dit project. Ik heb dit voor mezelf gemaakt omdat |
|
51 het MBSE-ArdRims board wat leuke dingen niet kon. Omdat er geen markt is komt |
|
52 er ook geen printje, maar het schema is wel beschikbaar. De software is ook |
|
53 beschikbaar en kun je gewoon gebruiken. Dus wil je hiermee aan de gang, doe je |
|
54 best, er is alleen geen enkele vorm van support. |
|
55 |
|
56 Nog even, ik wilde nog meer dingen toevoegen aan de software (MQTT) maar ook |
|
57 een ESP32 heeft zijn beperkingen. Die liggen wel stukken verder dan de ESP8266 |
|
58 of Arduino Nano, maar ze zijn er. Het belangrijkste is toch het afhandelen van |
|
59 het brouwproces. |
|
60 |
|
61 |
2 |
62 |
3 |
63 |
4 TODO: |
64 TODO: |
5 |
|
6 - Recepten uploaden via de webserver. |
|
7 - Praktijktest. |
65 - Praktijktest. |
8 - Nosleep js code toevoegen. |
66 - Nosleep js code toevoegen. |
9 - On WiFi disconnect cleanup VNC websocket. |
67 - On WiFi disconnect cleanup VNC websocket. |
10 |
68 |