-
Notifications
You must be signed in to change notification settings - Fork 0
/
atom.xml
353 lines (294 loc) · 25.4 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><![CDATA[Making Stuff Work]]></title>
<link href="http://graham.bloice.co.uk/atom.xml" rel="self"/>
<link href="http://graham.bloice.co.uk/"/>
<updated>2013-12-28T00:30:13+00:00</updated>
<id>http://graham.bloice.co.uk/</id>
<author>
<name><![CDATA[Graham Bloice]]></name>
</author>
<generator uri="http://octopress.org/">Octopress</generator>
<entry>
<title type="html"><![CDATA[Improving HouseMon Installation]]></title>
<link href="http://graham.bloice.co.uk/blog/2013/05/07/improving-housemon-installation/"/>
<updated>2013-05-07T23:51:00+01:00</updated>
<id>http://graham.bloice.co.uk/blog/2013/05/07/improving-housemon-installation</id>
<content type="html"><![CDATA[<p>The sample instructions on setting up HouseMon are OK for initial testing, but require a bit more work for a permanent installation. This post describes how I managed it.</p>
<!--more-->
<p>The redis server should be moved to run as a service, I used the <a href="http://redis.io/topics/quickstart">quickstart</a> guide from the redis documentation as described in the section “Installing Redis more properly”, modified a little to suit my preferences. Instead of using the port number to describe the redis instance I used “housemon”, the only issue this caused was with the init script that uses the value both as a port number and the instance identifier, so I modified the start of that script a little:</p>
<figure class='code'><figcaption><span>redis_init_script</span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
</pre></td><td class='code'><pre><code class='diff'><span class='line'><span class="gd">--- ../redis-2.6.12/utils/redis_init_script 2013-03-29 16:42:39.000000000 +0000</span>
</span><span class='line'><span class="gi">+++ /etc/init.d/redis_housemon 2013-05-07 23:44:01.042072032 +0100</span>
</span><span class='line'><span class="gu">@@ -4,11 +4,12 @@</span>
</span><span class='line'> # as it does use of the /proc filesystem.
</span><span class='line'>
</span><span class='line'> REDISPORT=6379
</span><span class='line'><span class="gi">+REDISINST=housemon</span>
</span><span class='line'> EXEC=/usr/local/bin/redis-server
</span><span class='line'> CLIEXEC=/usr/local/bin/redis-cli
</span><span class='line'>
</span><span class='line'><span class="gd">-PIDFILE=/var/run/redis_${REDISPORT}.pid</span>
</span><span class='line'><span class="gd">-CONF="/etc/redis/${REDISPORT}.conf"</span>
</span><span class='line'><span class="gi">+PIDFILE=/var/run/redis_${REDISINST}.pid</span>
</span><span class='line'><span class="gi">+CONF="/etc/redis/${REDISINST}.conf"</span>
</span><span class='line'>
</span><span class='line'> case "$1" in
</span><span class='line'> start)
</span></code></pre></td></tr></table></div></figure>
<p>I also used <a href="https://npmjs.org/package/forever">forever</a> to run the housemon server, install it with <code>sudo npm install -g forever</code> and then start Housemon with <code>forever start app.js</code>.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Intro to HouseMon]]></title>
<link href="http://graham.bloice.co.uk/blog/2013/04/12/intro-to-housemon/"/>
<updated>2013-04-12T23:39:00+01:00</updated>
<id>http://graham.bloice.co.uk/blog/2013/04/12/intro-to-housemon</id>
<content type="html"><![CDATA[<p>Having got a room sensor up and running on the bench, I now want to log the values somewhere. I’m still searching for a Home Automation server that ticks all the boxes, so for now I’ll use HouseMon from Jeelabs. The birds-eye view of how it works is <a href="http://jeelabs.org/tag/housemon/">here</a>, and the source can be found on GitHub <a href="https://github.com/jcw/housemon">here</a>.</p>
<!--more-->
<p>On my Linux server I cloned the github repo, installed the prerequisites and ran it up to check it worked. To customise HouseMon for my room node I created a local nodeMap, briqs/nodeMap-local.coffee, that maps the RF12 group and node ID (5 and 22 respectively) to the airwickNode driver, and also names the current location of the sensor. I then created a new driver, drivers/airwickNode.coffee, that describes how to extract the data from the rf12 packet transmitted by the airwick node.</p>
<p>The local nodeMap is relatively self-explanatory:</p>
<figure class='code'><figcaption><span>nodeMap-local.coffee</span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='coffeescript'><span class='line'><span class="nv">exports.rf12nodes =</span>
</span><span class='line'> <span class="mi">5</span><span class="o">:</span>
</span><span class='line'> <span class="mi">22</span><span class="o">:</span> <span class="s">'airwickNode'</span>
</span><span class='line'>
</span><span class='line'><span class="nv">exports.locations =</span>
</span><span class='line'> <span class="s">'RF12:5:22'</span><span class="o">:</span> <span class="nv">title: </span><span class="s">'computer room'</span>
</span></code></pre></td></tr></table></div></figure>
<p>but the driver is more interesting:</p>
<figure class='code'><figcaption><span>airwickNode.coffee</span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
<span class='line-number'>39</span>
<span class='line-number'>40</span>
<span class='line-number'>41</span>
<span class='line-number'>42</span>
<span class='line-number'>43</span>
<span class='line-number'>44</span>
<span class='line-number'>45</span>
<span class='line-number'>46</span>
<span class='line-number'>47</span>
<span class='line-number'>48</span>
<span class='line-number'>49</span>
<span class='line-number'>50</span>
<span class='line-number'>51</span>
</pre></td><td class='code'><pre><code class='coffeescript'><span class='line'><span class="nv">module.exports =</span>
</span><span class='line'>
</span><span class='line'> <span class="nv">announcer: </span><span class="mi">11</span>
</span><span class='line'>
</span><span class='line'> <span class="nv">descriptions:</span>
</span><span class='line'> <span class="nv">ping:</span>
</span><span class='line'> <span class="nv">title: </span><span class="s">'Ping count'</span>
</span><span class='line'> <span class="nv">min: </span><span class="mi">0</span>
</span><span class='line'> <span class="nv">age:</span>
</span><span class='line'> <span class="nv">title: </span><span class="s">'Estimated age'</span>
</span><span class='line'> <span class="nv">unit: </span><span class="s">'days'</span>
</span><span class='line'> <span class="nv">min: </span><span class="mi">0</span>
</span><span class='line'> <span class="nv">vpre:</span>
</span><span class='line'> <span class="nv">title: </span><span class="s">'Vcc before send'</span>
</span><span class='line'> <span class="nv">unit: </span><span class="s">'V'</span>
</span><span class='line'> <span class="nv">min: </span><span class="mi">0</span>
</span><span class='line'> <span class="nv">factor: </span><span class="mi">2</span>
</span><span class='line'> <span class="nv">scale: </span><span class="mi">2</span>
</span><span class='line'> <span class="nv">vpost:</span>
</span><span class='line'> <span class="nv">title: </span><span class="s">'Vcc after send'</span>
</span><span class='line'> <span class="nv">unit: </span><span class="s">'V'</span>
</span><span class='line'> <span class="nv">min: </span><span class="mi">0</span>
</span><span class='line'> <span class="nv">factor: </span><span class="mi">2</span>
</span><span class='line'> <span class="nv">scale: </span><span class="mi">2</span>
</span><span class='line'> <span class="nv">temp:</span>
</span><span class='line'> <span class="nv">title: </span><span class="s">'Temperature'</span>
</span><span class='line'> <span class="nv">unit: </span><span class="s">'°C'</span>
</span><span class='line'> <span class="nv">scale: </span><span class="mi">1</span>
</span><span class='line'> <span class="nv">min: </span><span class="o">-</span><span class="mi">50</span>
</span><span class='line'> <span class="nv">max: </span><span class="mi">50</span>
</span><span class='line'> <span class="nv">humi:</span>
</span><span class='line'> <span class="nv">title: </span><span class="s">'Relative humidity'</span>
</span><span class='line'> <span class="nv">unit: </span><span class="s">'%'</span>
</span><span class='line'> <span class="nv">scale: </span><span class="mi">1</span>
</span><span class='line'> <span class="nv">min: </span><span class="mi">0</span>
</span><span class='line'> <span class="nv">max: </span><span class="mi">100</span>
</span><span class='line'>
</span><span class='line'> <span class="nv">feed: </span><span class="s">'rf12.packet'</span>
</span><span class='line'>
</span><span class='line'> <span class="nv">decode: </span><span class="nf">(raw, cb) -></span>
</span><span class='line'> <span class="nv">count = </span><span class="nx">raw</span><span class="p">.</span><span class="nx">readUInt32LE</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
</span><span class='line'> <span class="nv">t = </span><span class="nx">raw</span><span class="p">.</span><span class="nx">readUInt16LE</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span>
</span><span class='line'> <span class="nv">h = </span><span class="nx">raw</span><span class="p">.</span><span class="nx">readUInt16LE</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span>
</span><span class='line'> <span class="nv">result =</span>
</span><span class='line'> <span class="nv">ping: </span><span class="nx">count</span>
</span><span class='line'> <span class="nv">age: </span><span class="nx">count</span> <span class="o">/</span> <span class="p">(</span><span class="mi">86400</span> <span class="o">/</span> <span class="mi">60</span><span class="p">)</span> <span class="o">|</span> <span class="mi">0</span>
</span><span class='line'> <span class="nv">temp: </span><span class="nx">t</span>
</span><span class='line'> <span class="nv">humi: </span><span class="nx">h</span>
</span><span class='line'> <span class="nv">vpre: </span><span class="mi">50</span> <span class="o">+</span> <span class="nx">raw</span><span class="p">[</span><span class="mi">6</span><span class="p">]</span>
</span><span class='line'> <span class="nv">vpost: </span><span class="mi">50</span> <span class="o">+</span> <span class="nx">raw</span><span class="p">[</span><span class="mi">7</span><span class="p">]</span>
</span><span class='line'> <span class="nx">cb</span> <span class="nx">result</span>
</span></code></pre></td></tr></table></div></figure>
<p>Each field in the packet is given a description, and where appropriate some units, min and max values and scale and factor values. Scale and factor are used to convert the fixed point integer value from the driver into a decimal value for display. For example, a temperature value of 226 is 22.6°C, so this requires a scale of 1 to divide it by 10. The Vcc values require both scale and factor and an offset to turn a value of 117 into 3.34V. The offset is supplied by the decode function where 50 is added to the raw packet value, giving 167, a factor of 2 gives 334, and a scale of 2 divides it by 100 to give 3.34.</p>
<p>With these additions, the Housemon instance is then configured from the admin page:</p>
<p><img src="http://graham.bloice.co.uk/images/HouseMon-Admin.PNG" title="HouseMon - Admin" ></p>
<p>Note the items I’ve installed, the only item that required a configuration setting was the rf12demo briq and that requires the serial port that I’ve attached the JeeNode to, in my case ttyUSB0.</p>
<p>The following images show the HouseMon Readings, Status and Graphs pages, with the temperature selected on the Graph and the timespan set to 24 hours.</p>
<p><img src="http://graham.bloice.co.uk/images/HouseMon-Readings.PNG" title="HouseMon - Readings" ></p>
<p><img src="http://graham.bloice.co.uk/images/HouseMon-Status.PNG" title="HouseMon - Status" ></p>
<p><img src="http://graham.bloice.co.uk/images/HouseMon-Graph.PNG" title="HouseMon - Graphs" ></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Airwick Room Node]]></title>
<link href="http://graham.bloice.co.uk/blog/2013/04/07/airwick-room-node/"/>
<updated>2013-04-07T00:24:22+01:00</updated>
<id>http://graham.bloice.co.uk/blog/2013/04/07/airwick-room-node</id>
<content type="html"><![CDATA[<p>To create a room sensor node with the JNu, I’ve attached a <a href="http://www.adafruit.com/products/385">AM2302</a> (also known as a DHT22) temperature and humidity sensor and modified the radio blip sketch to communicate with the sensor and return the data in the radio blip payload.</p>
<!--more-->
<p>The sensor has 4 pins, 3 of which are used; Vdd, Data, and Ground, and these are connected to the JNu +, R and G pins of the single port on the JNu. A 10KΩ pullup resistor is connected between the Vdd and Data pins.</p>
<p>The sketch used is in the <a href="https://github.com/gbloice/AirWick">Airwick</a> github repo and an Arduino <a href="http://playground.arduino.cc/Main/DHTLib">DHT22 library</a>. The sketch differs from the normal radio blip by calling the read22 routine to start a conversion attempt and then if successful, reading the resulting temperature and humidity values. These floating point values are then multiplied by 10 and converted to integers for transmission over the radio, along with the status of the sensor conversion attempt. The resulting payload can then be observed using the JNUSB:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>OK 22 93 1 0 0 2 117 118 224 0 243 1 0
</span><span class='line'>OK 22 94 1 0 0 2 117 118 225 0 245 1 0
</span><span class='line'>OK 22 95 1 0 0 2 117 118 225 0 242 1 0
</span><span class='line'>OK 22 96 1 0 0 2 117 118 0 0 0 0 255
</span><span class='line'>OK 22 97 1 0 0 2 117 118 226 0 237 1 0
</span><span class='line'>OK 22 98 1 0 0 2 117 118 228 0 236 1 0</span></code></pre></td></tr></table></div></figure>
<p>The first part of the data is the same as the standard radio blip, the values at the back end are the temperature and the humidity (16 bit little endian values) and the sensor conversion status (single byte). In the case of the last entry <code>OK 22 98 1 0 0 2 117 118 228 0 236 1 0</code> the value <code>228 0</code> is the temperature (22.8°C), the value <code>236 1</code> is the humidity (49.2%) and the status is <code>0</code> (OK). Note the one entry where the temperature and humidity values are 0 and the status is 255 which indicates a sensor conversion failure. These occur occasionally for unknown reasons.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Intro to JeeNodes]]></title>
<link href="http://graham.bloice.co.uk/blog/2013/03/31/intro-to-jeenodes/"/>
<updated>2013-03-31T13:53:00+01:00</updated>
<id>http://graham.bloice.co.uk/blog/2013/03/31/intro-to-jeenodes</id>
<content type="html"><![CDATA[<p>To make a room sensor I’m going to use a <a href="http://jeelabs.net/projects/hardware/wiki/JeeNode_Micro">JeeNode Micro</a> (JNu) reporting back to a <a href="http://jeelabs.net/projects/hardware/wiki/JeeNode_USB">JeeNode USB</a> (JNUSB) running on my home server.</p>
<!--more-->
<p>After receiving the items from the <a href="http://jeelabs.com/">JeeLabs shop</a> I connected them up to test on the bench. I soldered the aerial wires to each item, cutting them to 82mm for the 868MHz radios.</p>
<p>The JNUSB comes ready flashed with the <a href="https://github.com/jcw/jeelib/tree/master/examples/RF12/RF12demo">RFM12Demo</a> sketch from the <a href="https://github.com/jcw/jeelib">JeeLib</a> examples directory so simply requires plugging in to a USB port and then opening a terminal to the appropriate COM port created by the USB drivers. As I’m testing on a Windows system, I looked in Device Manager | Ports to see what pseudo com port number was, and then opened <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a> for that com port. Set the baud rate to 57600 and hit enter to see the standard RF12demo response:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>[RF12demo.7] A i1 g5 @ 868 MHz
</span><span class='line'>
</span><span class='line'>Available commands:
</span><span class='line'> <nn> i - set node ID (standard node ids are 1..26)
</span><span class='line'> (or enter an uppercase 'A'..'Z' to set id)
</span><span class='line'> <n> b - set MHz band (4 = 433, 8 = 868, 9 = 915)
</span><span class='line'> <nnn> g - set network group (RFM12 only allows 212, 0 = any)
</span><span class='line'> <n> c - set collect mode (advanced, normally 0)
</span><span class='line'> t - broadcast max-size test packet, with ack
</span><span class='line'> ...,<nn> a - send data packet to node <nn>, with ack
</span><span class='line'> ...,<nn> s - send data packet to node <nn>, no ack
</span><span class='line'> <n> l - turn activity LED on PB1 on or off
</span><span class='line'> <n> q - set quiet mode (1 = don't report bad packets)
</span><span class='line'>Remote control commands:
</span><span class='line'> <hchi>,<hclo>,<addr>,<cmd> f - FS20 command (868 MHz)
</span><span class='line'> <addr>,<dev>,<on> k - KAKU command (433 MHz)
</span><span class='line'>Current configuration:
</span><span class='line'> A i1 g5 @ 868 MHz</span></code></pre></td></tr></table></div></figure>
<p>Note that I’ve issued the group command (5g) to set the group to the group used by the JNu in the next section.</p>
<p>For the JNu, things are a little more complicated as it doesn’t appear to come flashed with a sketch, nor does it have a bootloader. JeeLabs has a guide to compiling and flashing the micro (<a href="http://jeelabs.org/2013/03/03/programming-the-jnu-v3-part-1/">Pt1</a>, <a href="http://jeelabs.org/2013/03/07/programming-the-jn%C2%B5-v3-part-2/">Pt2</a>, <a href="http://jeelabs.org/2013/03/20/programming-the-jnu-again/">Pt3</a> and <a href="http://jeelabs.org/2013/03/21/programming-the-jn%C2%B5-at-last/">Pt4</a>) but I had some issues completing the flash as I’m using a <a href="http://dangerousprototypes.com/docs/Bus_Pirate">Bus Pirate</a>(BP) as my ISP programmer and I couldn’t persuade the IDE to upload the hex file. To workaround this I followed the instructions from Pt2 and manually fired up avrdude to upload the sketch using the BP. After uploading the sketch, the terminal connected to the JNUSB started showing the “blip” messages from the JNu, with a new message every 60 seconds:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>OK 22 1 0 0 0 1 118 0
</span><span class='line'>OK 22 2 0 0 0 1 117 118
</span><span class='line'>OK 22 3 0 0 0 1 117 118</span></code></pre></td></tr></table></div></figure>
<p>The values in the string are the reception OK flag, the node ID (22), the 32 bit message count which increments every message, and the power supply voltage before and after the transmission. Note the first message doesn’t have an after voltage as 0 as this lags by 1 transmission. The voltage value is scaled to 1.0V = 0, 6.0V = 250, so 117 is (117 / 50 + 1.0) 3.34V, which is the power supply from the BP. I also set the JNUSB to quiet mode (1q) so random noise isn’t reported to the terminal.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[First Ramblings]]></title>
<link href="http://graham.bloice.co.uk/blog/2013/03/30/first-ramblings/"/>
<updated>2013-03-30T23:18:00+00:00</updated>
<id>http://graham.bloice.co.uk/blog/2013/03/30/first-ramblings</id>
<content type="html"><![CDATA[<p>For this first post, I’ll intoduce the general themes of this blog and a little about myself.</p>
<p>So what sort of things will appear here? In no particular order:</p>
<ul>
<li>Hardware, usually microcrontrollers, e.g. AVR, Arm.</li>
<li>Software, for the above hardware, but also PC based (Windows and Linux).</li>
<li>Home Automation, hardware and software.</li>
<li>Other random topics that take my fancy.</li>
</ul>
<!--more-->
<p>The initial items of hardware under discussion will be some small wireless sensor boards from <a href="http://jeelabs.org">Jeelabs</a>, namely the <a href="http://jeelabs.net/projects/hardware/wiki/JeeNode_USB">JeeNode USB</a> and the <a href="http://jeelabs.net/projects/hardware/wiki/JeeNode_Micro">JeeNode Micro</a>, and their associated radio module, the <a href="http://www.hoperf.com/rf/fsk/21.htm">Hope RF RFM12B</a>.</p>
<p>For radiator control I’ll be using the <a href="http://www.homexpertbyhoneywell.com/en-DE/Products/rondostat/Pages/HR-20.aspx">Honeywell HR20-Style</a> programmable thermostatic radiator valve (TRV) with <a href="http://sourceforge.net/projects/openhr20/">OpenHR20</a> firmware, fitting RFM12B boards to the TRV’s to allow wireless communications. I’ll also be creating some room sensors (temperature, humidity and PIR for presence) with some hacked AirWick air fresheners.</p>
<p>Software items covered will initally be the firmware for the JeeNodes, OpenHR20 for the radiator valves and PC based Home Automation monitoring and Control of some flavour</p>
<p>Who am I? I’m a software engineer working on SCADA (Industrial Control Systems) in Aberdeen, UK. I’ve been programming since my earliest experiments with a programmable calculator in the late 1970’s, and now number a variety of languages under my belt.</p>
]]></content>
</entry>
</feed>