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