README.md

Wed, 01 May 2019 21:27:28 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 01 May 2019 21:27:28 +0200
changeset 34
5c92103c5e72
parent 31
11983772e6d2
child 39
e5900c9b9a7b
permissions
-rw-r--r--

Version 0.2.10. Fixed spelling error in websocket component. Updated esp-idf to v4.0-dev-459-gba1ff1692 and adjusted several sources for changed headers. Finalized keeping the AP running at all times. Increased websocket server stack depth from 6000 to 7000.

5
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
1 # BrewBoard op een ESP32 onder FreeRTOS.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
2
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
3 Dit is een vervolg project van het BrewBoard op de Arduino Nano met de
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
4 MBSE-ArdRims software. Tot begin 2017 zijn deze kant en klare boards via
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
5 het forum hobbybrouwen.nl verspreid.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
6
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
7 Het plan was om een upgrade kit te maken op basis van de WeMos chip die bijna
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
8 gelijk is aan de Arduino Nano maar ook WiFi heeft. In de praktijk bleek dat
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
9 niet zonder prpblemen te werken, WiFi en brouwen tegelijk is teveel voor een
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
10 WeMos chip (ESP8266). Toen ongeveer op hetzelfde moment de markt overspoeld
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
11 werd door BrewMonks, EasyBrew en gelijke systemen was er ook geen behoefte
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
12 meer om hiermee verder te gaan.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
13
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
14 Voor mezelf heb ik een nieuw board gemaakt (op experimenteerprint) wat even
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
15 groot is als het oorspronkelijk board wat ik gebruik, inclusief dezelfde
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
16 plaats voor alle schroef aansluitingen. De bedoeling is dit board zo uit te
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
17 kunnen wisselen met het Arduino board. Op dit board wordt de Doit ESP32 Devkit
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
18 V1 gebruikt. Dit is een ESP32 development board met meer pinnen dan de meeste
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
19 boards. De meeste boards hebben 30 pennen, deze heeft er 36. En dat is precies
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
20 genoeg, de 30 pins boards hebben onvoldoende aansluitingen.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
21
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
22 Als display wordt een 320x240 TFT touchscreen gebruikt wat aangesloten wordt
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
23 via een SPI bus. Op een tweede SPI bus zit een SD/MMC kaartslot wat aan de
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
24 voorzijde bereikbaar is. Dit slot wordt gebruikt om recepten in te voeren en
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
25 om log bestanden op te slaan. Alle overige aansluitingen op het ESP32 board
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
26 worden gebruikt voor de SSR's, relais en buzzer.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
27
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
28 In vergelijking met de Arduino Nano heeft de ESP32 de volgende hardware:
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
29
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
30 * 2 processors op 240 MHz,
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
31 * WiFi
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
32 * BlueTooth, maar wordt niet gebruikt.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
33 * Timers en een Realtime Klok.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
34 * 2 SPI bussen (voor de TFT en SD/MMC).
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
35 * OTA, Over The Air updates.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
36 * Nog veel meer bussen die we niet gebruiken.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
37
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
38 De software is FreeRTOS, dit is een mini embedded OS wat eenvoudig meerdere
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
39 taken tegelijk kan uitvoeren, dit maakt het programmeren van de brouw software
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
40 een stuk eenvoudiger als onder de Arduino programmeer opmgeving.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
41
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
42 Een voorbeeld: de taak task_DS18B20 doet niets anders dan de twee bussen met
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
43 temperatuur sensoren uit te lezen en de gemeten temperaturen op te slaan zodat
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
44 andere taken die waardes kunnen gebruiken. Taken kunnen dus klein, simpel en
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
45 hopelijk vrij van bugs zijn.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
46
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
47 Het hele systeem zit in elkaar door kleine taken die wel samen moeten werken
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
48 om tot een totale applicatie te komen.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
49
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
50 Tot zover de achtergrond van dit project. Ik heb dit voor mezelf gemaakt omdat
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
51 het MBSE-ArdRims board wat leuke dingen niet kon. Omdat er geen markt is komt
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
52 er ook geen printje, maar het schema is wel beschikbaar. De software is ook
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
53 beschikbaar en kun je gewoon gebruiken. Dus wil je hiermee aan de gang, doe je
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
54 best, er is alleen geen enkele vorm van support.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
55
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
56 Nog even, ik wilde nog meer dingen toevoegen aan de software (MQTT) maar ook
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
57 een ESP32 heeft zijn beperkingen. Die liggen wel stukken verder dan de ESP8266
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
58 of Arduino Nano, maar ze zijn er. Het belangrijkste is toch het afhandelen van
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
59 het brouwproces.
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
60
87b86d16b1d6 De README flink bijgewerkt.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
61
31
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
62 #Links
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
63
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
64 Dit project gebruikt code van de volgende projecten. De meeste code bevat
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
65 enkele aanpassingen voor dit project en daarom zijn die projecten volledig
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
66 geimporteerd in brewboard.
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
67
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
68 Voor de VNC client: https://github.com/novnc/noVNC.git. Losse VNC clients
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
69 kunnen verbinden met poort 5900. Niet alle clients doen het goed omdat ze een
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
70 16 bits full color VNC server verwachten en niet goed downgraden naar 8 bits
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
71 kleuren. TigerVNC doet het goed. Voor deze applicatie is 16 bits kleur geen
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
72 optie omdat de schermbuffer dan niet meer in het geheugen past.
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
73
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
74 De PID library: http://playground.arduino.cc/Code/PIDLibrary by Brett
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
75 Beauregard.
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
76
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
77 De 1-wire bus: https://www.github.com/DavidAntliff/esp32-owb
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
78 De DS18B20 sensoren: https://www.github.com/DavidAntliff/esp32-ds18b20
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
79
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
80 De webserver en websockets server. Websockets worden gebruikt voor de VNC
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
81 web client. Hiervoor heb je geen losse VNC client nodig zoals bijvoorbeeld
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
82 de TigerVNC viewer maar wordt de VNC code in je browser gezet met javascript.
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
83 https://github.com/Molorius/esp32-websocket.git components/websocket
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
84 De javascript VNC client is aangepast voor deze applicatie.
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
85
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
86 Het schema voor dit project staat op EasyDA. Zie
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
87 https://easyeda.com/mbroek/ESP32_experiments-3ec1c1b17c3b41378ba4493ea69fa5c3.
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
88 Belangrijk als je dit gaat bouwen: koop het juiste ESP32 devkit board. De
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
89 meeste boards hebben niet genoeg aansluitingen naar buiten, je hebt echt de
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
90 36 pens versie van Geekcreit®nodig.
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
91
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
92
11983772e6d2 Updated the README
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
93
0
b74b0e4902c3 Initial checkin brewboard
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94
b74b0e4902c3 Initial checkin brewboard
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95
b74b0e4902c3 Initial checkin brewboard
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96 TODO:
b74b0e4902c3 Initial checkin brewboard
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 - Nosleep js code toevoegen.
28
bc7c05011d69 README update
Michiel Broek <mbroek@mbse.eu>
parents: 19
diff changeset
98 - Web client zonder VNC, of toch niet.
0
b74b0e4902c3 Initial checkin brewboard
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99
28
bc7c05011d69 README update
Michiel Broek <mbroek@mbse.eu>
parents: 19
diff changeset
100

mercurial