Software Links » History » Version 16
Hammel, 21 Feb 2018 11:38
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 | |||
28 | 16 | Hammel | h3. Examples |
29 | |||
30 | * "Broadcast example code":https://github.com/sw17ch/udp_broadcast_example - broadcast is probably better than multicast for IoT discovery. |
||
31 | |||
32 | 3 | Hammel | h2. OS |
33 | |||
34 | * "ARM mbed":http://mbed.org/ |
||
35 | * "Contiki":http://www.contiki-os.org/ |
||
36 | * "Spark":http://spark.github.io/ |
||
37 | * "RIOT":https://openwsn.atlassian.net/wiki/ - alternative to Arduino with CoAP included |
||
38 | |||
39 | 10 | Hammel | h2. Networking |
40 | |||
41 | * "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. |
||
42 | |||
43 | 3 | Hammel | h2. APIs |
44 | 1 | Hammel | |
45 | 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. |
46 | 3 | Hammel | * "Qeo Tinq":https://github.com/brunodebus/tinq-core |
47 | 10 | Hammel | * "Twitter":https://dev.twitter.com/rest/public |
48 | 15 | Hammel | ** "RESTful API Design w/NodeJS and Restify":https://code.tutsplus.com/tutorials/restful-api-design-with-nodejs-restify--cms-22637 |
49 | 10 | Hammel | ** "CURL":https://alvinabad.wordpress.com/2009/03/01/send-twitter-message-from-unix/ - may not work exactly like this with new API |
50 | ** "tweet.sh":https://github.com/piroor/tweet.sh |
||
51 | * SMS |
||
52 | ** "SMS via Email gateways per carrier":http://www.linuxjournal.com/content/system-status-sms-text-messages |
||
53 | 3 | Hammel | |
54 | h2. Home Automation |
||
55 | |||
56 | * "PrivateEyePi":http://projects.privateeyepi.com/ - General home automation using Raspberry Pi |
||
57 | * "RaZberry":http://razberry.z-wave.me/ - Using Raspberry Pi with Z-Wave devices |
||
58 | * "OpenHAB":http://www.openhab.org/ |
||
59 | * "Home Assistant":https://home-assistant.io/ |
||
60 | 4 | Hammel | |
61 | h2. Arduino |
||
62 | |||
63 | 5 | Hammel | * "Deep Sleep Mode":http://www.esp8266.com/wiki/doku.php?id=esp8266_power_usage#sleeping_the_esp8266 |
64 | 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) |
65 | 4 | Hammel | ** See these discussions |
66 | *** https://github.com/esp8266/Arduino/issues/1488 |
||
67 | *** https://forum.makehackvoid.com/t/weather-station-wake-up-triggered-by-either-the-rtc-or-a-momentary-switch/972 |
||
68 | *** https://github.com/esp8266/Arduino/issues/1381 |
||
69 | *** https://github.com/chaeplin/esp8266_and_arduino/tree/master/_48-door-alarm-deepsleep |
||
70 | 7 | Hammel | |
71 | h2. Security |
||
72 | |||
73 | * "Securing Embedded Linux":https://www.linux.com/news/securing-embedded-linux |
||
74 | 12 | Hammel | * AES |
75 | ** This is a symmetric encryption technique which means there is only one shared secret. Public/Private keys are not used with AES. |
||
76 | 1 | Hammel | ** "Symmetric AES using IVs (initial vectors)":https://forum.arduino.cc/index.php?topic=88890.msg1726730#msg1726730 |
77 | 12 | Hammel | ** Arduino Libraries for AES |
78 | *** "AES for embedded":https://github.com/spaniakos/AES/ (Arduino or Raspberry Pi) |
||
79 | *** "ArduinoLibs":https://github.com/rweather/arduinolibs contains a "crypto library":https://rweather.github.io/arduinolibs/index.html. |
||
80 | *** "AES Lib":https://github.com/kakopappa/arduino-esp8266-aes-lib |
||
81 | *** "AES Crypto":https://github.com/intrbiz/arduino-crypto |
||
82 | 8 | Hammel | |
83 | h2. Software updates |
||
84 | |||
85 | Three parts to a software update: bootloader, kernel and rootfs/apps. |
||
86 | # 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. |
||
87 | # u-boot is used to swap between kernels and partitions, test sanity of new images. |
||
88 | # kernel fallback capability is required |
||
89 | # rootfs/apps fallback capability is required |
||
90 | |||
91 | * "Building Murphy-compatible embedded Linux systems":https://www.kernel.org/doc/ols/2005/ols2005v1-pages-21-36.pdf |
||
92 | * "Implementing update system for embedded Linux":https://stackoverflow.com/questions/6937592/implementing-an-update-upgrade-system-for-embedded-linux-devices discussion on stackoverflow |
||
93 | * "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 |
||
94 | * "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. |