Browse Source

added whole lots more photos to giessomat

Thomas Buck 3 years ago
parent
commit
f7c888a4b8

+ 67
- 13
input/projects/giessomat.md View File

4
 position: 6
4
 position: 6
5
 github: https://git.xythobuz.de/thomas/giess-o-mat
5
 github: https://git.xythobuz.de/thomas/giess-o-mat
6
 date: 2021-03-29
6
 date: 2021-03-29
7
-update: 2021-04-25
7
+update: 2021-04-27
8
 ---
8
 ---
9
 
9
 
10
 Since moving into my own flat in 2019 I started growing quite a bunch of plants.
10
 Since moving into my own flat in 2019 I started growing quite a bunch of plants.
14
 
14
 
15
 So it seemed natural to build a machine that can help me with watering the plants and mixing in some fertilizer solution into the water once in a while.
15
 So it seemed natural to build a machine that can help me with watering the plants and mixing in some fertilizer solution into the water once in a while.
16
 
16
 
17
+<div class="lightgallery">
18
+    <a href="img/giessomat_1.jpg">
19
+        <img src="img/giessomat_1_small.jpg" alt="Front of the UI unit">
20
+    </a>
21
+    <a href="img/giessomat_3.jpg">
22
+        <img src="img/giessomat_3_small.jpg" alt="Side view of the machine">
23
+    </a>
24
+</div>
25
+
17
 ## Overview
26
 ## Overview
18
 
27
 
19
 The machine consists of a 5l watertank.
28
 The machine consists of a 5l watertank.
28
 
37
 
29
 (I'm a software developer by trade, so I'm relatively confident the software works, but I don't trust my plumbing skills too much...) 😊
38
 (I'm a software developer by trade, so I'm relatively confident the software works, but I don't trust my plumbing skills too much...) 😊
30
 
39
 
40
+<div class="lightgallery">
41
+    <a href="img/giessomat_web.png">
42
+        <img src="img/giessomat_web_small.png" alt="Screenshot of the web interface">
43
+    </a>
44
+</div>
45
+
31
 ## Implementation
46
 ## Implementation
32
 
47
 
33
 The machine is using two microcontrollers, an [Arduino Nano clone](https://amzn.to/3sQ4Otl) and an [ESP32](https://amzn.to/3xmDh6k).
48
 The machine is using two microcontrollers, an [Arduino Nano clone](https://amzn.to/3sQ4Otl) and an [ESP32](https://amzn.to/3xmDh6k).
39
 All this is mounted in a simple 3D-printed frontpanel.
54
 All this is mounted in a simple 3D-printed frontpanel.
40
 
55
 
41
 <div class="lightgallery">
56
 <div class="lightgallery">
42
-    <a href="img/giessomat_1.jpg">
43
-        <img src="img/giessomat_1_small.jpg" alt="Front of the UI unit">
44
-    </a>
45
     <a href="img/giessomat_2.jpg">
57
     <a href="img/giessomat_2.jpg">
46
         <img src="img/giessomat_2_small.jpg" alt="Back of the UI unit">
58
         <img src="img/giessomat_2_small.jpg" alt="Back of the UI unit">
47
     </a>
59
     </a>
60
+    <a href="img/giessomat_6.jpg">
61
+        <img src="img/giessomat_6_small.jpg" alt="Front of UI PCB">
62
+    </a>
63
+    <a href="img/giessomat_7.jpg">
64
+        <img src="img/giessomat_7_small.jpg" alt="Back of UI PCB">
65
+    </a>
48
 </div>
66
 </div>
49
 
67
 
50
 The actual control is done on an ESP32 which is connected to two [4-channel relais boards](https://amzn.to/2QW0Sty).
68
 The actual control is done on an ESP32 which is connected to two [4-channel relais boards](https://amzn.to/2QW0Sty).
54
 Two float switches are used to tell the fill-height of the water tank.
72
 Two float switches are used to tell the fill-height of the water tank.
55
 The ESP32 also provides a simple web interface to allow the same controls as from the user interface.
73
 The ESP32 also provides a simple web interface to allow the same controls as from the user interface.
56
 
74
 
57
-<div class="lightgallery">
58
-    <a href="img/giessomat_web.png">
59
-        <img src="img/giessomat_web_small.png" alt="Screenshot of the web interface">
60
-    </a>
61
-</div>
62
-
63
 Both UI and controller are connected to each other using I2C.
75
 Both UI and controller are connected to each other using I2C.
64
 All relevant signals are transmitted with a simple DB-9 cable.
76
 All relevant signals are transmitted with a simple DB-9 cable.
65
 
77
 
67
 The water tank is realized using a generic 5l liquid tank, with two holes drilled for the fill switches. The holders for the fertilizer bottles, as well as the bottlecaps, are specifically designed to fit my 1l fertilizer bottles.
79
 The water tank is realized using a generic 5l liquid tank, with two holes drilled for the fill switches. The holders for the fertilizer bottles, as well as the bottlecaps, are specifically designed to fit my 1l fertilizer bottles.
68
 
80
 
69
 <div class="lightgallery">
81
 <div class="lightgallery">
70
-    <a href="img/giessomat_3.jpg">
71
-        <img src="img/giessomat_3_small.jpg" alt="Side view of the machine">
72
-    </a>
73
     <a href="img/giessomat_4.jpg">
82
     <a href="img/giessomat_4.jpg">
74
         <img src="img/giessomat_4_small.jpg" alt="Top view of the machine">
83
         <img src="img/giessomat_4_small.jpg" alt="Top view of the machine">
75
     </a>
84
     </a>
85
+    <a href="img/giessomat_14.jpg">
86
+        <img src="img/giessomat_14_small.jpg" alt="Front of controller PCB">
87
+    </a>
88
+    <a href="img/giessomat_15.jpg">
89
+        <img src="img/giessomat_15_small.jpg" alt="Back of controller PCB">
90
+    </a>
76
 </div>
91
 </div>
77
 
92
 
78
 Most of the parts I had lying around in the workshop.
93
 Most of the parts I had lying around in the workshop.
80
 Also the pumps, hoses and hose-adapters had to be bought.
95
 Also the pumps, hoses and hose-adapters had to be bought.
81
 
96
 
82
 <div class="lightgallery">
97
 <div class="lightgallery">
98
+    <a href="img/giessomat_8.jpg">
99
+        <img src="img/giessomat_8_small.jpg" alt="Front of switch PCB">
100
+    </a>
101
+    <a href="img/giessomat_9.jpg">
102
+        <img src="img/giessomat_9_small.jpg" alt="Back of switch PCB">
103
+    </a>
104
+    <a href="img/giessomat_16.jpg">
105
+        <img src="img/giessomat_16_small.jpg" alt="Front of valve PCB">
106
+    </a>
107
+    <a href="img/giessomat_17.jpg">
108
+        <img src="img/giessomat_17_small.jpg" alt="Back of valve PCB">
109
+    </a>
83
     <a href="img/giessomat_5.jpg">
110
     <a href="img/giessomat_5.jpg">
84
         <img src="img/giessomat_5_small.jpg" alt="Float switch and valve used">
111
         <img src="img/giessomat_5_small.jpg" alt="Float switch and valve used">
85
     </a>
112
     </a>
113
+    <a href="img/giessomat_12.jpg">
114
+        <img src="img/giessomat_12_small.jpg" alt="Front of pump">
115
+    </a>
116
+    <a href="img/giessomat_13.jpg">
117
+        <img src="img/giessomat_13_small.jpg" alt="Back of pump">
118
+    </a>
86
 </div>
119
 </div>
87
 
120
 
88
 The software can easily be configured to run with more or less fertilizers and outlets, as much as the ESP32 GPIOs can provide.
121
 The software can easily be configured to run with more or less fertilizers and outlets, as much as the ESP32 GPIOs can provide.
93
 Doing some programming, it would also be possible to use some kind of port-extender or run also the UI on an ESP.
126
 Doing some programming, it would also be possible to use some kind of port-extender or run also the UI on an ESP.
94
 And of course also the now-obsolete SerialLCD could be replaced with something different without too much work.
127
 And of course also the now-obsolete SerialLCD could be replaced with something different without too much work.
95
 
128
 
129
+<div class="lightgallery">
130
+    <a href="img/giessomat_10.jpg">
131
+        <img src="img/giessomat_10_small.jpg" alt="Interconnect PCB and debug power switch, front side">
132
+    </a>
133
+    <a href="img/giessomat_11.jpg">
134
+        <img src="img/giessomat_11_small.jpg" alt="Interconnect PCB and debug power switch, back side">
135
+    </a>
136
+</div>
137
+
96
 ## Future Extensions
138
 ## Future Extensions
97
 
139
 
98
 I have now been running capacitive ground moisture level sensors in a couple of my plants for around a year, logging the data using my [ESP-Env project](https://git.xythobuz.de/thomas/esp-env) to an [InfluxDB](https://www.influxdata.com/) instance running on my NAS, with a [Grafana](https://grafana.com/) UI running on there as well.
140
 I have now been running capacitive ground moisture level sensors in a couple of my plants for around a year, logging the data using my [ESP-Env project](https://git.xythobuz.de/thomas/esp-env) to an [InfluxDB](https://www.influxdata.com/) instance running on my NAS, with a [Grafana](https://grafana.com/) UI running on there as well.
103
 Because of that, I have not yet added completely automated watering into the system.
145
 Because of that, I have not yet added completely automated watering into the system.
104
 It still has to be started manually via the user interface.
146
 It still has to be started manually via the user interface.
105
 
147
 
148
+<div class="lightgallery">
149
+    <a href="img/giessomat_grafana_1.png">
150
+        <img src="img/giessomat_grafana_1_small.png" alt="Data of new sensors">
151
+    </a>
152
+    <a href="img/giessomat_grafana_2.png">
153
+        <img src="img/giessomat_grafana_2_small.png" alt="Data after about half a year">
154
+    </a>
155
+</div>
156
+
157
+If you look closely you can also see some glitches in the data where my ESP had problems and did not store new values.
158
+Also consider that in the timeframes seen in the graph above, I always watered the plants manually as soon as the soil felt dry about 3cm deep.
159
+
106
 But recently I got a different sensor from a colleague of mine, which is from another project called [Giesomat](https://www.ramser-elektro.at/shop/bausaetze-und-platinen/giesomat-kapazitiver-bodenfeuchtesensor-erdfeuchtesensor-mit-beschichtung/).
160
 But recently I got a different sensor from a colleague of mine, which is from another project called [Giesomat](https://www.ramser-elektro.at/shop/bausaetze-und-platinen/giesomat-kapazitiver-bodenfeuchtesensor-erdfeuchtesensor-mit-beschichtung/).
107
 The similar name was totally incidental, I only heard of it after naming my own project like this.
161
 The similar name was totally incidental, I only heard of it after naming my own project like this.
108
 I will test it and report the results here sometime in the future.
162
 I will test it and report the results here sometime in the future.

+ 3
- 4
page.html View File

12
     <link type="text/css" rel="stylesheet" href="css/style.css" />
12
     <link type="text/css" rel="stylesheet" href="css/style.css" />
13
     <link type="text/css" rel="stylesheet" href="css/sh_bright.min.css" />
13
     <link type="text/css" rel="stylesheet" href="css/sh_bright.min.css" />
14
     <link type="text/css" rel="stylesheet" href="css/gh-fork-ribbon.css" />
14
     <link type="text/css" rel="stylesheet" href="css/gh-fork-ribbon.css" />
15
-    <link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Droid+Sans:400,700" />
16
     <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.2.18/css/lightgallery.min.css" />
15
     <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.2.18/css/lightgallery.min.css" />
17
     <script type="text/javascript" src="js/sh_main.js"></script>
16
     <script type="text/javascript" src="js/sh_main.js"></script>
18
     <!--%
17
     <!--%
177
             var initialFontSize = fontSize;
176
             var initialFontSize = fontSize;
178
             $('.inc').on('click', function() {
177
             $('.inc').on('click', function() {
179
                 fontSize += 1;
178
                 fontSize += 1;
180
-                $('body').css('font-size', fontSize + 'px');
179
+                $('#content').css('font-size', fontSize + 'px');
181
             })
180
             })
182
             $('.dec').on('click', function() {
181
             $('.dec').on('click', function() {
183
                 if (fontSize > 1) {
182
                 if (fontSize > 1) {
184
                     fontSize -= 1;
183
                     fontSize -= 1;
185
-                    $('body').css('font-size', fontSize + 'px');
184
+                    $('#content').css('font-size', fontSize + 'px');
186
                 }
185
                 }
187
             })
186
             })
188
             $('.reset').on('click', function() {
187
             $('.reset').on('click', function() {
189
                 if (fontSize != initialFontSize) {
188
                 if (fontSize != initialFontSize) {
190
                     fontSize = initialFontSize;
189
                     fontSize = initialFontSize;
191
-                    $('body').css('font-size', initialFontSize + 'px');
190
+                    $('#content').css('font-size', initialFontSize + 'px');
192
                 }
191
                 }
193
             })
192
             })
194
         })
193
         })

BIN
static/img/giessomat_10.jpg View File


BIN
static/img/giessomat_10_small.jpg View File


BIN
static/img/giessomat_11.jpg View File


BIN
static/img/giessomat_11_small.jpg View File


BIN
static/img/giessomat_12.jpg View File


BIN
static/img/giessomat_12_small.jpg View File


BIN
static/img/giessomat_13.jpg View File


BIN
static/img/giessomat_13_small.jpg View File


BIN
static/img/giessomat_14.jpg View File


BIN
static/img/giessomat_14_small.jpg View File


BIN
static/img/giessomat_15.jpg View File


BIN
static/img/giessomat_15_small.jpg View File


BIN
static/img/giessomat_16.jpg View File


BIN
static/img/giessomat_16_small.jpg View File


BIN
static/img/giessomat_17.jpg View File


BIN
static/img/giessomat_17_small.jpg View File


BIN
static/img/giessomat_6.jpg View File


BIN
static/img/giessomat_6_small.jpg View File


BIN
static/img/giessomat_7.jpg View File


BIN
static/img/giessomat_7_small.jpg View File


BIN
static/img/giessomat_8.jpg View File


BIN
static/img/giessomat_8_small.jpg View File


BIN
static/img/giessomat_9.jpg View File


BIN
static/img/giessomat_9_small.jpg View File


BIN
static/img/giessomat_grafana_1.png View File


BIN
static/img/giessomat_grafana_1_small.png View File


BIN
static/img/giessomat_grafana_2.png View File


BIN
static/img/giessomat_grafana_2_small.png View File


Loading…
Cancel
Save