Welcome to Hackster!
Hackster is a community dedicated to learning hardware, from beginner to pro. Join us, it's free!
Georgi Angelov
Published

LTE NB Arduino for Quectel BC66

The world's first real Arduino core for LTE IoT CAT/NB ( Quectel BC66 )

BeginnerProtip3,815
LTE NB Arduino for Quectel BC66

Things used in this project

Hardware components

mt Quectel BC66
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Custom parts and enclosures

with PlatformIO

Schematics

Arduino

Code

Simple MQTT

Arduino
#include <Arduino.h>
#include <nbClient.h>

/*
    Install Library:
    PubSubClient by Nick O'Leary
    https://github.com/knolleary
*/

#include <PubSubClient.h> // 

nbClient tcp;
IPAddress server(0, 0, 0, 0); // your mqtt broker

void callback(char *topic, byte *payload, unsigned int length)
{
  Serial.printf("[RECEIVE] (%s) %.*s\n", topic, length, payload);
}

PubSubClient client(server, 1883, callback, tcp);

void mqtt_setup()
{
  Serial.println("Test MQTT");
  if (client.connect("arduinoClient", "user", "pass"))
  {
    client.publish("outTopic", "hello world");
    Serial.println("publish...");
    client.subscribe("inTopic");
    Serial.println("subscribe...");
  }
}

void setup()
{
  String imei;
  Dev.noSleep();
  Serial.begin(115200);
  Serial.printf("Arduino %s\n", Dev.getVersion());
  pinMode(LED, OUTPUT);
  Dev.getImei(imei);
  Serial.printf("IMEI %s\n", imei.c_str());
  Dev.waitSimReady();
  Serial.println("Sim Ready");
  Dev.waitCereg();
  delay(200); // must
  Serial.println("Net Ready");
  mqtt_setup();
}

void loop()
{
  static int led = 0, cnt = 0;
  if (++cnt % 50 == 0)
  {
    digitalWrite(LED, ++led & 1);
    //Serial.print(".");
  }
  client.loop();
}

/*
  Arduino BC66NBR01A04
  IMEI 867997030026081
  Sim Ready
  Net Ready
  Test MQTT
  publish...
  subscribe...
  [RECEIVE] (inTopic) Hello World
  [RECEIVE] (inTopic) Test 1234
*/

Credits

Georgi Angelov
11 projects • 16 followers
Contact

Comments

Please log in or sign up to comment.