inhabitat:kaunas:day02
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| inhabitat:kaunas:day02 [2026/05/29 09:01] – jan.sonntag | inhabitat:kaunas:day02 [2026/05/29 09:05] (current) – jan.sonntag | ||
|---|---|---|---|
| Line 21: | Line 21: | ||
| We are using the **DFRobot Analog Capacitive Soil Moisture Sensor**. | We are using the **DFRobot Analog Capacitive Soil Moisture Sensor**. | ||
| - | |||
| - | {{ : | ||
| - | <wrap em>📷 PLACEHOLDER — Insert a photo of the DFRobot capacitive soil moisture sensor here.</ | ||
| ===== 2. Connecting the Sensor to the DOIT ESP32 ===== | ===== 2. Connecting the Sensor to the DOIT ESP32 ===== | ||
| Line 40: | Line 37: | ||
| * Double-check GND is shared between the sensor and the board. | * Double-check GND is shared between the sensor and the board. | ||
| - | {{ :day2:wiring_diagram.png?500 |}} | + | <WRAP center round tip 60%> |
| - | <wrap em>📷 PLACEHOLDER — Insert | + | Here an example to connect to similiar MCU. Make sure to check the Pinout of your specific board! |
| + | </ | ||
| + | |||
| + | < | ||
| + | < | ||
| + | |||
| + | ===== 3. Reading the Sensor with the Serial Monitor ===== | ||
| + | |||
| + | Before we send data anywhere, we want to **see** it. The easiest way is the | ||
| + | **Serial Monitor**. | ||
| + | |||
| + | **Serial** is a way for the ESP32 to send text back to your computer over the | ||
| + | USB cable. By calling '' | ||
| + | '' | ||
| + | sensor readings to the screen in real time. This is incredibly useful for | ||
| + | checking that everything is wired correctly and that the numbers change when | ||
| + | you touch the sensor or place it in soil. | ||
| + | |||
| + | Open the Serial Monitor in PlatformIO and make sure the **baud rate matches** | ||
| + | the value you set in '' | ||
| + | |||
| + | <code cpp> | ||
| + | // PLACEHOLDER — Sensor reading code | ||
| + | // This should: | ||
| + | // - start Serial at the chosen baud rate in setup() | ||
| + | // - read the analog value from the sensor pin | ||
| + | // - print the value to the Serial Monitor in loop() | ||
| + | // - add a short delay so the output is readable | ||
| + | </ | ||
| + | |||
| + | Once uploaded, you should see numbers scrolling in the Serial Monitor. | ||
| + | Try touching the sensor or dipping it into soil/water — the value should change. | ||
| + | |||
| + | ===== 4. Connecting to WiFi ===== | ||
| + | |||
| + | Now that the board works on its own, let's get it online. The ESP32 has | ||
| + | built-in WiFi, so we just need to give it the **network name (SSID)** and | ||
| + | **password** of our workshop access point. | ||
| + | |||
| + | In '' | ||
| + | the connection succeeds. We can print the status to Serial so we know when | ||
| + | we're online. | ||
| + | |||
| + | <code cpp> | ||
| + | // PLACEHOLDER — WiFi connection code | ||
| + | // This should: | ||
| + | // - include the WiFi library | ||
| + | // - store the SSID and password | ||
| + | // - start the connection in setup() | ||
| + | // - wait until connected, printing progress to Serial | ||
| + | // - print the assigned IP address once connected | ||
| + | </ | ||
| + | |||
| + | When it works, the Serial Monitor will show that the ESP32 has joined the | ||
| + | network and received an IP address. | ||
| + | |||
| + | ===== 5. Introducing MQTT ===== | ||
| + | |||
| + | **MQTT** is a lightweight messaging protocol that is very popular in IoT. The | ||
| + | idea is simple: devices send (" | ||
| + | " | ||
| + | we will only **publish** — sending messages out. We will not subscribe. | ||
| + | |||
| + | {{pdfjs 500px>: | ||
| + | |||
| + | ===== 6. Publishing a Message to the Broker ===== | ||
| + | |||
| + | For our final step, we connect to the **MQTT broker** and send a single | ||
| + | message of **your choosing** — any text string you like, for example | ||
| + | ''" | ||
| + | |||
| + | * This is **not** the soil moisture value. That's a separate exercise. Here we are just proving we can talk to the broker by sending a simple string. | ||
| + | * We connect to the broker, then publish our chosen string to a **topic**. | ||
| + | |||
| + | <code cpp> | ||
| + | // PLACEHOLDER — MQTT publish code | ||
| + | // This should: | ||
| + | // - include the MQTT client library | ||
| + | // - set the broker address and port | ||
| + | // - connect to the broker in setup() (after WiFi is connected) | ||
| + | // - publish a single text string of your choosing to a topic | ||
| + | // - print confirmation to Serial | ||
| + | </ | ||
| + | |||
| + | Pick any message you want and send it. 🎉 | ||
| + | |||
| + | ===== Recap ===== | ||
| + | |||
| + | By the end of today you have: | ||
| + | * Learned how a capacitive soil moisture sensor works | ||
| + | * Wired it to the DOIT ESP32 | ||
| + | * Read its value in the Serial Monitor | ||
| + | * Connected the ESP32 to WiFi | ||
| + | * Learned the basics of MQTT | ||
| + | * Published your own message to the MQTT broker | ||
inhabitat/kaunas/day02.1780038117.txt.gz · Last modified: 2026/05/29 09:01 by jan.sonntag