Виктор_1966
New member
Доброго времени суть проэкта такова есть модуль ESP-12 и 16 портовый шим, управление из программы Roboremo .
Получаю строку которую "servo=3251" нужно разложить на 2 переменные "servo" это команда
число это данные команды.
Не кидайте тапками занимаюсь программированием недавно вот учусь на игрушках ))
скетч прилагаю что работает :
Получаю строку которую "servo=3251" нужно разложить на 2 переменные "servo" это команда
число это данные команды.
Не кидайте тапками занимаюсь программированием недавно вот учусь на игрушках ))
скетч прилагаю что работает :
Код:
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
const char *ssid = "LEBHHER"; // логин сети
const char *password = "12345678"; // пароль сети
IPAddress ip(192, 168, 4, 1); // Ip адресс сети
IPAddress netmask(255, 255, 255, 0); // маска сети
const int port = 80; // порт
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
#define Smin 200 // this is the 'minimum' pulse length count (out of 4096)
#define Smax 400 // this is the 'maximum' pulse length count (out of 4096)
WiFiServer server(port);
WiFiClient client;
char cmd[20];
int cmdIndex;
unsigned long lastCmdTime = 60000;
unsigned long aliveSentTime = 0;
void setup() {
delay(1000);
Serial.begin(115200);
WiFi.softAPConfig(ip, ip, netmask);
WiFi.softAP(ssid, password);
server.begin();
Serial.println("ESP8266 RC receiver 1.1 powered by RoboRemo");
Serial.println((String)"SSID: " + ssid + " PASS: " + password);
Serial.println((String)"RoboRemo app must connect to " + ip.toString() + ":" + port);
pwm.begin();
pwm.setPWMFreq(50);
cmdIndex = 0;
}
void loop() {
if(!client.connected()) {
client = server.available();
return;
}
if(client.available()) {
char c = client.read();
if(c=='\n') { cmd[cmdIndex] = 0; cmdIndex = 0; }
else { cmd[cmdIndex] = c;
if(cmdIndex<19) cmdIndex++; }
Serial.println(cmd);
}
/*if(millis() - aliveSentTime > 500) { // отправка сигнала 'ON' при соединении с RoboRemo
client.write("alive 1\n"); // (для светодиода должен быть установлен id "alive")
aliveSentTime = millis(); // если соединение потеряно сигнал будет 'OFF'
}**/
}