Matija Tiosavljevic 2020/0417

Dependencies:   Adafruit_GFX 19E042PIM_MB_PINS

Revision:
1:d65b573b6340
Parent:
0:82908a60b720
--- a/main.cpp	Fri Dec 10 18:13:38 2021 +0000
+++ b/main.cpp	Sat Dec 11 16:19:57 2021 +0000
@@ -7,47 +7,37 @@
 #include "Adafruit_GFX_Config.h"
 #include "Adafruit_SSD1306.h"
 
-///////////////////////////////////////////////////////////////
-
 #define SMALL_WAIT_MS 10
-
-//I2C adress
 #define I2C_ADDRESS         0x3c
 #define I2C_ADD_MBED    I2C_ADDRESS << 1
-
-//OLED DIMENSIONS
 #define OLED_HEIGHT_PX 64
 #define OLED_WIDTH_PX 128
-
-///////////////////////////////////////////////////////////////
+#define VOLTAGE_SCALER 3.3f
 
 TCPSocket socket;
 MQTTClient client(&socket);
 MQTT::Message message;
 WiFiInterface *wifi;
+AnalogIn pot1(MB_POT1);
 
 I2C i2c_obj(MB_OLED_SDA, MB_OLED_SCL);
 Adafruit_SSD1306_I2c myOLED(i2c_obj, PB_5, I2C_ADD_MBED, OLED_HEIGHT_PX, OLED_WIDTH_PX);
 
-char* topic_sub = "mbed-sample-sub";
+char* topic = "pubpim";
+char* topic_sub = "subpim";
 const char* hostname = "broker.hivemq.com";
 int port = 1883;
 
-///////////////////////////////////////////////////////////////
 
 void messageArrived(MQTT::MessageData& md)
 {
     MQTT::Message &message = md.message;
     printf("Browser message: %.*s \n", message.payloadlen, (char*)message.payload);
-    
     myOLED.clearDisplay();
-    //myOLED.setTextCursor(0, 0);
     myOLED.printf("%.*s \r", message.payloadlen, (char*)message.payload);
     myOLED.display();
 }
 
-///////////////////////////////////////////////////////////////
-
 int main()
 {
     wifi = WiFiInterface::get_default_instance();
@@ -60,24 +50,33 @@
     }
     printf("Success\n");
     
+    
     socket.open(wifi);
     socket.connect(hostname,port);
     
     MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
     data.MQTTVersion = 3;
-    data.clientID.cstring = "Mustafa";
-
+    data.clientID.cstring = "pim-30";
+    
     client.connect(data);
     client.subscribe(topic_sub, MQTT::QOS0, messageArrived);
     
-    myOLED.begin(); //pocetak
-    i2c_obj.frequency(400000); //veca frekvencija slanja da ne bi ghostovalo
-    
+    myOLED.begin();
+    i2c_obj.frequency(400000);
     myOLED.clearDisplay();
     myOLED.display();
     
     
     while(1) {
+        char buf[100];
+        sprintf(buf, "V(POT1) = %1.2f\r\n", pot1*VOLTAGE_SCALER);
+        wait(9);
+        message.qos = MQTT::QOS0;
+        message.retained = false;
+        message.dup = false;
+        message.payload = (void*)buf;
+        message.payloadlen = strlen(buf)+1;
+        client.publish(topic, message);
         thread_sleep_for(SMALL_WAIT_MS);
         client.yield(1000);
     }