Как подключить Wi-Fi Raspberry Pi для управления Arduino?

8

У меня есть Arduino Uno, который должен ответить на приложение iOS с Интернетом, являющимся средой. Мой первоначальный план состоял в том, чтобы использовать щит Wi-Fi для Arduino, но так как я не могу получить его в настоящее время, я подумал, что я мог бы просто использовать Raspberry Pi, который подключен к Интернету, чтобы управлять Arduino. Я предполагаю, что это возможно?

Мне нужно, чтобы Raspberry Pi отвечал на веб-сервер и посылал сигнал на Arduino. Возможно ли это, и если да, может ли кто-нибудь дать мне несколько советов о том, как это сделать?

Байрон Шилли
источник

Ответы:

3

Я сейчас работаю над похожим проектом. Это простой R / C Car. Я был в той же лодке, что и вы, я изначально хотел щит Wi-Fi для моего Arduino. Но я остановился на использовании Raspberry Pi, подключенного к моему мега 2560 через USB. Вы должны посмотреть на запуск протокола Firmata на вашем Arduino. Он поставляется с Arduino IDE. Просто зайдите в File-> examples-> Firmata и загрузите StandardFirmata на свою доску.

Следующим шагом я запустил веб-сервер node.js с пакетами узлов firmata и socket.io. Недавно я начал экспериментировать с пакетом johnny-пять node.js. Просто потому, что я немного новичок, когда дело доходит до программирования на node.js, и у меня возникли проблемы с тем, чтобы заставить его работать правильно только с пакетом узлов Firmata. Джонни-пять кажется многообещающим, и мне повезло с этим, но мой код все еще в разработке. Я опубликую ссылку на мою страницу GitHub, чтобы вы могли по крайней мере иметь ссылку (motor_test.js и motor_test.html, просто имейте в виду, это все еще не работающий код. Я успешно смог управлять светодиодом, но двигатели другая история. Если у меня сегодня будет время, я опубликую свой код на моем рабочем светодиодном контроле через проект node.js.

В любом случае, я знаю, что не смогу предоставить вам полностью работающее решение, но надеюсь, что это, по крайней мере, заставит вас двигаться в правильном направлении. Не стесняйтесь, пишите мне в любое время (messyfresh@gmail.com). Я хотел бы помочь больше, чем смогу.

Вот ссылки. Просто гуглите их. Я не могу опубликовать более 2 ссылок.
Установите Node.js на RPi ( http://joshondesign.com/2013/10/23/noderpi )
Моя страница github ( https://github.com/messyfresh/pi_rc )
Firmata
Node.js (я нашел лучшую версию для используется с socket.io и firmata - 0.8.2x)
Socket.io
Node.js Firmata
Johnny-Five Node.js

messyfresh
источник
3

Я совсем недавно сделал это с помощью node-serialport .

Следующая ссылка объясняет хорошую стратегию полного контроля над Arduino.

Редактировать: кто-то отредактировал и добавил ссылку для меня :)

Мое решение

Проверьте arduino / serial.ino, pi / server.js и pi / views / profile.ejs. Server.js открывает serialPort и сокет с profile.ejs. Когда что-то происходит с profile.ejs, оно вызывает serialPort.write (буфер, кодирование) в server.js;

По умолчанию, Arduino Uno сбрасывается при открытии последовательного соединения. Если вы попытаетесь отправить данные без ожидания в течение одной или двух секунд после открытия последовательного соединения, произойдет сбой. Я обнаружил, что эта проблема решилась сама собой, когда мне потребовалось взаимодействие с человеком для запуска serialport.write (). Другое решение может быть найдено путем поиска в Google DisablingAutoResetOnSerialConnection.

Надеюсь это поможет!

@ bobbyg603

bobbyg603
источник
Вы должны добавить в свои комментарии, на какой проект github вы ссылаетесь, тогда можно посмотреть на OP
kolin
3

Простейшим способом будет использование аппаратного UART ( сначала отключите консоль на Pi ) на обоих устройствах. При настройке в 115 килобайт вы можете передавать множество текстовых данных, таких как JSON, но даже двоичные данные, такие как zips, могут обрабатываться jpgs. Рекомендуется начинать с более низких скоростей, поскольку в некоторых библиотеках возникают проблемы при более высоких скоростях.

Затем вы можете написать обертки для Pi на любой вкус: C, PHP, Java, .NET MONO, Perl или Python.

Это вариант для легкой библиотеки, которую вы можете создать самостоятельно, и есть множество статей о том, как это сделать на Arduino и Raspberry Pi.

Петр Кула
источник
1

Мы разработали небольшой демон php, который подключается и оборачивает демон remserial (Uart-to-TCP-Socket). Его можно легко расширить для выполнения дополнительных задач, таких как подключение к веб-серверу и отправка некоторых данных.

Демон поставляется в комплекте с полным веб-интерфейсом для управления платой, похожей на Arduino, под названием CoPiino.

Дайте мне знать, если вам нужна поддержка для извлечения демона.

Информацию о некоторых проектах можно найти здесь http://www.copiino.cc

tswaehn
источник