Actions
Software Links¶
- Alexa Voice Service from Amazon
- Awesome IoT - links to lots of other stuff
AI and Neural Networks¶
- Big Picture Machine Learning - getting started with Tensor Flow and Neural networks for classifying text: https://medium.freecodecamp.org/big-picture-machine-learning-classifying-text-with-neural-networks-and-tensorflow-d94036ac2274
- https://www.tensorflow.org/ - Google's machine learning engine
- TensorFlow for Java: https://www.tensorflow.org/install/install_java
- Theono is also for deep learning, but is math oriented more than task oriented. It's easier to get started with Tensor Flow.
- OpenNN
- Neural Network Libraries
- Deep Learning for java
- Deep Neural Networks with GPU Support
Protocols and Standards¶
- WebOfThings - General standards for IoT device management; a bit overkill as usual
- Advanced Message Queuing Protocol (AMQP)
- Constrained Application Protocol (CoAP) - see microcoap for Arduino
- Extensible Messaging and Presence Protocol (XMPP)
- OASIS Message Queuing Telemetry Transport (MQTT)
- Very Simple Control Protocol (VSCP)
- OpenWSN - repository for open-source implementations of protocol stacks based on Internet of Things standards, using a variety of hardware and software platforms.
- Link local address
Discovery¶
Examples¶
- Broadcast example code - broadcast is probably better than multicast for IoT discovery.
OS¶
Networking¶
- WiFi AP + client describes how to setup a wifi dongle as both an AP and a client, routing between the two. We don't need to route from the sensors to the internet, however.
APIs¶
- Mozilla IoT - Mozilla's IoT software based on WoT; provides a sample implementation that might be useful to follow for IronMan, at least in the UI.
- Qeo Tinq
- Twitter
- RESTful API Design w/NodeJS and Restify
- CURL - may not work exactly like this with new API
- tweet.sh
- SMS
Home Automation¶
- PrivateEyePi - General home automation using Raspberry Pi
- RaZberry - Using Raspberry Pi with Z-Wave devices
- OpenHAB
- Home Assistant
Arduino¶
- Deep Sleep Mode
- Door Alarm w/ deep sleep mode - This allows using both a software timeout and an alarm interrupt to wake from deep sleep. Design is similar to this PIR-based implementation (diagram only)
- See these discussions
Security¶
- Securing Embedded Linux
- AES
- This is a symmetric encryption technique which means there is only one shared secret. Public/Private keys are not used with AES.
- Symmetric AES using IVs
- Arduino Libraries for AES
- AES for embedded (Arduino or Raspberry Pi)
- ArduinoLibs contains a crypto library.
- AES Lib
- AES Crypto
Software updates¶
Three parts to a software update: bootloader, kernel and rootfs/apps.- This adds u-boot as 3rd stage bootloader to Pi. First stage (in hardware) doesn't change and 2nd stage (binary blobs) only change with new SD cards.
- u-boot is used to swap between kernels and partitions, test sanity of new images.
- kernel fallback capability is required
- rootfs/apps fallback capability is required
- Building Murphy-compatible embedded Linux systems
- Implementing update system for embedded Linux discussion on stackoverflow
- On the field software updates in Deploying Embedded Linux Systems
- Updating Firmware in Linux Based Devices in Linux Journal, discusses use of A/B partitions and pointing boot loader at current release.
Similar Projects¶
- http://homedaemon.net/ - FreeBSD based, runs on RPi
Updated by Hammel almost 5 years ago · 18 revisions