Нулевая разработка NBIOT

задняя часть Интернет вещей

предисловие

Библиотечные функции платы разработки ядра Shineblink (называемой Core) поддерживают функцию связи NBIOT, поэтому только несколько строк кода могут реализовать функцию сетевой связи (TCP, UDP, MQTT) на основе модуля M5311 NB. Здесь мы в основном представляем функцию реализации сетевого взаимодействия через TCP.Для получения дополнительной информации о TCP, UDP и MQTT-соединении посетите сайтshininblink.com.
在这里插入图片描述

Во-первых, эта процедура реализует функцию

Ядро устанавливает TCP-соединение с назначенным сервером через модуль NB-IOT M5311.Ядро отправляет пакет данных (5 байт) на сервер каждые 5 секунд, а сервер отправляет пакет данных (5 байт) на Ядро каждые 2 секунды.

2. Введение в функции TCP, предоставляемые Core

Core инкапсулировал операции TCP в три простые функции API: LIB_NbTcpConfig(), LIB_NbTcpRecv(), LIB_NbTcpSend(). Вам нужно только вызвать эти три API, чтобы удаленно подключить модуль NB-IOT к серверу, чтобы начать отправку и получение данных. И Ядро автоматически обработает ненормальную ситуацию в связи и попытается восстановить связь (например, tcp-соединение с сервером аварийно отключено, сеть ненормальна и т. Д.), Вы можете реализовать долгосрочную и стабильную онлайн общение модуля НБИОТ без учета этих сложных ситуаций.

3. Схема подключения

在这里插入图片描述

4. Список материалов

название Реферальная ссылка для покупки (или вы можете сделать свою собственную) Загрузка аппаратных данных модуля/чипа
Модуль M5311 ссылка на покупку(Модель модуля: полная версия Netcom M5311M11, без микроконтроллера, со стержневой антенной, выберите соответствующую карту IoT в соответствии с вашими фактическими потребностями) ссылка для скачивания

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

在这里插入图片描述

5. Полный код

Ядро устанавливает TCP-соединение с назначенным сервером через модуль NB-IOT M5311.Ядро отправляет пакет данных (5 байт) на сервер каждые 5 секунд, а сервер отправляет пакет данных (5 байт) на Ядро каждые 2 секунды.

--配置USB以虚拟串口模式工作,这样调用print()函数就会在电脑串口终端打印输出
LIB_UsbConfig("CDC")
--使能系统10毫秒定时器开始工作
LIB_10msTimerConfig("ENABLE")
--设置m5311 NB模块占用TX0、RX0、D5、D6引脚,TCP Client模式
--tcp服务器IP:"103.46.128.49" 端口号:28438
--心跳包间隔时间0秒(不使用心跳机制)。如果需要使用请在ApiDoc文档中查阅关于LIB_NbTcpConfig函数的p8参数详细介绍
LIB_NbTcpConfig("UART0","D5","HIGH","D6","HIGH","103.46.128.49",28438,0)

--变量初始化
cnt_10ms = 0
cnt1_10ms = 0
send_tab = {0x01,0x02,0x03,0x04,0x05} --需要发送给server端的数据

--定义10ms中断回调函数
function LIB_10msTimerCallback()
    cnt_10ms = cnt_10ms + 1
	cnt1_10ms = cnt1_10ms + 1
end

--开始大循环
while(GC(1) == true)
do
    --查询是否收到server下发的数据,如果收到就print输出收到的数据
    recv_flag,recv_tab = LIB_NbTcpRecv()
    if recv_flag == 1 then
        print(string.format("tcp client receive %d bytes", #recv_tab))
        for k,v in ipairs(recv_tab) do
            print(k,v)
        end
    end
	
    --每5秒发送一包数据给server
    if cnt_10ms >= 500 then  --5000ms
        cnt_10ms = 0
        LIB_NbTcpSend(send_tab)
    end
	
	--每12秒打印一次NBIOT模组信息(包含sim卡)
	--注意:这里只是为了演示,实际应用中您可以根据您的需求查询即可,不需要一直查询
    if cnt1_10ms >= 1200 then  --12000ms
        cnt1_10ms = 0
        State,IMEI,IMSI,ICCID,RSSI = LIB_NbStatusQuery()
		print(string.format("module state: %s", State))
		print(string.format("module IMEI: %s", IMEI))
		print(string.format("module IMSI: %s", IMSI))
		print(string.format("module ICCID: %s", ICCID))
		print(string.format("module RSSI: %d dBM", RSSI))
    end
end

Если интересно, библиотечные функции в начале LIB, появляющиеся в приведенном выше коде, можно найти вДокументация APIпрошедшийCtrl+FЗапрос.

результат выполнения кода

Если у вас нет собственного независимого IP-адреса сервера, мы можем запустить TCP-сервер локально на вашем собственном компьютере, а затем использовать инструмент проникновения в арахисовую оболочку внутренней сети, чтобы предоставить локальному TCP-серверу удаленно доступный общедоступный IP-адрес и номер порта. конкретный метод проникновения в сеть будет представлен в следующей главе. После настройки среды проникновения в интрасеть мы можем запустить "Помощник по отладке сети》Программное обеспечение для моделирования стороны сервера TCP для отладки.