Everything is Talkative
We like to embed electronics in everything these days, and while we’re at it why not include wifi so that everything can communicate with everything via The Internet.
introduction to networks
how things are talking with each-other using electricity
ELECTRICITY LAYER
ON / OFF
Binary: 0,1 HIGH, LOW ON, OFF 0V, 5V GND, VCC
BINARY ENCODING, 8BIT/1BYTE
2^8=256
ASCII
American Standard Code for Information Interchange
UNICODE
HARDWARE LAYER
PARALLEL
DB-25
SERIAL
RS232: Recomended Standard USB: Universal Serial Bus
ETHERNET
TRANSPORT LAYER
NETWORK, LAN, IP
IP: Internet Protocol LAN: Local Area Network Ethernet
UDP (SEND MODEL)
User Datagram Protocol
TCP (CONNECT, SEND, RECEIVE MODEL)
Transmission Control Protocol
ENCODING LAYER
OSC (ADDRESS MODEL)
Open Sound Control
HID
Human Interface Device
PUBLISH <-> SUBSCRIBE MODEL
MQTT
MQTT: Message Queuing Telemetry Transport
examples
ARDUINO Uno / Flora <-- Serial --> PROCESSING
PROCESSING <-- OSC --> PROCESSING
PROCESSING <-- MQTT(shiftr.io) --> PROCESSING
PROCESSING MQTT INSTALL
follow these instructions to install the MQTT Processing library: 1) in the Processing top menu go to: “Sketch” –> “Import Library” –> “Import Library” 2) type “MQTT” in the search box 3) select the MQTT library by Joel Gaehwiler 4) click on “Install” DONE!
ARDUINO ESP32 <-- MQTT(shiftr.io) --> PROCESSING
INSTALL: ARDUINO ESP32 HARDWARE
follow these instructions to install the ESP32 Arduino library:
1 Menu: Preferences —> Additional Boards Manager URLs: https://dl.espressif.com/dl/package_esp32_index.json
2 Menu: Tools —> Boards —> Boards Manager: search for: “ESP32” Install: “esp32 by Espressif Systems”
3 Menu: Tools —> Board: ESP32 Dev Module Menu: Tools —> Port: dev/cu… (unplug and plug to see which port appears) Menu: Tools —> Flash Mode: QIO Menu: Tools —> Flash Size: 4MB Menu: Tools —> Flash Frequency: 80Mhz Menu: Tools —> Upload Speed: 115200
INSTALL : ARDUINO MQTT LIBRARY
1 Menu: Sketch —> Include Library —> Manage Libraries
2 search for: “MQTT”
3 Install: MQTT library for Arduino by Joel Gaehwiler
see also: https://www.shiftr.io/try?lang=arduino
TEST: ESP ARDUINO CONNECTION
Menu: File —> Examples —> Basics —> “Blink” edit: LED_PIN = 2; —> blue LED should blink on/off
TEST: ESP SENSOR CONNECTION
READ ANALOG SENSOR Menu: File —> Examples —> Communication —> “Graph” edit: Serial.begin(115200); edit: pick a GPIO pin with and ADC (GPIO = General Purpose In Out) (ADC = Analog Digital Converter) for example: analogRead(34);
Note: ADC2 pins cannot be used when Wi-Fi is used. So, if you’re using Wi-Fi and you’re having trouble getting the value from an ADC2 GPIO, you may consider using an ADC1 GPIO instead, that should solve your problem.
SEND: SENSORDATA OVER MQTT
Menu: File —> Examples —> MQTT —> ESP32DevelopmentBoard
edit: your wifi info: your network name / SIID (SIID = Service Set Identifier) your password
edit: the “ClientID” so that you can see yourself connect: client.connect(“ClientID”, “try”, “try”)
edit: the topics you subscribe and publish to by adding “/yourName” you can also change the “message” you are sending!
client.subscribe(“/hello/yourName”);
client.publish(“/hello/yourName”, “message”);