Как я могу получить данные датчика из Arduino / ESP32 в MATLAB? - PullRequest
0 голосов
/ 13 июля 2020

Я делаю последний проект для своей школы, используя два датчика, подключенных к ESP32, в качестве микроконтроллера и точки доступа. Я хочу отправить показание датчика из ESP32 по протоколу TCP / IP и получить его в MATLAB. Проблема в том, что я не знаю как, например, у меня даже нет кода, над которым я работал, и я не могу найти никаких ссылок, которые помогли бы мне решить эту проблему. Когда я нажимаю кнопку «Запустить» в своем коде Matlab, ESP32 обнаружил клиента, но показания не отображаются. Сейчас я использую randomSeed в качестве показания датчика. Кто-нибудь может мне помочь?

Это код Arduino:

#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiAP.h>

const char *ssid = "ESP32 AP";
const char *password = "";

WiFiServer server(80);

//float emg1 = 34
//float emg2 = 35

unsigned long to=0;

void setup() {

  Serial.begin(115200);
  Serial.println();
  Serial.println("Configuring access point...");

  // You can remove the password parameter if you want the AP to be open.
  WiFi.softAP(ssid);
  Serial.print("AP IP address: ");
  Serial.println(WiFi.softAPIP());
  server.begin();

  Serial.println("Server started");

  randomSeed(analogRead(34));
}

void loop() {
  WiFiClient client = server.available();  

  if (client) {                             
    Serial.println("New Client!");         
    //String currentLine = "";               
    while (client.connected()) {           
      if (client.available()) {
        //char c=client.read();
        //if(c != 'stop'){
          //while(micros()>to+1000){
            //to=micros();
            int val1 = random(0,50);
            int val2 = random(51,100);
            Serial.print("val1 = ");
            Serial.print(val1);
            client.print(val1);
            Serial.print(" val2 = ");
            Serial.println(val2);
          //}
        //}
      }
    }
  }
}

Это код Matlab:

s=tcpip('192.168.4.1',80,'NetworkRole','client')
fopen(s);
data=fread(s);
...