Step 3: Download and Install Bloom

Before I can connect the Arduino to SensorMonkey, I need to map the serial port assigned to the device to a TCP/IP socket. To do this, I download and install Bloom from the SensorMonkey support page.

Bloom is a serial port to TCP/IP socket redirector for Microsoft Windows. It comes with a fairly comprehensive help manual (which I would encourage you to read), but the basic operation is very simple:

- Run Bloom from the Windows Start menu
- Configure serial port settings for the Arduino and choose a TCP/IP port for Bloom to listen on
- Set a polling frequency to (approximately) match the sampling rate of the Arduino's sketch
- Press 'Start'

Bloom will listen for incoming connections on the specified TCP/IP port. When a connection is accepted, Bloom will open the serial port and transfer data back and forth between the TCP/IP socket and the serial port, allowing SensorMonkey to connect to the Arduino as if it were a networked device with an Ethernet shield.

I use the following settings:

- TCP/IP port: 20000
- Polling frequency: 50
- Serial port: COM8
- Baud rate: 9600
- Data bits: 8
- Parity bit: None
- Stop bits: 1
- Flow control: None

The choice of TCP/IP port is arbitrary (you can choose whatever you like, as long as it's in the range 1024 to 49151, inclusive, and not already in use). Also, please bear in mind that your serial port will be different depending on what your Arduino was assigned.

For operating systems other than Windows, you can download an alternative to Bloom (typically referred to as a serial-to-network proxy) from our GitHub account. The sketch, named SensorMonkeySerialNet, runs in Processing on Mac OS and Linux. Please follow the instructions in the project's README file.
<p>I know it is a simple circuit, but I have just got to say: That's a great photo of a nice, clean breadboard and workspace. Well done.</p>
<p>Im doing a project similar to your description, But Im using android cam as webcam, usin Droid cam app. and Im not usin Pan and tilt, It is just stationary.</p><p>Now in my project I have to turn on the webcam depending on PIR sensor output which is interfaced with arduino UNO. Im also using sensor monkey, bloom and justin.TV , how can I achieve it. Please do help me .<br><br>prajjujan@gmail.com</p>
Hi I'm a total beginner and I'm trying to follow along with the tutorial, I just have one question, how would the tutorial differ if I'm using an arduino YUN, what steps would I leave out?
You we're right, it is a Frontpage problem. I had a problem with where the processing.js file was located, apparently I needed to have the whole URL in there. Once I did that the connection error went away. <br> <br>I am now getting the same problem as the user below that was only getting the outline of the graphs. I can view it on Sensor Monkey as a remote sensor without any problems, so I know it is streaming. I assume it is a problem with my HTML code then. I have entered my name and public key in the right place, all the text, and without quotation marks. I am new to HTML, and not sure why I am seeing nothing as a result. I can send you the code I have here if it will help. Thanks for your quick response. I hope I can get this thing working.
Hi, <br> <br>If you're still having problems you can send me the code and I can take a look through it for you. It could be one of a number of things. <br> <br>Either send me a private message through Instructables or mail it to sensor.monkeys@gmail.com if you can. <br> <br>Sincere apologies for the delay in getting back to you.
I have the same problem. I am using Microsoft Frontpage and when doing the preview mode, it continually gives me the error &quot;'Processing' is undefined.&quot; I have downloaded the processing-1.4.1.js file and have it referenced in my program the same way as demonstrated above. Any idea why I keep getting this same error?
I'm not familiar with Microsoft Frontpage so it may be an issue to do with its 'preview' mode. <br> <br>I would suggest uploading your files to a webserver (one running on your local machine will do) and testing it out to see if the error message persists.
I only get the outline of the graphs not the data on the web page? any ideas
Hi, <br> <br>Can you check that you are not receiving any JavaScript errors inside your browser? Can you also verify that you can see your stream in the 'Remote Sensors' tab in the SensorMonkey Control Panel (this will tell you whether your data is being streamed correctly). <br> <br>If you're not receiving any errors and your data is being streamed correctly then double check that you have entered the correct namespace/streamname details in your HTML viewer page (as described in Step 6). These are unique for every user.
I signed up an account with Sensor Monkey. I'm having no success in graphing data from a picaxe sending decimal numbers with the serial port. Such as &quot;72&quot; for 72 <br> degrees. I got Bloom to connect, baud rate is correct, its just the graph is all missed up. How do I set up the Format Description File to receive decimal numbers from the Picaxe?
Hi, <br> <br>SensorMonkey only supports binary data encodings. So, when sending the decimal number 72, for example, you can't send it as two separate characters, i.e. &quot;72&quot; where '7' and '2' are the characters. Instead, you have to encode it as an 8-bit binary number, i.e. a single byte containing a bit sequence of 01001000. You do this by writing the raw value to the serial port directly. <br> <br>Basically, if you are using the PICAXE function sertxd, make sure you DO NOT put a # symbol in front of the variable or value that you are trying to send. Then, in your format description file, you can use an unsigned 8-bit integer (i.e. u8) to read and graph the data in the SensorMonkey control panel.
Yes, that does work. Thank you.
This is an intriguing idea. I have a couple of suggestions to <br>make this more accessible. <br> <br>1) It should be possible to create an account on SensorMonkey.com <br>without Facebook. Facebook-centric is a definite disadvantage. <br> <br>2) Linux support would be extremely helpful. Bloom or equivalent <br>is probably not necessary on a Linux machine.
Hi Grendel,<br> <br> Thanks for the comments and apologies for the belated reply.<br> <br> In response to point (1), we are currently assessing alternatives to Facebook for user logins.<br> <br> As regards point (2), I have uploaded a Processing sketch to our GitHub account. The sketch is named <a href="https://github.com/sensormonkey/SensorMonkeySerialNet" rel="nofollow">SensorMonkeySerialNet</a> and runs on Mac OS and Linux. It's not as full-featured as Bloom, but should enable users to connect their Arduinos to SensorMonkey without needing Windows.
<br> <br>Yeah NO facebook <br> <br> <br>And of course anything Linux is good, mayb it;ll work with wine? <br>HANKIENSTIEN <br>rduino.com
this would work pretty well with the <a href="http://www.instructables.com/id/Twittering-office-toilet/" rel="nofollow">twittering toilet</a> idea...&nbsp;&nbsp; ;)

About This Instructable


253 favorites


More by amccoy6: Remote controlled webcam using Arduino, SensorMonkey, jQuery and Justin.tv Drive a webpage in real-time using Arduino, SensorMonkey and Processing.js
Add instructable to: