1 of 42

Norse IoT Websocket Workshop

2 of 42

Your Presenters

Cassian Godsted

3 of 42

Your Presenters

Aaron Milner

4 of 42

Your Presenters

Riley Weber-Horowitz

5 of 42

Your Presenters

Zack Sargent

6 of 42

So, what is IoT?

  • The Internet of Things (IoT) describes the network of physical objects — "things" — that are embedded with sensors, software, and other technologies for the purpose of connecting and exchanging data with other devices and systems over the internet.

  • Range from ordinary household objects to sophisticated industrial tools.

  • 10 billion connected IoT devices today; 22 billion by 2025. (source: Oracle)

wiki.norseiot.club

7 of 42

ESP-32

Arduino Uno

Raspberry Pi

What powers IoT?

wiki.norseiot.club

8 of 42

ESP-32

Function

Spec

Microcontroller

Xtensa Dual-Core 32-bit LX6

Clock Speed

240 MHz

Flash Memory

4 MB

SRAM

520 KB

Operating Voltage/Input Voltage

3.3V DC / 2.2-3.6V DC

Current Consumption

80-90 mA, 5μA deep sleep

DC Current per IO Pin

40 mA

Digital IO Pins

36

Analog IO Pins

18

3

4

2

Yes v2.0

16

Network

802.11 b/g/n, Bluetooth 4.2,

Ethernet (supported)

$5 - $10

In a nutshell…

  • Powerful, lightweight chip.
  • Useful for many scenarios.
  • Wi-Fi/Bluetooth/Matter enabled allowing for various projects.

9 of 42

What We’re Building

  • A Wi-Fi Enabled Game Controller
  • Will feature four buttons to send responses and a buzzer to communicate right/wrong.
  • Will send data to an open-source Kahoot clone through Websockets.
  • Will receive data (correct/incorrect) and make a noise.

10 of 42

The Hardware

11 of 42

Don’t lose your wires!

Don’t mix them with other groups!

Be Careful!!

12 of 42

Components: Rahoot Server

Receives data over Websockets and displays it on a website.

13 of 42

Components: Wires

Connects Point A (Microcontroller) to Point B (Sensor)

14 of 42

Components: Breadboards

Allows for easy and adaptable assembly of the microcontroller with input and output devices

15 of 42

Components: Breadboards

Allows for easy and adaptable assembly of the microcontroller with input and output devices

16 of 42

Components: Buzzer

  • Passive buzzers can play tones!
  • (Active buzzers cannot play tones)

17 of 42

Components: Button

18 of 42

Components: Button

19 of 42

Theory: Volts & Amps

20 of 42

Theory: Volts & Amps

21 of 42

Theory: Pull Up / Down Resistor

22 of 42

Theory: Pull Up / Down Resistor

23 of 42

The Software

24 of 42

Software

  • C++ code that reads data from buttons and sends the data over Wi-Fi through Websockets.

https://github.com/Norse-IoT/Rahoot

25 of 42

Websockets?

  • Websockets are an API that allows for a client and server to maintain constant communication.
  • Used in applications like…
    • Discord, to allow communication between you and your friends
    • Minecraft server consoles, to get live updates on your server.

26 of 42

Let’s Build It!

27 of 42

Don’t lose your wires!

Don’t mix them with other groups!

Be Careful!!

28 of 42

STEP 1: Pull out the breadboard

29 of 42

STEP 2: Put on ESP-32

30 of 42

STEP 3: Put on Buttons

WARNING: Button prongs are very fragile!!

31 of 42

STEP 4: Attach Orange Ground Wires

19

22

25

30

32 of 42

STEP 4: Put on Ground Wires

19

22

25

30

33 of 42

STEP 5: Put on Buzzer

22

34 of 42

STEP 6: Red Ground Wires

6

25

30

35 of 42

STEP 7: Add Yellow Power Wires

28

18

36 of 42

STEP 7: Add Yellow Power Wires

27

17

37 of 42

STEP 8: Add White Power Wires

28

13

38 of 42

STEP 8: Add First White Wire

28

13

39 of 42

STEP 8: Add White Power Wires

27

12

40 of 42

STEP 9: Add Teal Wire

22

11

41 of 42

STEP 10: Play!

42 of 42