Well after some thought, I figured it was time to roll up my sleeves and install some tools and frameworks to start with my minimilist IoT playground. I use macOS and will focus just on that.
Environment under macOS
I first started to go down the path provided at mean.io and felt there was too much of a heavy lift for a newbie trying to ramp up on four technologies at the same time. I opted for installing each of them by hand so I can see the type of problems can occur.
I installed the following:
Sublime Text – Nice editor and I started using it for Arduino development as well
MongoDB – I used the homebrew approach.
$ brew install mongodb --with-openssl $ sudo mkdir /data/dbmd $ whoami youraccount $ sudo chown youraccount /data/db # Default no authentication required so user beware. # launch mongodb $ mongodb
Node Version Manager (NVM) – Used to manage different versions of node.js. Note I have Xcode installed and you may need the command line tools later.
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
$ nvm install node
$ nvm ls # list of node versions installed
$ nvm
$ nvm alias default 7.8.0 # I want to keep version 7.8.0 as default
If the NVM is too much of a hassle, get node directory from node.js via download
Node.js – It is already newer than the version I have (7.8.0). This is an easy install and should not pose any problems
Express Generator – another straight forward install for light weight web framework
$ npm install -g express-generator # change to a directory where you want to install the express templates. e.g. min is chrapchp/Dev/nodes $ express HomeSensors # what I called my app $ cd HomeSensors $ npm install
I installed the following as well based on what I thought I needed for this learning exercise.
Package/Tool | URL | Description | Installation |
---|---|---|---|
log4js | log4js | log4js based logging services for node.js | npm install log4js -S |
monk | monk | wrapper to mongodb that is simpler yet not as powerful as mongoose | npm install monk -S |
nodemon | nodemon | listens for file changes and restarts server | npm install nodemon -g |
dummy-json | dummy-son | tool to generate JSON files used for my testing | npm install dummy-json -g |
Robomongo | robomongo | MongoDB manager | download and point to mongoDB instance (default localhost:27017) |
Bluebird | bluebird | promise library implementation | npm install bluebird -S |
SerialPort | serial port | serial port driver for node.js | npm install serialport -S # have 4.0.7 |
xbee-api | xbee-api | xbee API for node.js | npm install xbee-api -S |
Off to learning this stuff.