sylatupa / Digital_Multi_Tool_w_ESP32

Final Project for Master of Arts, ASU Herberger Digital Culture
0 stars 0 forks source link

Digital_Thing -- an IOT Digital Client and Multi Tool

A Micro-Python framework, for embedded and internet of things projects. This code was developed for the ESP32.

wood_enclosure

Table of Contents

  1. Introduction
  2. Milestones from the project
  3. Parallel projects that work with the Digital_Thing
  4. Enclosure Design and Construction
  5. The Software
  6. The Hardware
    1. Use Cases
  7. Place_Sense: Classic Living System Monitor
    1. Sound and Video Controller
  8. The Edge Server: Raspberry Pi, Node-Red, MQTT, Wifi, and some custom Scripts

Introduction

Welcome, this repository has the code and supporting material for you to develop micro-python programs for the ESP32. This_Thing works inside the Edges of the WiFi network when paired with a Raspberry pi, a mosquitto MQTT server, and Node-Red. This enlocuse and construction requires little to no soldering as the connection of the Sensor modules mimics the initial stages of prototyping--using a breadboard. The enclosure and wiring solve 2 issues--1) An enclosure with features that can adapt per project and 2) the connections can be made and changed in a way that is commonly available and used. With these two observations about contemporary prototyping techniques: 1) DuPont connections are used and 2) Sensor modules and other peripherials can typically be found with a number of male pins for voltage, ground, and data.

the_band

parallel_projects

The Digital_Thing is built in the context of a Digital Culture, Arts Media and Engineering, Master of Arts program and some of the following project examples are with interactive art and media.

Some exploritory projects and summaries of the current state of Tangible Interaction with embeded Internet of Things devices, they can be found here: Research Summary. A thought provoking list can be found in Internet of Tangible Things (IoTT) and resonates with some of the features that can be found in the Digital_Thing and peripherial projects:

T1. Meaningful representations and controls of  [...] connectivity status, interconnections, as well as information capture [...].
T2. Rich Interactions that exploit the natural human skills [...].
T3. Persistent physical representations that could last in case of power or connectivity outage [...].
T4. Spatial interactions [...] with multiple IOT objects.
T5. Immediacy and intuitiveness of the interaction [...] (low latency).
T6. [...] designed for daily routines, which free users' cognitive resources and do not disrupt attention.
T7. Facilitated reflections on IoT object meaning and working principles, as well as support for associating and sharing memories.
T8. Long-lasting interactions with IoT objects exploiting emotional durable designs, to cope with electronic waste due to technological obsolescence. 

enclosure

Enclosure Design and Construction

![A Fly By]

https://github.com/sylatupa/Digital_Multi_Tool_w_ESP32/tree/master/Enclosure

In anticipation that this object will change overtime, additional layers of acrylic can be added or removed to make the necessary room for any expansions made for the ESP2866. The Digital_Things physical description is a clear laser cut acrylic and wood panels, sandwiched on top of each other. The sensor modules are clearly visible inside the void of the enclosure. A small amount of color wires connect the ESP32 to the sensor modules.

Sensor modules can be added to the enclosure by first mounting them on slides and stacking them using standoffs. All the sensor modules share one common ground and voltage from a small PCB with 2 rows of 8 female headers.

software

Navigation

state_machine Using a state machine, implemented with a series of if statements that allow the user to select programs.

hardware

sensor_modules

18650 Battery esp32_w_bat Board esp32_w_sd Board max9814 amplified microphone mma7361 accelerometer mma7361_accel accelerometer

use_cases

The Digital_Multi_Tool use cases are listed below

spirit_level https://www.youtube.com/watch?v=ZxfC2JU0sd4&list=PLcqKf5XU9uVOfuwFNbiraGHOt9Q5JuXdf&index=7

place_sense

Classic Living System Monitor-- to observe Climate and Place Data

controller

Sound and Video Controller

sound_wand https://www.youtube.com/watch?v=ZxfC2JU0sd4&list=PLcqKf5XU9uVOfuwFNbiraGHOt9Q5JuXdf&index=7 https://www.youtube.com/watch?v=B9ACMyeBL88&list=PLcqKf5XU9uVOfuwFNbiraGHOt9Q5JuXdf&index=3

the_server

The Server for Edge Computing.

This device only works locally, with a raspberry pi that has an MQTT broker and a Node-Red Server.

The ESP32 has the ability to send data using many communication protocols, such as TCP, UDP, MQTT, Serial. But, this device only sends MQTT data, any additional inter-networktivity is handled using Node-Red flows.

See all the videos here:

all_the_things https://www.youtube.com/watch?v=zzlslcG2fdA&list=PLcqKf5XU9uVOfuwFNbiraGHOt9Q5JuXdf

An Arizona State University Herberger, Institute for the Design and the Arts, Digital Culture Masters Final Project, 2019.