Arduino UNO передача с HC-SR04 по TCP/IP
- Войдите на сайт для отправки комментариев
Пнд, 24/09/2018 - 18:11
Всем привет!
Имеется Arduino UNO + Ethernet Shield W5100 + Ultrasonic HC-SR04
Задача: передавать хотя бы бинарные значения с ультрозвукового датчика.
Пока получается только передавать нули с датчика. И те напрямую через COM4
В какую сторону двигаться? Спасибо!
Скетч ниже:
// TCP сервер, возвращает полученные данные
#include <SPI.h>
#include <Ethernet.h>
#include <Ultrasonic.h>
// определяем конфигурацию сети
byte mac[] = {0xAE, 0xB2, 0x26, 0xE4, 0x4A, 0x5C}; // MAC-адрес
byte ip[] = {192, 168, 1, 10}; // IP-адрес
byte myDns[] = {192, 168, 1, 1}; // адрес DNS-сервера
byte gateway[] = {192, 168, 1, 1}; // адрес сетевого шлюза
byte subnet[] = {255, 255, 255, 0}; // маска подсети
Ultrasonic ultrasonic(12, 13);
EthernetServer server(2000); // создаем сервер, порт 2000
EthernetClient client; // объект клиент
boolean clientAlreadyConnected= false; // признак клиент уже подключен
void setup() {
Ethernet.begin(mac, ip, myDns, gateway, subnet); // инициализация контроллера
server.begin(); // включаем ожидание входящих соединений
Serial.begin(9600);
// Serial.print("Server address:");
// Serial.println(Ethernet.localIP()); // выводим IP-адрес контроллера
}
void loop() {
client = server.available(); // ожидаем объект клиент
if (client) {
// есть данные от клиента
if (clientAlreadyConnected == false) {
// сообщение о подключении
Serial.println("Client connected");
delay(1000);
client.println("Server ready"); // ответ клиенту
clientAlreadyConnected= true;
}
while(client.available() > 0) {
char chr = client.read(); // чтение символа
server.write(chr); // передача клиенту
Serial.write(chr);
}
}
Serial.println(ultrasonic.distanceRead());
delay(1000);
}
судя по скетчу ,у вас реализован обычный пример "echo" ,это когда то что клиент отправляет,он то и получает обратно с сервера.никакой передачи данных с датчика Ultrasonic HC-SR04 в TCP/IP нет.
если в Serial Monitor от датчика одни нули,проверьте правильность соеденения датчика ултразвука и Уно а так же,что это соединение соответствует пинам в скетче Ultrasonic ultrasonic(12, 13);
Так же у вас не описан случай когда clientAlreadyConnected принимает значение false. После того как было true, если клиент отключился.
Первый вопрос тут должен быть таким - с какой целью пост размещен в проектах?
В целом михаил прав - скетч не совпадает со словесным описанием. Но, самая большая проблема даже не в этом.
Задача: принимать движение объекта и передавать данные в TouchDesigner. Данные могут быть в рамках от 0 и до предела датчика.
Изменение запускет анимацию и выключает ее. То есть работает на зпуск тригера.
Мой первый скетч ()((
Пытался как мог. Буду рад, если вы меня направите.
Работал по этому гайду: http://mypractic.ru/urok-64-tcp-server-i-klient-na-arduino-biblioteka-uipethernet.html