Test 3 2020/0690

Dependencies:   Adafruit_GFX 19E042PIM_MB_PINS

Committer:
milant
Date:
Sat Dec 11 16:23:52 2021 +0000
Revision:
0:380913e3e77e
Test 3 2020/0690

Who changed what in which revision?

UserRevisionLine numberNew contents of line
milant 0:380913e3e77e 1 // Importing libraries
milant 0:380913e3e77e 2 #include "mb_pins.h"
milant 0:380913e3e77e 3 #include "mbed.h"
milant 0:380913e3e77e 4 #include "platform/mbed_thread.h"
milant 0:380913e3e77e 5 #include "MQTTClientMbedOs.h"
milant 0:380913e3e77e 6 #include "Adafruit_GFX.h"
milant 0:380913e3e77e 7 #include "Adafruit_GFX_Config.h"
milant 0:380913e3e77e 8 #include "Adafruit_SSD1306.h"
milant 0:380913e3e77e 9
milant 0:380913e3e77e 10 // Macros
milant 0:380913e3e77e 11 #define WAIT_MS 10
milant 0:380913e3e77e 12
milant 0:380913e3e77e 13 // I2C Macros
milant 0:380913e3e77e 14 #define I2C_ADDRESS 0x3c
milant 0:380913e3e77e 15 #define I2C_ADD_MBED I2C_ADDRESS << 1
milant 0:380913e3e77e 16 // OLED Macros
milant 0:380913e3e77e 17 #define OLED_HEIGHT_PX 64
milant 0:380913e3e77e 18 #define OLED_WIDTH_PX 128
milant 0:380913e3e77e 19
milant 0:380913e3e77e 20
milant 0:380913e3e77e 21 TCPSocket socket;
milant 0:380913e3e77e 22 MQTTClient client(&socket);
milant 0:380913e3e77e 23 MQTT::Message message;
milant 0:380913e3e77e 24 WiFiInterface *wifi;
milant 0:380913e3e77e 25
milant 0:380913e3e77e 26 I2C i2c_obj(MB_OLED_SDA, MB_OLED_SCL);
milant 0:380913e3e77e 27 Adafruit_SSD1306_I2c myOLED(i2c_obj, PB_5, I2C_ADD_MBED, OLED_HEIGHT_PX, OLED_WIDTH_PX);
milant 0:380913e3e77e 28
milant 0:380913e3e77e 29 char* topic = "pubpim";
milant 0:380913e3e77e 30 char* topic_sub = "subpim";
milant 0:380913e3e77e 31 const char* hostname = "broker.hivemq.com";
milant 0:380913e3e77e 32 int port = 1883;
milant 0:380913e3e77e 33
milant 0:380913e3e77e 34 void messageArrived(MQTT::MessageData& md)
milant 0:380913e3e77e 35 {
milant 0:380913e3e77e 36 MQTT::Message &message = md.message;
milant 0:380913e3e77e 37 printf("Browser message: %.*s \n", message.payloadlen, (char*)message.payload);
milant 0:380913e3e77e 38
milant 0:380913e3e77e 39 myOLED.clearDisplay();
milant 0:380913e3e77e 40 myOLED.setTextCursor(0, 0);
milant 0:380913e3e77e 41 myOLED.printf("%.*s \r", message.payloadlen, (char*)message.payload);
milant 0:380913e3e77e 42 myOLED.display();
milant 0:380913e3e77e 43 }
milant 0:380913e3e77e 44
milant 0:380913e3e77e 45 int main()
milant 0:380913e3e77e 46 {
milant 0:380913e3e77e 47 wifi = WiFiInterface::get_default_instance();
milant 0:380913e3e77e 48
milant 0:380913e3e77e 49 printf("Connecting to %s... \n",MBED_CONF_APP_WIFI_SSID);
milant 0:380913e3e77e 50 int ret = wifi->connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
milant 0:380913e3e77e 51 if(ret != 0){
milant 0:380913e3e77e 52 printf("Greska u povezivanju");
milant 0:380913e3e77e 53 return -1;
milant 0:380913e3e77e 54 }
milant 0:380913e3e77e 55 printf("Success!\n");
milant 0:380913e3e77e 56
milant 0:380913e3e77e 57 socket.open(wifi);
milant 0:380913e3e77e 58 socket.connect(hostname,port);
milant 0:380913e3e77e 59
milant 0:380913e3e77e 60 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
milant 0:380913e3e77e 61 data.MQTTVersion = 3;
milant 0:380913e3e77e 62 data.clientID.cstring = "pim";
milant 0:380913e3e77e 63
milant 0:380913e3e77e 64 client.connect(data);
milant 0:380913e3e77e 65 client.subscribe(topic_sub, MQTT::QOS0, messageArrived);
milant 0:380913e3e77e 66
milant 0:380913e3e77e 67 myOLED.begin();
milant 0:380913e3e77e 68 i2c_obj.frequency(400000);
milant 0:380913e3e77e 69
milant 0:380913e3e77e 70 myOLED.clearDisplay();
milant 0:380913e3e77e 71 myOLED.display();
milant 0:380913e3e77e 72
milant 0:380913e3e77e 73
milant 0:380913e3e77e 74 while(1) {
milant 0:380913e3e77e 75 thread_sleep_for(WAIT_MS);
milant 0:380913e3e77e 76 client.yield(1000);
milant 0:380913e3e77e 77 }
milant 0:380913e3e77e 78 }