Category Archives: IoT Communications and Database

M5 IoT Server is Here!

I have wanted for some time for there to be a wireless hotspot at M5 specifically for hosting Mosquitto, an internet of things information broker which implements the MQTT protocol. I think I have finally crossed all the technical hurdles. I put the server up for a couple hours last Wednesday and tested it, and it seemed to be working perfectly. I have now put it back up, and plan to leave the server up permanently.

The server creates a local WiFi network with DHCP and access to the mosquitto port 1883, but not through-access to the internet. Mosquitto will also be available to the campus network (including eduroam). Talk to Chuck to get the url – I don’t want to post it here!

This service will allow interconnection of IoT objects all around M5; sensors, switches, actuators, simple displays, lights, etcetera. A data source sends (in MQTT terms, publishes) a message to the host (the broker), labeled by a topic name; any device that has subscribed to that topic will receive notification of the new value, and can then act on it as necessary.

Links:

  • The home page for the MQTT protocol
  • The mosquitto software home page
  • Installing the mosquitto MQTT server onto a Raspberry Pi, in case you want to try it yourself

ECE297DP – Come get your hands dirty at M5! Saturday afternoons

Your ECE education at UMass is quite remarkable. You will graduate very well prepared with the theory and computational skills you will need to start useful work in the real world.

To have a *really* well balanced education, though, (as well as great stuff to put on your resume!) you should have hands-on experience building projects. M5 is the place for making things – electronic, mechanical, audio, RF, and more – or breaking things to find out how they work(ed), or fixing things. The M5 team is eager to help you with project ideas and pointers.

ECE297DP offers you one course credit, pass-fail, so you even get some academic credit for coming and having fun. You also get résumé cred with all the cool projects you’ve done.

Also – if you have a team project in mind, you can take ECE497DP as the mentor / project leader, and get even more resume cred!

Chuck Malloch is especially interested in distributed sensor systems and home monitoring. He has experience with ESP8266, NeoPixel strips, Node-Red, MQTT, Mosquitto, UDP, Python, Perl, and X-10 system components and would love to work with you on projects to monitor building systems and environments and provide assistive technology to the elderly and disabled. Come talk to him at M5 to talk about project ideas you might have or to develop a project idea based on your interests.

Chuck will be in the Pi Room at M5 every Saturday at least from 2:30 to 4:30, and usually will be there much earlier. Come on down. Also, check out the M5 web site at UMassAmherstM5.org for additional course details.
The course requirements, all of which must be fulfilled to pass the course, are:
o preparation of a project proposal and having it approved by Professor Soules or myself.
The proposal needs to describe what you plan to do, what the necessary resources are, the main concept (that you will demonstrate mid-term), and what cool thing you’re going to do with that concept for Circuits and Code. Don’t delay on this – it needs to be to me or TBS in time to get approved during the add/drop period!
o perfect attendance during the class sessions (one per week), with one pre-excused absence and one unanticipated absence allowed.
o two additional hours each week spent working on your project
o preparation and delivery mid-course of a 5-minute “lightning talk” describing your project, your progress, and your intentions
o exhibition of your completed project at Circuits and Code just before finals
o preparation and submission of a final report

Chuck is also very interested as a musician and a software engineer in working with a programmable audio effects box. See the this post for more details on that action.

Also note that Chuck has a blog now, and it’s intended to explore and serve as an example of project logging and documentation. Unsurprising hint: such documentation can come in very handy for students looking for a job. ‘Nuff said.

See you Wednesday or Saturday!

Sparkfun’s Internet-of-Things Database: Phant

Phant (think elePHANT, I guess) “acts as a logging tool which allows any device to read and write data to and from the service”. After creating an account with Sparkfun, one can create feeds by interactively describing the data that will be included. Two keys are then supplied to the user: a private (read-write) one that can be used to submit or modify the data, and a public read-only one (all feeds are publicly viewable).
To submit data, one simply sends it in an html GET or POST request. It will then be captured by the database and a confirming reply sent. Similarly, one can retrieve data with a GET or POST request.

There is a space limit and a bandwidth limit, but these are set reasonably so that most users won’t be inconvenienced by them.

I have been storing data automatically into Phant for a few months now. I have a solar-powered ESP8266 WiFi-enabled processor which wakes up every ten minutes, takes temperature and battery-voltage readings, connects to my home network, and sends them up to Phant. You can view them as raw data at https://data.sparkfun.com/streams/2J5rnpZllATNjOOmqLrq, or graphed by another free service at https://analog.io/#/s5EV.

I am working with MQTT also as another, fairly different, IoT data broker, and will publish another blog entry about MQTT. A key difference between the two is that Phant is entirely passive – you can get data from it or put data into it, but it won’t notify you when new data arrives. MQTT is designed with a publish/subscribe architecture; you subscribe to a topic and when new data is published to that topic, you are notified with the new data.