This week's assignment is to design, build, and connect wired or wireless node(s) with network or bus addresses. In the beginning, I was thinking of starting with ESP32, but since I was not in town during the weekend, there was no ESP32 left in the CBA shop when I came back to Cambridge. As a result, I decided to use ESP8266 to try out wireless communication.
I am interested in what the network is and how it works. In "Me++: The Cyborg Self and the Networked City", William J. Mitchell claimed that the networked entities, whether humans or non-humans, creatures or machines, are being embedded everywhere, in every kind of systems. It changed the concept of the "real-world" and dissolved the boundary between cyberspace and meatspace. And Wendy Chun also suggested that "What it means when media moves from the new to the habitual—when our bodies become archives of supposedly obsolescent media, streaming, updating, sharing, saving." in "Updating to Remain the Same." These discussions and hypothesis are all corresponding to the introduction in "Internet Ø: Interdevice Internetworking- End-to-End Modulation for Embedded Networks." from Neil. I am excited about the possibilities of applying these networked systems in artistic practices and plan to explore related topics during my study at MIT.
The ESP8266 family and ESP8266 ESP-12E
ESP8266 is a low-cost RF module produced by the Chinese manufacturer Espressif Systems. It includes a full TCP/IP stack and comes pre-programmed with an AT command set firmware, like old modems: so, you can hook this module up to your Arduino (or hello board) and get WiFi-capabilities. However, the ESP8266 has on-board processing and storage capability (like an Arduino) that allows it to be programmed and extended. Moreover, it has a few GPIOs to which sensors and other interfaces can attach.
After doing some research, I found that the ESP8266 module is a huge family. There are several types of ESP8266, and the main difference is the replaceability of the antenna. For those ESP8266 modules that came with built-in unchangeable antenna, we can divide them into two types, one is the printed circuit board wiring (such as ESP-01 and ESP-12E), and the other is the ceramic antenna (ESP-11 ).
The ESP8266 I found in the CBA shop is ESP-12E. First of all, I need to design and mill the board.
I followed the tutorial from the HTMAA website and ran the test file. To run Neil's python file for ESP8266, you need to indicate the serial port and available wifi connection.
python esp8266test.py /dev/tty.usbserial-FTAV0OC8 115200 "MIT GUEST" ""
Above is what I typed in the Mac's terminal. The order is python command, file name, port, baud rate, and wifi information.
The terminal should return you "Command result: OK" and then an IP address after the "Got IP" message.
As we got the IP address of ESP8266, we can use the "ping + IP address" command to test the data transmitting. Sometimes it failed and transmitted an empty envelope, but usually, you only need to redo the process or reconnect the FTDI cable to overcome the errors.
With the test python file, I realized that my PCB is functional and connected to the Internet. Afterward, I ran the "esp8266server.py" to communicate with the webpage..
Serial Communication
For the group assignment, we milled and soldered several new boards and successfully programmed them.
I learned a lot by debugging and try to understand the relationship between current and voltage.
The tiny oscillator helped me to understand the states of the pcb and circuit.
However, it seems that the Python version and installation in my MacBookPro has some conflicts with the program. I couldn't open the pop-up window correctly. I will continue the experiment in networking communication in next couple weeks.