2017-01-19 3 views
0

Я знаю, что он недоволен отправкой вопросов без кода, но я застрял в течение нескольких дней, думая о том, как справиться с этой проблемой, и не может думать о решении.HTTP POST Данные из Arduino в базу данных Django

Моя установка такова:

  1. Arduino Mega ж/4G + GPS щит от Cooking Hacks

  2. Джанго Сервер создан с Python

  3. Postgresql базы данных

Поскольку экран 4G + GPS имеет возможность для команд HTTP, я хочу использовать HTTP POST, чтобы отправить данные GPS на мою Джанго сервер и хранить эту информацию в своей базе данных PostgreSQL. Еще одна вещь, о которой стоит помнить, это запуск тестового сервера Django на моем Localhost, поэтому мне нужно отправить POST на этот локальный хост.

Потому что я не отправляю через форму, и это не синхронно. Я действительно смущен тем, как сервер Django должен обрабатывать этот асинхронный POST. Это будет выглядеть следующим образом (я представляю себе):

Arduino (POST) -> Джанго сервер (Localhost) -> Postgresql Database

Так что у меня 2 вопроса:

1) В чтобы успешно отправить POST на мой локальный сервер Django, должен ли мой хост быть моим открытым IP-адресом маршрутизатора, а порт - тем же, что и на моем сервере? Есть ли что-то еще, что мне не хватает?

2) Нужно ли использовать Django REST Framework для обработки запроса POST? если нет, как бы реализовать это в моих views.py?

Я пытаюсь получить ориентир по проблеме, чтобы визуализировать, как это сделать. Мне НЕ нужны кодированные решения. Любая помощь по этому поводу была бы весьма признательна, и если у вас возникнут другие вопросы, я быстро отвечу.

+0

Если вам необходимо публиковать сообщения на локальном телефоне, телефон и хост (сервер django) должны быть в одном и том же WiFi. Нет необходимости в системе отдыха. Сам Django может обрабатывать любые запросы. – itzMEonTV

+0

Я подключаюсь к серверу из 4G сотовых данных, а не Wi-Fi, поэтому я не на одном Wi-Fi. Поэтому я не уверен, что если мой хост является общедоступным маршрутизатором IP или нет? – mprouve

ответ

0

1) Зависит, если ваш ардуино находится в той же локальной сети, что и ваш сервер Django, тогда вам не нужен общедоступный IP-адрес, иначе вам придется переслать свой порт IP-порта Django IP &, чтобы он был доступен из Интернета.

2) Не совсем, вы можете сделать традиционный запрос POST к нормальному виду Django.

+0

Спасибо, что ответили так быстро. Я хочу, чтобы мой Arduino был POSTing из-за пределов моей частной сети, поэтому мне, скорее всего, придется сделать доступным IP-адрес и порт, однако, не следует пересылать только порты для TCP/UDP?В противном случае я не знаю, как сделать их доступными для общественности. – mprouve

+0

Да, вы можете настроить маршрутизатор для пересылки некоторых портов на конкретный компьютер внутри вашей сети или вы можете подключить свой сервер к провайдеру облака, например [pythonanywhere] (https: //www.pythonanywhere.com/), который предоставит вам доступный IP-адрес или домен. –