Arduino Project Hub
Project showcase

MKR1000 Message of the Day © GPL3+

Use Arduino MKR1000 and a LCD to set the message of the day.

  • 427 views
  • 0 comments
  • 1 respect

Components and supplies

Apps and online services

About this project

I wanted to display text on an LCD screen with the MKR1000. I wrote a simple sketch that subscribes to a topic from my own Mosquitto server and updates the screen with on the data it receives.

You can update the screen using your phone or your laptop, all you need is a MQTT client. Setting up your own Mosquitto server is a little harder and I won't be covering this, you could use Arduino Cloud as an alternative.

Wiring

To wire the LCD just search for the UNO wiring and invert pin 11 with pin 4.

Code

SKETCHC/C++
// include the library code:
#include <LiquidCrystal.h>
#include <PubSubClient.h>
#include <WiFi101.h>


// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 4, 5, 11, 3, 2);

// Network settings
char ssid[] = "iPhone";     //  your network SSID (name)
char pass[] = "xxxxxx";  // your network password

// Server settings
char * server  = "yerr server";
const int port = 8883; // Need to add certificates via Firmware Updater

// MQTT settings
char * client_id     = "arduino_mkr1000"; // your thing name
char * mqtt_username = "user"; // your mqtt username, null if not used
char * mqtt_password = "pass"; // your mqtt password, null if not use
char * topic0        = "motd";
int status = WL_IDLE_STATUS;     // the Wifi radio's status

// Client settings
WiFiSSLClient sslClient;
PubSubClient client(sslClient);

void setup() {
  Serial.begin(115200);
  while (!Serial);
  // set up the LCD's number of columns and rows:

  // Print MOTD
  lcd.begin(16, 2);
  lcd.print("      MOTD");


  Serial.println("Initializing");
  Serial.println(WiFi.status());
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue:
    while (true);
  }

  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to WPA SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network:
    status = WiFi.begin(ssid, pass);
  }

  // you're connected now, so print out the data:
  Serial.println("You're connected to the network");
 
  client.setServer(server, port);
  client.setCallback(on_message);



  // Allow the hardware to sort itself out
  delay(1500);
}

void on_message(char* topic, byte* payload, unsigned int length) {
    Serial.print("Got message: ");
    String message;
    for (int i = 0; i < length; ++i) {
      Serial.print( (char)payload[i] );
      message += (char)payload[i];
    }
    Serial.print(" length: ");
    
    Serial.println(length);
    if ( length <= 16 ) {
      lcd.clear();
      lcd.begin(16, 2);
      lcd.print("      MOTD");
      lcd.setCursor(0,1);
      lcd.print(message);
    }
}

void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection: ");
    // Attempt to connect
    if (client.connect(client_id, mqtt_username, mqtt_password)) {
      Serial.println("connected");
      subscribeAll();
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      // Wait 5 seconds before retrying
      delay(5000);
    }
  }
}

void subscribeAll() {
  // Subscribe to all topics here.
  client.subscribe(topic0);
  Serial.println("Subscribing to topics..");
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();
}

Comments

Similar projects you might like

Arduino 101 - Intel Curie Pattern Matching Dress

Project tutorial by Kitty Yeung

  • 2,345 views
  • 11 comments
  • 22 respects

Arduino Morse Code Machine

Project tutorial by Vlada Krsmanovic

  • 886 views
  • 0 comments
  • 12 respects

Arduino Laser Tripwire

Project tutorial by Ian Cumming

  • 2,916 views
  • 2 comments
  • 20 respects

PlatformIO for Visual Studio Code

by formulahendry

  • 1,073 views
  • 0 comments
  • 9 respects

Chug Meter for St. Patrick's Day by Circuito.io

Project tutorial by circuito.io team

  • 2,043 views
  • 2 comments
  • 11 respects

Smart Home Sensor Node

Project tutorial by vincent wong

  • 1,055 views
  • 0 comments
  • 6 respects
Add projectSign up / Login