Help with comms jargon please: where to find tuition?

Good afternoon and hello again forum,

After several months playing with Nanos and Unos I have started to play with an ESP8266 microcontroller. It is clear to me from reading others' posts that there is a large gap in my understanding about communications, whether by hard-wired connection or wi-fi.

I have a desire to build an ESP8266 project in order to further my knowledge in the area of wi-fi comms; perhaps simply reading a temperature, transmitting this to a PC or mobile phone via wi-fi, then remotely controlling the microcontroller's output from the PC and/or mobile.
In reading others' posts I have quickly become confused by the jargon in common use, and ask for some help in finding useful beginners' tutorials or articles that explain the 'mechanics' behind these (internet?) protocols, which to use for each situation, and why one is used over another. Perhaps there is a book called 'Internet/wireless comms for dummies' or similar?
Pointers to articles, books, or tutorials are very welcome, but please no You Tube videos, I find it very difficult to stay concentrated through those!

Regards, GM

You would be better off with ESP32 modules, the successor to the ESP8266. A complete introductory guide to ESP32 with many examples can be found at https://randomnerdtutorials.com/

Thank you. I have just seen a secondhand book 'Teach yourself TCP/IP in 24 hours' by Joe Casad (ISBN 9780672320859) at a good price. Should learning about TCP/IP be the right place to start, or should I be starting elsewhere...a pre-requisite to TCP/IP?

Randomnerdtutorials is next on my reading list...

I would not bother with TCP just now, it's too low level for what you're trying to do.

Find some examples of running a web page on an ESP and some more about web clients. That should get you started.

Thank you @wildbill. To illustrate my ignorance on this subject, I can't be sure of the difference between a web server and a server, nor a web socket. A tutorial on www.randomnerdtutorials.com makes the following statement...I've tried to indicate the words I'm unsure about:

This is a didactic tutorial where you’ll learn more about creating web pages and interaction between the ESP32 and the client. We’ll show you how to create the web page step-by-step with HTML and send the form results to the ESP32 via HTTP POST to control the stepper motor.

Later, you’ll add some CSS to style the web page to improve its look.

Finally, we’ll show you how to use Websockets for bidirectional communication between the server and the client. This will allow us to know on the web interface whether the motor is spinning or stopped. This section will add some JavaScript to handle WebSocket communication and add some cool animations to the web page.

I can look up didactic in the dictionary!

I suspect you are frustrated. Your desire is to move from simple to intermediate in a quantum leap; something I advise against. Not only are you moving up from 8-bit microcontroller to 32-bit architecture, you are adding WiFi and web-stuff to the complexity.

There is an entire ESP8266 forum for Arduino core and numerous examples. Example Sketches - Everything ESP8266

My suggestion is to document your current knowledge, old fashion paper, one line per your competent level. For example:

  • I can blink a LED
  • I can read a button, debounce, and show the button state on LED(s)
  • I can easily use the serial port, print the ASCII codes to console
    etc.

Now, the boring part, reconstruct your 8-bit sketches on the ESP8266. You need to be able to do any Nano/UNO on the ESP8266.

Then, pick out a few ESP8266 projects and replicate. Expand your knowledge. IMO, do not jump directly into complex web-stuff ... most likely you should be using the ESP32 for the more complex stuff anyway.

Good luck,

Ray

Let's see, I'm typing this on my Mac in a Safari browser. We're acting as a client connecting to a web server running the Arduino forums. There's web sockets under the covers but you need not care about that. The language that describes the page I'm viewing is HTML and if I do view source, my browser will show it to me, probably with a boatload of Javascript and CSS - you do not care about these either today. When I hit reply, what I typed will be POSTed back to the Arduino web server and saved to show to you later.

It's not all so clear cut though :wink:

A few feet away from me there is a PC running Linux. I could have done all this from there too, acting as a client. It's also a server though - it's running a database and a web server. I have a Pi in my dining room reading the temperature periodically. Acting as a client of the web server, it uses GET requests to send temperature data to a basic CGI web page that grabs the information and stores it in MySQL.

There are a few web pages there that let me use a browser (client) to view current conditions and history. I also want to know what the temperature is outside. I could pull an @Idahowalker and build a weather station or I could be lazy. What a dilemma.

So anyway, My Linux box (acting as a client) hits a web service providing JSON weather data, which I parse and save in my database so the web server can serve it up to any client machine in my house. I also scrape a NOAA page for the current conditions at my nearest airport and store those. That's mildly interesting because the NOAA data is actuals whereas the weather service data is forecast data from their models, even for conditions right now.

I think I also pull data (or try to) from the local RAF airfield nearest to my Dad's house.

No Javascript or CSS. Styling is basic tables and google charts.

None of this is especially hard, but there are lots of pieces. As ever with this stuff, find the smallest thing you can do and play with it. Build a pointless Hello world web page in HTML. You can find a gazillion tutorials and you can do it on your PC and just open the file from a browser. Then serve it up from your ESP. Then make the ESP show something (millis?) in the web page etc. etc.

You don't need to learn all this stuff up front, even though having some knowledge will help you debug it, but some of the stuff you're proposing to master is like taking a class in engine rebuilding, when all you want to do is drive to the supermarket to buy some potatoes.

1 Like

Thank you guys, I really do appreciate the comments, and you're right, I am trying to run before I can walk - but only because I didn't know that was the order expected of me.

Yes, I am frustrated, with a few exceptions most of the tutorials I try to follow throw the jargon about like confetti and the TLAs* come thick and fast. Add to this that some 'tutorials' seem to take the attitude of 'copy this code, download this app, put your wires here and, hey presto, you have achieved' with little or no explanation of what just happened nor why.

I do want to learn the detail, though I'm happy to do it at a snails pace, and delighted to be able to break down the task into easier-to-manage blocks first before diving into the detail of each block....but it's like a large jigsaw puzzle at the moment; once a few pieces are in place the progress should accelerate.

I'll do a few 'copy this' tutorials, then change some things to see what happens, hoping that with use the myriad of new words will somehow slip into place. I'll read the easy chapters in a few books, then one day the penny will drop.

  • TLA? - three letter acronym, of course.

GM

Hello, I had the same problems with Jargons regarding ESP8266; I suggest this website: A Beginner's Guide to the ESP8266

It helped me a lot Though this book has a steeper learning curve....

Thank-you. I'll have a read next week....at the moment the Tax Return has priority!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.