L.O. (Learning Objectives) Week 14:¶ ¶ • Participate in the group assignment project • "Design" wired or wireless node(s) with network or bus addresses • "Build" wired or wireless node(s) with network or bus addresses • "Connect" wired or wireless node(s) with network or bus addresses ++ Programming process • Document what you have learned from implementing networking and/or communication protocols • Trouble shooting along the way: HI TROUBLE!!! • Upload design files and original codes 14.0. Notes during the class and workshops:FABLAB¶ • Health and Safety (H&S) o Good workflow o Good design methodologies o Good execution • IoT & MQTT o “OSI Stack” (=OSI layers) o MQTT has central system o MQTT works well with Node-RED(interface) • Bus serial connection • Wifi o How to decide which device talks first: “back off” – wait and listen first o Q. Who owns the internet? https://www.submarinecablemap.com • **Have to pick which medium I’m going to use for network&communication first (as a starting point) • **Need ways to put wavew into the physical medium • **Choose what to do • Purpose o Location o Parallelism Is it similar/same as the concept of parallelism used in electronics (physics context)? o Modularity Example? o Interference • Serial bus – “wired networks” o Asynchronous Hello.bus45.c • Important to understand and use: • #define node_id ‘0’ Great way to start this week: • Use a bus (connector) connecting more than two PCB boards • So this is a ‘wired’ way Why it’s called asynchronous? • Synchronous – the internal clock tells each/all components to when to do things • Asynchronous – you can set the clock timing o I^2C 필립스에서 개발한 직렬 버스이다. - Serial communication https://www.youtube.com/watch?v=6IAkYpmA1DQ #include Wire.beginTransmission (address); o SPI SPI = Serial Peripheral Interface SPI can save and communicate any file type (e.g. text, imgs) #include #include http://academy.cba.mit.edu/classes/networking_communications/SD/hello.uSD.D11C.mp4 • Is Konsol the same as Terminal? • Yes – the name differs depending on the operating system. o CAN o USB • OSI layers o OSI = Open Systems Interconnection • Physical media o capacity More power, more memory? Higher frequency, more power? o Wired Not carrying DC signals Waveguide? o Wireless • Modulation o D • Channel sharing = who gets to talk when o CSMA: o Is ‘channel sharing’ same as ‘channel connecting’? • Errors o A lot about error correction o Use that(that -> detection, block, parity, checksum, Hamming, etc. written in the fab academy website) when your communication is not reliable • Networking o “Request for Comments” -> shows that there’s no such thing as law that you have to obey on the internet. It’s rather only ‘recommended’ o The most important: the source and the destination addresses o IP addresses are like street addresses – streets to get to you o Port is a room within the building; IP is the building o TCP is a lot more complex than UDP UDP is like throwing a baseball (small, quick); TCP is like a series of baseballs (serial, longer, not urgent/does not have to be quick) o Socket Internet protocols o SLIP • RF = Radio Frequency o Radios o Antennas Accuracy in frequency, etc. that the radio can operate on o Single-chip *Real useful website: https://pub.pages.cba.mit.edu/ring/ o //Can Bluetooth devices be heartrate sensor? o //Serial communication for radio communication? Always? o //How come It becomes better and cheaper at the same time (over time)? o Software radio As the processors get faster, you can use software radio? Wire with an amplifier, connect it with radio and connect it to ADD? • Assignment: • Book Recommendation on network: o https://www.amazon.com/Computer-Networks-Andrew-S-Tanenbaum-ebook/dp/B006Y1BKGC 14.1. Participate in the group assignment project:¶ Link to week 14 group assignment (Update on my final project: ) 14.2. "Design" wired or wireless node(s) with network or bus addresses:¶ This week, I chose WIFI :) which means I had to use ESP8266 family! It was my first time using this component. I was both excited and scared at the same time - I did not want to trouble shoot for a long time; I wanted easier option. Nevertheless, I knew I had to use wifi because my final project is mainly about a system of interactions through a wifi (IoT) network. In the beginning, I was not sure what a great workflow would look like. To flip this inner confusion, I decided to download the data sheet of an ESP. While searching for the data sheet, I realized that I would have to compare at least two different ESPs, so that I can choose the best or right one for my purpose (which is wifi networking). I compared ESP-01 and ESP-12E. Then I summarized what I discovered in the process in a table: I chose ESP-12e :) Say hi to my esp of the week 14! To get started, I wanted to see it working. So, after the workshop on Friday, I found this tutorial that uses a breadboard and wires to program an esp8266-12e: Then I simply followed through the tutorial without knowing anything at all first. The tutorial also had a blog post that showed a diagram of the pin connections. At first I tried to upload the Arduino Example codes. I used three of them: 1) WifiClientBasic, 2) WifiScan, and 3) WifiAccessPoint. Then i got an error that said arduino could not upload the code to my esp8266-12e. I spend a short time looking into this error. I rather decided to cut my own ESP PCB board. I cut my board: While I was soldering this board (I tried both lead-free solder and normal(?) solder), I had an allergy reaction starting from my nose to head. So I stopped soldering and went home to find a medicine that I usually take when I have this typical nasal allergy. Was sad because I liked my workflow this week, and this allergy affected my condition and I had to take quite a long time to recover from it. (runny nose for half a day, headache for around a day, skin sensitivity(cheeks) for one or two days) I could not find any similar situation from the past years. Therefore, after having conversations with the instructor, we have decided that it would be for the better if I prepare a well-cut pcv board and arrange time with the instructor, so that he can solder it for me without causing any messiness to his schedules. This board later became a first version -- I'm implying that I had to change one or two parts of this design and cut an updated one. I will talk about the issues that I faced in the section 14.7 at the bottom of this page :) The three pictures below show my final sch, layout, and footprints: The picture below shows my final ESP-12E PCV cut board: The photo below shows my tears (meaning effort) of the week 14. Key takeaways from this process: 1. There are two options for making a new ESP board(s): (1) First, you can cut a new board with an esp, without any sensor. (2) Second, you can cut a new sensor board (either input or output device), and another board with ESP and TX&RX. For the second option, it is better to put a regulator on the ESP board, because even when your sensor board happens to not have a regulator (from 5V to 3.3V; ESP can hold upto 3.3V only, not bigger than 3.3V), you can calm down and just plug in the esp board because you already have a regulator on the esp board. I personally chose the second option because I wanted to try wifi communication using all my sensor boards that I have made up until now. (heatrate, speaker, LED, flex sensors) 2. "Voltage Divider" should be used when you layout/structure resistors in your sch board.: 3. Power Supply -- your ESP board needs a power supply: Connecting to a sensor board or another board WILL NOT guarantee enough/correct power supply voltage. For example, USB power supply can give 1/2 amps (500 milli amps), and my esp (ESP-12e) needs more than 1/2 amps. Therefore, in my case, I decided to use a D.C. adapter for my power supply for my esp board. 4. Need a minimum of 2 switches: The MCU's that I've used so far have interal 'switch functions'. However, ESP family does not have this function internally, so I had to add switches -- one "flash" for programming, and the other one "reset" for literally resetting. 5. : 14.3. "Build" wired or wireless node(s) with network or bus addresses:¶ 14.4. "Connect" wired or wireless node(s) with network or bus addresses ++ Programming process:¶ This is the workflow for making my esp boards (each of them connected to a sensor board through wires) communicate with one another through WIFI. The photos below show the setup information, as well as arduino libraries that I already searched and downloaded beforehand. I also learned how I could find out IP addresses of a website. The photo below shows how I can also know the IP address of the network that my laptop is connected to. 14.5. Document what you have learned from implementing networking and/or communication protocols:¶ > 14.6. Trouble shooting along the way: HI TROUBLE!!!:¶ Problem 1 (Regulator Selection) Another issue related to regulator selection: Problem 1 -- Solution: Problem 2 (An Error on Schemetic) Problem 2 -- Solution: Problem 3 (Another Error on Schemetic) Problem 3 -- Solution: Problem 4 (Voltage Divider) Problem 4 -- Solution: Q. Difference between voltage and MOSFET? A. MOSFET can work with multiple values of voltage while voltage divider cannot. Also, MOSFET is less faster than voltage divider. Additionally, Voltage divider only works for 5V voltage. Problem 5 (Understanding 'switch choice') Problem 5 -- Solution: Problem 6 (Use of Diode) Problem 6 -- Solution: Apparently, diode is really useful for making sure the electrical current flows in one direction. It prevents any noise or bi-directional electrical conflict, and others. > 14.7. Upload design files and original codes:¶ 14.8. The Fun Discoveries of The Week, && the Questions of the Week 14:¶ *I usually use this space for literally making a small note about from discoveries related to engineering and learning in general to the interesting, specific company/innovator-related information. This week was mentally challenging for me and a lot of my classmates, and I personally think the root cause was a lack of communication, as well as miscommunication. 14.9. Hi Neil -- I watched Neil's talks and interviews:¶ Video 1: Video 2: Video 3: