Sun, 19 May 2019 21:05:07 +0200
Version 0.3.2, if WiFi connection is lost or AP is not available at startup, scan form another known AP and connect to that AP.
5 | 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 | ||
31 | 62 | #Links |
63 | ||
64 | Dit project gebruikt code van de volgende projecten. De meeste code bevat | |
65 | enkele aanpassingen voor dit project en daarom zijn die projecten volledig | |
66 | geimporteerd in brewboard. | |
67 | ||
68 | De PID library: http://playground.arduino.cc/Code/PIDLibrary by Brett | |
69 | Beauregard. | |
70 | ||
71 | De 1-wire bus: https://www.github.com/DavidAntliff/esp32-owb | |
72 | De DS18B20 sensoren: https://www.github.com/DavidAntliff/esp32-ds18b20 | |
73 | ||
39
e5900c9b9a7b
Use PROJECT_VER for version number. Updated README and info screen.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
74 | De webserver en websockets server. Websockets worden gebruikt voor de web |
e5900c9b9a7b
Use PROJECT_VER for version number. Updated README and info screen.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
75 | client. Deze web client probeert een kopie te zijn van het touch scherm. |
31 | 76 | https://github.com/Molorius/esp32-websocket.git components/websocket |
77 | ||
78 | Het schema voor dit project staat op EasyDA. Zie | |
79 | https://easyeda.com/mbroek/ESP32_experiments-3ec1c1b17c3b41378ba4493ea69fa5c3. | |
80 | Belangrijk als je dit gaat bouwen: koop het juiste ESP32 devkit board. De | |
81 | meeste boards hebben niet genoeg aansluitingen naar buiten, je hebt echt de | |
39
e5900c9b9a7b
Use PROJECT_VER for version number. Updated README and info screen.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
82 | 36 pens versie van Geekcreit® nodig. |
31 | 83 | |
84 | ||
85 | ||
0 | 86 | |
87 | ||
88 | TODO: | |
89 | - Nosleep js code toevoegen. | |
39
e5900c9b9a7b
Use PROJECT_VER for version number. Updated README and info screen.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
90 | - Web client zonder VNC, of toch niet. In progress. |
47
2aab3b5af4b5
Fixed css path in chart.html. Show errors in console when writing logfiles.json. Upgraded esp-idf.
Michiel Broek <mbroek@mbse.eu>
parents:
39
diff
changeset
|
91 | - Bug: import 2 x hop met dezelfde naam met verschillende tijden krijgen 1 tijd na import. |
2aab3b5af4b5
Fixed css path in chart.html. Show errors in console when writing logfiles.json. Upgraded esp-idf.
Michiel Broek <mbroek@mbse.eu>
parents:
39
diff
changeset
|
92 | - Bug: er is geen xml cool to waarde, |
0 | 93 |