Matija Tiosavljevic 2020/0417
Dependencies: Adafruit_GFX 19E042PIM_MB_PINS
Diff: main.cpp
- 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); }