Как разместить сеть Wi-Fi на Arduino, получая соединение с SIM-карты?

Мы с другом работаем над проектом и столкнулись с проблемой. Мы попытались найти информацию, но, похоже, никто раньше не документировал нечто подобное.

По сути, мы хотим, чтобы один Arduino (мы думали, MKR NB 1500) в удаленном месте без какого-либо доступного соединения Wi-Fi (или Ethernet) мог размещать собственную сеть Wi-Fi. Мы думали, что наличие SIM-карты позволит ему взаимодействовать с нашим веб-сервером (API), и, к нашему удивлению, так оно и есть (ура)! Однако мы также хотим, чтобы люди, находящиеся рядом с Arduino, имели доступ к Интернету. Однако на этом мы и застряли...

Я знаю, что разместить точку доступа на Arduino с Wi-Fi возможно. Но может ли эта точка доступа связать пользователя с реальным Интернетом, который сам обеспечивается SIM-картой?

PS: Мы открыты для объединения двух разных плат Arduino (или более), чтобы это работало. Нам просто нужно иметь возможность перенести сеть SIM на точку доступа (по сути, точку доступа).

PPS: Мы также открыты для использования различных технологий, таких как контроллеры ESP... Мы просто не используем точку доступа сотовой связи из-за стоимости этих вещей и хотим сделать ее с помощью Arduino или других контроллеров.

, 👍1

Обсуждение

Сим-карта дает доступ к мобильным данным. Вы действительно хотите использовать мобильные данные для своего «Интернета»?, @Rohit Gupta

Это может быть полезно: https://www.iot-bots.com/products/qboard-a-arduino-mkr-совместимый-wifi-bt-ble-iot-controller, и если вы хотите расширить радиус действия вашего Wi- Сеть Fi дешевая, вы можете использовать эту библиотеку, она очень хорошо документирована: https://github.com/martin-ger/esp_wifi_repeater, @M A K

@RohitGupta Я понимаю, что это не идеально, но я не думал ни о чем другом, что могло бы сработать. Если бы у меня был что-то вроде тарифного плана на 1-2 ГБ в месяц по дешевой цене, то с ограниченной полосой пропускания, это могло бы сработать. Вы предлагаете что-то еще?, @loom

@MAK большое спасибо, похоже, это то, что я ищу. Я продолжу исследования и посмотрю, сможет ли этот щит связаться с МКР и установить его связь..., @loom


1 ответ


0

Объединение двух сетей на уровне TCP/IP осуществляется в стеке TCP/IP. Он преобразует адреса из одного сетевого интерфейса в другой сетевой интерфейс, но оба интерфейса обрабатываются одним и тем же стеком TCP/IP.

Примером MCU будет трансляция между esp8266 SoftAP и сетевым интерфейсом STA. Это два сетевых интерфейса, обрабатываемые одним стеком TCP/IP. И теперь esp8266 Arduino может использовать некоторые модули Ethernet в качестве дополнительных сетевых интерфейсов этого стека TCP/IP.

С MKR NB 1500 или любым другим (мобильным) сетевым модулем, подключенным к Arduino, вы не сможете использовать мостовое соединение, поскольку стек TCP/IP находится в прошивке модуля, а экран WiFi или Ethernet, который вы подключаете к MKR, будет в прошивке также есть собственный стек TCP/IP.

Если вы используете esp8266, esp32 или другой MCU, где стек TCP/IP работает в MCU, вы все равно не сможете заставить его работать вместе со стеком TCP/IP во внешнем модуле. Эти модули Ethernet, которые esp8266 может использовать в качестве сетевых интерфейсов со своим стеком TCP/IP, взаимодействуют на программном уровне, ближе к аппаратному, но модули мобильной сети используют AT-команды, не открывая доступ к нижним уровням.

Что вы можете сделать, так это проксировать некоторые сетевые службы, как я пишу в этом ответе.

,

Это неверно *Соединение двух сетей на уровне TCP/IP осуществляется с помощью протокола трансляции сетевых адресов IP (NAT).*. NAT — это решение для маршрутизации, а не мостовое соединение., @MatsK

@MatsK не является «мостовой» маршрутизацией?, @Juraj

Нет, мост находится на уровне 2, а маршрутизация — на уровне 3., @MatsK

@MatsK, ок. Я удалил упоминания о NAT, @Juraj