Project showcase

MKR1000 Message of the Day © GPL3+

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

  • 543 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

Retro Nokia Snake Game with Arduino

Project tutorial by circuito.io team

  • 2,492 views
  • 2 comments
  • 19 respects

Arduino Memory Game

Project showcase by MakerRobotics

  • 567 views
  • 0 comments
  • 15 respects

Play Music With Your Remote

Project tutorial by Simone Adobs

  • 403 views
  • 8 comments
  • 3 respects

Arduino - Web-Based MP3 Player

Project tutorial by khanhhs

  • 1,845 views
  • 0 comments
  • 9 respects

Arduino Radar - Version 2.0

by MakerRobotics

  • 773 views
  • 8 comments
  • 15 respects

Arduino Dynamic Web Control

Project tutorial by phpoc_man

  • 14,890 views
  • 11 comments
  • 58 respects
Add projectSign up / Login