Project

General

Profile

Software Links » History » Version 17

Hammel, 21 Feb 2018 11:41

1 1 Hammel
h1. Software Links
2
3
* "Alexa Voice Service":https://developer.amazon.com/appsandservices/solutions/alexa/alexa-voice-service from Amazon
4 3 Hammel
* "Awesome IoT":https://github.com/phodal/awesome-iot - links to lots of other stuff
5 2 Hammel
6 14 Hammel
h2. AI and Neural Networks
7 1 Hammel
8 14 Hammel
* 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
9
** "Deep Learning Links":http://deeplearning.net/software_links/
10
* https://www.tensorflow.org/ - Google's machine learning engine
11
** TensorFlow for Java: https://www.tensorflow.org/install/install_java
12 1 Hammel
* "Theono":http://deeplearning.net/software/theano/ is also for deep learning, but is math oriented more than task oriented.  It's easier to get started with Tensor Flow.
13 14 Hammel
* "OpenNN":http://www.opennn.net/
14
* "Neural Network Libraries":https://nnabla.org/
15
* "Deep Learning for java":https://deeplearning4j.org/
16
* "Deep Neural Networks with GPU Support":https://github.com/ivan-vasilev/neuralnetworks
17 3 Hammel
18 13 Hammel
h2. Protocols and Standards
19 1 Hammel
20 13 Hammel
* "WebOfThings (WoT)":https://webofthings.org/ - General standards for IoT device management; a bit overkill as usual
21 3 Hammel
* "Advanced Message Queuing Protocol":https://www.amqp.org/ (AMQP)
22
* "Constrained Application Protocol":http://coap.technology/ (CoAP) - see microcoap for Arduino
23
* "Extensible Messaging and Presence Protocol":http://xmpp.org/about-xmpp/history/ (XMPP)
24
* "OASIS Message Queuing Telemetry Transport":https://www.oasis-open.org/news/pr/oasis-members-to-advance-mqtt-standard-for-m2m-iot-reliable-messaging (MQTT)
25
* "Very Simple Control Protocol":http://www.vscp.org/ (VSCP)
26
* "OpenWSN":https://openwsn.atlassian.net/wiki/ - repository for open-source implementations of protocol stacks based on Internet of Things standards, using a variety of hardware and software platforms.
27 17 Hammel
* "Link local address":https://en.wikipedia.org/wiki/Link-local_address
28
29
h3. Discovery
30
31
* "Multicast DNS (mDNS)":https://en.wikipedia.org/wiki/Multicast_DNS
32
* "Simple Service Discovery Protocol (SSDP)":https://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol
33
* "Universal Plug and Play (HTTPU)":https://en.wikipedia.org/wiki/HTTPU
34
* "Zero-conf":https://en.wikipedia.org/wiki/Zero_configuration_networking
35 3 Hammel
36 16 Hammel
h3. Examples
37
38
* "Broadcast example code":https://github.com/sw17ch/udp_broadcast_example - broadcast is probably better than multicast for IoT discovery.
39
40 3 Hammel
h2. OS
41
42
* "ARM mbed":http://mbed.org/
43
* "Contiki":http://www.contiki-os.org/
44
* "Spark":http://spark.github.io/
45
* "RIOT":https://openwsn.atlassian.net/wiki/ - alternative to Arduino with CoAP included
46
47 10 Hammel
h2. Networking
48
49
* "WiFi AP + client":http://imti.co/post/145442415333/raspberry-pi-3-wifi-station-ap 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.
50
51 3 Hammel
h2. APIs
52 1 Hammel
53 13 Hammel
* "Mozilla IoT":https://iot.mozilla.org/ - Mozilla's IoT software based on WoT; provides a sample implementation that might be useful to follow for IronMan, at least in the UI.
54 3 Hammel
* "Qeo Tinq":https://github.com/brunodebus/tinq-core
55 10 Hammel
* "Twitter":https://dev.twitter.com/rest/public
56 15 Hammel
** "RESTful API Design w/NodeJS and Restify":https://code.tutsplus.com/tutorials/restful-api-design-with-nodejs-restify--cms-22637
57 10 Hammel
** "CURL":https://alvinabad.wordpress.com/2009/03/01/send-twitter-message-from-unix/ - may not work exactly like this with new API
58
** "tweet.sh":https://github.com/piroor/tweet.sh
59
* SMS
60
** "SMS via Email gateways per carrier":http://www.linuxjournal.com/content/system-status-sms-text-messages
61 3 Hammel
62
h2. Home Automation
63
64
* "PrivateEyePi":http://projects.privateeyepi.com/ - General home automation using Raspberry Pi
65
* "RaZberry":http://razberry.z-wave.me/ - Using Raspberry Pi with Z-Wave devices
66
* "OpenHAB":http://www.openhab.org/
67
* "Home Assistant":https://home-assistant.io/
68 4 Hammel
69
h2. Arduino
70
71 5 Hammel
* "Deep Sleep Mode":http://www.esp8266.com/wiki/doku.php?id=esp8266_power_usage#sleeping_the_esp8266
72 6 Hammel
** "Door Alarm w/ deep sleep mode":https://github.com/chaeplin/esp8266_and_arduino/blob/master/_48-door-alarm-deepsleep/_48-door-alarm-deepsleep.ino - This allows using both a software timeout and an alarm interrupt to wake from deep sleep.  Design is similar to this "PIR-based implementation":https://github.com/esp8266/Arduino/issues/1488 ("diagram only":https://cloud.githubusercontent.com/assets/25507805/25678678/de4659a0-304a-11e7-90d4-a5c19241e7f6.png)
73 4 Hammel
** See these discussions
74
*** https://github.com/esp8266/Arduino/issues/1488
75
*** https://forum.makehackvoid.com/t/weather-station-wake-up-triggered-by-either-the-rtc-or-a-momentary-switch/972
76
*** https://github.com/esp8266/Arduino/issues/1381
77
*** https://github.com/chaeplin/esp8266_and_arduino/tree/master/_48-door-alarm-deepsleep
78 7 Hammel
79
h2. Security
80
81
* "Securing Embedded Linux":https://www.linux.com/news/securing-embedded-linux
82 12 Hammel
* AES
83
** This is a symmetric encryption technique which means there is only one shared secret.  Public/Private keys are not used with AES.
84 1 Hammel
** "Symmetric AES using IVs (initial vectors)":https://forum.arduino.cc/index.php?topic=88890.msg1726730#msg1726730
85 12 Hammel
** Arduino Libraries for AES
86
*** "AES for embedded":https://github.com/spaniakos/AES/ (Arduino or Raspberry Pi)
87
*** "ArduinoLibs":https://github.com/rweather/arduinolibs contains a "crypto library":https://rweather.github.io/arduinolibs/index.html.
88
*** "AES Lib":https://github.com/kakopappa/arduino-esp8266-aes-lib
89
*** "AES Crypto":https://github.com/intrbiz/arduino-crypto
90 8 Hammel
91
h2. Software updates
92
93
Three parts to a software update: bootloader, kernel and rootfs/apps.
94
# 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.
95
# u-boot is used to swap between kernels and partitions, test sanity of new images.
96
# kernel fallback capability is required
97
# rootfs/apps fallback capability is required
98
99
* "Building Murphy-compatible embedded Linux systems":https://www.kernel.org/doc/ols/2005/ols2005v1-pages-21-36.pdf
100
* "Implementing update system for embedded Linux":https://stackoverflow.com/questions/6937592/implementing-an-update-upgrade-system-for-embedded-linux-devices discussion on stackoverflow
101
* "On the field software updates":http://wiki.dave.eu/index.php/Deploying_Embedded_Linux_Systems#On-the-field_software_upgrades in Deploying Embedded Linux Systems
102
* "Updating Firmware in Linux Based Devices":http://www.linuxjournal.com/content/updating-firmware-linux-based-devices in Linux Journal, discusses use of A/B partitions and pointing boot loader at current release.