Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:iot-open:practical:hardware:sut:stm32:iot_1 [2024/04/25 20:25] – [Steps] ktokarzen:iot-open:practical:hardware:sut:stm32:iot_1 [2024/04/27 08:15] (current) – [Result validation] ktokarz
Line 46: Line 46:
 </code> </code>
  
 +Declare two variables with the strings to be compared with the responses from the WiFi module.
 +<code c>
 +String compOK;
 +String compERROR;
 +</code>
 === Step 2 === === Step 2 ===
-In the Setup() function initialise the serial port and display.+In the Setup() function initialise the serial portdisplay, and strings.
 <code c> <code c>
-    WiFiSerial.begin(115200); +WiFiSerial.begin(115200); 
-    lcd.begin(16, 2);+lcd.begin(16, 2)
 +compOK = "OK"; 
 +compERROR = "ERROR";
 </code> </code>
  
-Use the code template from  +We will use the code template from [[en:iot-open:practical:hardware:sut:stm32:IoT_AT]] to communicate with the WiFi module. The first command we will send "AT" to confirm that everything works properly: 
-==== Result validation ==== +<code c> 
-Using another node should change the MAC readBook another device and discover its MAC.+WiFiSerial.println("AT"); 
 +lcd.setCursor(0,0); 
 +lcd.print("AT              "); 
 +do { 
 +  response WiFiSerial.readStringUntil(0x0A); 
 +  lcd.setCursor(0,1); 
 +  lcd.print(response); 
 +} while (!(response.startsWith(compOK)));
  
-===== FAQ ===== +delay(1000); 
-**Can I change MAC?**: Actually, yes, you can. It is not advised, however, because you may accidentally generate an overlapping address that will collide with another device in the same network. You must first explicitly configure the ESP32 chip to work as an AP (Access Point, Server) or STA (WiFi Client) to do it. Sample stub code (for STA) may look as follows:+</code> 
 + 
 +The next command can be the "AT+CIPSTAMAC?" which returns the MAC address in the response message which looks like this:
 <code c> <code c>
-#include <WiFi.h> ++CIPSTAMAC:"84:fc:e6:88:63:d1" 
-#include <esp_wifi.h>+</code>
  
-uint8_t newMAC[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xCA, 0xFE}; //Array of bytes with new MAC +We can implement the part of displaying the MAC by repeating the block of the code similar to the one presented above with two modifications. Change the "AT" command, and add inside the code the following lines: 
-void setup() +<code c> 
-+if (response.startsWith("+CIPSTAMAC")) { 
-  WiFi.mode(WIFI_STA); +  response.remove(0,12); 
-  esp_wifi_set_mac(WIFI_IF_STA&newMAC[0]);+  lcd.setCursor(0,0); 
 +  lcd.print(response);
 } }
 </code> </code>
 +==== Result validation ====
 +You should be able to see the MAC address of the ESP32-C3 module.
 +<note>
 +Using another node should change the MAC read. Book another device and discover its MAC.
 +</note>
 +<note info>
 +Because LCD can't properly display some non-visible characters the presented code sometimes shows additional, non-letter characters. It is out of the scope of this scenario to filter these characters out. We leave the task of making visual improvements to your invention.
 +</note>
 +===== FAQ =====
 +**Can I change MAC?**: Actually, yes, you can. It is not advised, however, because you may accidentally generate an overlapping address that will collide with another device in the same network.
  
 <WRAP noprint> <WRAP noprint>
en/iot-open/practical/hardware/sut/stm32/iot_1.1714076748.txt.gz · Last modified: 2024/04/25 20:25 by ktokarz
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0