PMK_industrija_mikro4

Dependencies:   rohm-rpr0521 rohm-sensor-hal Servo TextLCD

Committer:
emilija
Date:
Mon Jul 05 12:57:49 2021 +0000
Revision:
1:c49ad58c141d
Parent:
0:c4a5143aeebc
PMK_INDUSTRIJA_MICRO4 VERZIJA2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilija 0:c4a5143aeebc 1 /* mbed Microcontroller Library
emilija 0:c4a5143aeebc 2 * Copyright (c) 2019 ARM Limited
emilija 0:c4a5143aeebc 3 * SPDX-License-Identifier: Apache-2.0
emilija 0:c4a5143aeebc 4 */
emilija 0:c4a5143aeebc 5 #include "Servo.h"
emilija 0:c4a5143aeebc 6 #include "color.h"
emilija 0:c4a5143aeebc 7 #include "mbed.h"
emilija 0:c4a5143aeebc 8 #include "platform/mbed_thread.h"
emilija 0:c4a5143aeebc 9 #include <string>
emilija 0:c4a5143aeebc 10 #include <MQTTClientMbedOs.h>
emilija 0:c4a5143aeebc 11 #include "TextLCD.h"
emilija 0:c4a5143aeebc 12 #include "rohm-sensor-hal/rohm-sensor-hal/rohm_hal.h" //mbed.h, types, DEBUG_print*
emilija 0:c4a5143aeebc 13 #include "rohm-sensor-hal/rohm-sensor-hal/I2CCommon.h"
emilija 0:c4a5143aeebc 14
emilija 0:c4a5143aeebc 15 #include "rohm-rpr0521/rohm-rpr0521/rpr0521_driver.h"
emilija 0:c4a5143aeebc 16 #include "rohm-rpr0521/rohm-rpr0521/rpr0521.h"
emilija 0:c4a5143aeebc 17
emilija 0:c4a5143aeebc 18 // Blinking rate in milliseconds
emilija 1:c49ad58c141d 19 #define BLINKING_RATE_MS
emilija 1:c49ad58c141d 20 500
emilija 0:c4a5143aeebc 21 int salji_boju=0;
emilija 0:c4a5143aeebc 22 Serial pc(USBTX,USBRX);
emilija 0:c4a5143aeebc 23 InterruptIn button(USER_BUTTON);
emilija 0:c4a5143aeebc 24 int arrivedcount = 0;
emilija 0:c4a5143aeebc 25 TCPSocket socket;
emilija 0:c4a5143aeebc 26 MQTTClient client(&socket);
emilija 0:c4a5143aeebc 27 MQTT::Message message;
emilija 0:c4a5143aeebc 28 int button_pressed=0;
emilija 0:c4a5143aeebc 29
emilija 1:c49ad58c141d 30 Timeout T3;
emilija 1:c49ad58c141d 31
emilija 0:c4a5143aeebc 32 char* topic_sub = "PMK_industrija/micro4/#";
emilija 0:c4a5143aeebc 33 char* topic_pub = "PMK_industrija/micro1/proxy3";
emilija 1:c49ad58c141d 34 char* topic_pub2 = "PMK_industrija/micro1/color3";
emilija 1:c49ad58c141d 35 char* topic_pub1 = "PMK_industrija/micro1/echo/4";
emilija 0:c4a5143aeebc 36 Servo servo3(D7);
emilija 0:c4a5143aeebc 37
emilija 0:c4a5143aeebc 38
emilija 0:c4a5143aeebc 39 WiFiInterface *wifi;
emilija 0:c4a5143aeebc 40
emilija 0:c4a5143aeebc 41 TextLCD lcd(D3,D4,D13,D12,D11,D10);
emilija 0:c4a5143aeebc 42 DigitalOut vdd(A5);
emilija 0:c4a5143aeebc 43
emilija 0:c4a5143aeebc 44 volatile int mems_event = 0;
emilija 0:c4a5143aeebc 45 uint32_t previous_tick = 0;
emilija 0:c4a5143aeebc 46 uint32_t current_tick = 0;
emilija 0:c4a5143aeebc 47 uint8_t high = 0, low = 0;
emilija 0:c4a5143aeebc 48 float temperature = 0.0f;
emilija 0:c4a5143aeebc 49 char buffer[32];
emilija 0:c4a5143aeebc 50
emilija 0:c4a5143aeebc 51 static char *print_double(char *str, double v, int decimalDigits = 2)
emilija 0:c4a5143aeebc 52 {
emilija 0:c4a5143aeebc 53 int i = 1;
emilija 0:c4a5143aeebc 54 int intPart, fractPart;
emilija 0:c4a5143aeebc 55 int len;
emilija 0:c4a5143aeebc 56 char *ptr;
emilija 0:c4a5143aeebc 57
emilija 0:c4a5143aeebc 58 /* prepare decimal digits multiplicator */
emilija 0:c4a5143aeebc 59 for (; decimalDigits != 0; i *= 10, decimalDigits--);
emilija 0:c4a5143aeebc 60
emilija 0:c4a5143aeebc 61 /* calculate integer & fractinal parts */
emilija 0:c4a5143aeebc 62 intPart = (int)v;
emilija 0:c4a5143aeebc 63 fractPart = (int)((v - (double)(int)v) * i);
emilija 0:c4a5143aeebc 64
emilija 0:c4a5143aeebc 65 /* fill in integer part */
emilija 0:c4a5143aeebc 66 sprintf(str, "%i.", intPart);
emilija 0:c4a5143aeebc 67
emilija 0:c4a5143aeebc 68 /* prepare fill in of fractional part */
emilija 0:c4a5143aeebc 69 len = strlen(str);
emilija 0:c4a5143aeebc 70 ptr = &str[len];
emilija 0:c4a5143aeebc 71
emilija 0:c4a5143aeebc 72 /* fill in leading fractional zeros */
emilija 0:c4a5143aeebc 73 for (i /= 10; i > 1; i /= 10, ptr++) {
emilija 0:c4a5143aeebc 74 if (fractPart >= i) {
emilija 0:c4a5143aeebc 75 break;
emilija 0:c4a5143aeebc 76 }
emilija 0:c4a5143aeebc 77 *ptr = '0';
emilija 0:c4a5143aeebc 78 }
emilija 0:c4a5143aeebc 79
emilija 0:c4a5143aeebc 80 /* fill in (rest of) fractional part */
emilija 0:c4a5143aeebc 81 sprintf(ptr, "%i", fractPart);
emilija 0:c4a5143aeebc 82
emilija 0:c4a5143aeebc 83 return str;
emilija 0:c4a5143aeebc 84 }
emilija 0:c4a5143aeebc 85
emilija 0:c4a5143aeebc 86 const char *sec2str(nsapi_security_t sec)
emilija 0:c4a5143aeebc 87 {
emilija 0:c4a5143aeebc 88 switch (sec) {
emilija 0:c4a5143aeebc 89 case NSAPI_SECURITY_NONE:
emilija 0:c4a5143aeebc 90 return "None";
emilija 0:c4a5143aeebc 91 case NSAPI_SECURITY_WEP:
emilija 0:c4a5143aeebc 92 return "WEP";
emilija 0:c4a5143aeebc 93 case NSAPI_SECURITY_WPA:
emilija 0:c4a5143aeebc 94 return "WPA";
emilija 0:c4a5143aeebc 95 case NSAPI_SECURITY_WPA2:
emilija 0:c4a5143aeebc 96 return "WPA2";
emilija 0:c4a5143aeebc 97 case NSAPI_SECURITY_WPA_WPA2:
emilija 0:c4a5143aeebc 98 return "WPA/WPA2";
emilija 0:c4a5143aeebc 99 case NSAPI_SECURITY_UNKNOWN:
emilija 0:c4a5143aeebc 100 default:
emilija 0:c4a5143aeebc 101 return "Unknown";
emilija 0:c4a5143aeebc 102 }
emilija 0:c4a5143aeebc 103 }
emilija 0:c4a5143aeebc 104
emilija 0:c4a5143aeebc 105 int scan_demo(WiFiInterface *wifi)
emilija 0:c4a5143aeebc 106 {
emilija 0:c4a5143aeebc 107 WiFiAccessPoint *ap;
emilija 0:c4a5143aeebc 108 printf("Scan:\n");
emilija 0:c4a5143aeebc 109 int count = wifi->scan(NULL,0);
emilija 0:c4a5143aeebc 110 if (count <= 0) {
emilija 0:c4a5143aeebc 111 printf("scan() failed with return value: %d\n", count);
emilija 0:c4a5143aeebc 112 return 0;
emilija 0:c4a5143aeebc 113 }
emilija 0:c4a5143aeebc 114 /* Limit number of network arbitrary to 15 */
emilija 0:c4a5143aeebc 115 count = count < 15 ? count : 15;
emilija 0:c4a5143aeebc 116 ap = new WiFiAccessPoint[count];
emilija 0:c4a5143aeebc 117 count = wifi->scan(ap, count);
emilija 0:c4a5143aeebc 118 if (count <= 0) {
emilija 0:c4a5143aeebc 119 printf("scan() failed with return value: %d\n", count);
emilija 0:c4a5143aeebc 120 return 0;
emilija 0:c4a5143aeebc 121 }
emilija 0:c4a5143aeebc 122 for (int i = 0; i < count; i++) {
emilija 0:c4a5143aeebc 123 printf("Network: %s secured: %s BSSID: %hhX:%hhX:%hhX:%hhx:%hhx:%hhx RSSI: %hhd Ch: %hhd\n", ap[i].get_ssid(),
emilija 0:c4a5143aeebc 124 sec2str(ap[i].get_security()), ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2],
emilija 0:c4a5143aeebc 125 ap[i].get_bssid()[3], ap[i].get_bssid()[4], ap[i].get_bssid()[5], ap[i].get_rssi(), ap[i].get_channel());
emilija 0:c4a5143aeebc 126 }
emilija 0:c4a5143aeebc 127 printf("%d networks available.\n", count);
emilija 0:c4a5143aeebc 128 delete[] ap;
emilija 0:c4a5143aeebc 129 return count;
emilija 0:c4a5143aeebc 130 }
emilija 0:c4a5143aeebc 131
emilija 0:c4a5143aeebc 132 void messageArrived(MQTT::MessageData& md)
emilija 0:c4a5143aeebc 133 {
emilija 0:c4a5143aeebc 134 MQTTString &topic = md.topicName;
emilija 0:c4a5143aeebc 135 string topic_name = topic.lenstring.data;
emilija 0:c4a5143aeebc 136 printf("Topic name %d : %s\r\n",topic.lenstring.len,topic_name.c_str() );
emilija 0:c4a5143aeebc 137 MQTT::Message &message = md.message;
emilija 0:c4a5143aeebc 138 printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\r\n", message.qos, message.retained, message.dup, message.id);
emilija 0:c4a5143aeebc 139 printf("Payload %.*s\r\n", message.payloadlen, (char*)message.payload);
emilija 0:c4a5143aeebc 140 char* poruka = (char*)message.payload;
emilija 0:c4a5143aeebc 141 if(topic_name.find("servo3")!=std::string::npos) {
emilija 1:c49ad58c141d 142 T3.detach();
emilija 1:c49ad58c141d 143 printf("AKTIVIRAN SERVO3\n");
emilija 0:c4a5143aeebc 144 for(float p=0; p<1.0; p += 0.1) {
emilija 0:c4a5143aeebc 145 servo3 = p;
emilija 0:c4a5143aeebc 146
emilija 0:c4a5143aeebc 147 }
emilija 0:c4a5143aeebc 148 wait(2);
emilija 0:c4a5143aeebc 149 for(float p=1.0; p>0.0; p -= 0.1) {
emilija 0:c4a5143aeebc 150 servo3 = p;
emilija 0:c4a5143aeebc 151
emilija 0:c4a5143aeebc 152 }
emilija 1:c49ad58c141d 153 sprintf(buf, "servo3-AKTIVIRAN \r\n");
emilija 1:c49ad58c141d 154 message.qos = MQTT::QOS0;
emilija 1:c49ad58c141d 155 message.retained = false;
emilija 1:c49ad58c141d 156 message.dup = false;
emilija 1:c49ad58c141d 157 message.payload = (void*)buf;
emilija 1:c49ad58c141d 158 message.payloadlen = strlen(buf)+1;
emilija 1:c49ad58c141d 159 client.publish(topic_pub1, message);
emilija 0:c4a5143aeebc 160 }
emilija 1:c49ad58c141d 161 else if(topic_name.find("color3")!=std::string::npos){
emilija 0:c4a5143aeebc 162 salji_boju=1;
emilija 0:c4a5143aeebc 163 }
emilija 1:c49ad58c141d 164
emilija 1:c49ad58c141d 165
emilija 0:c4a5143aeebc 166 else if(topic_name.find("LCD")!=std::string::npos){
emilija 0:c4a5143aeebc 167
emilija 0:c4a5143aeebc 168 lcd.cls();
emilija 0:c4a5143aeebc 169 lcd.printf("%s ",poruka);
emilija 0:c4a5143aeebc 170
emilija 0:c4a5143aeebc 171
emilija 0:c4a5143aeebc 172 }
emilija 1:c49ad58c141d 173 else if(topic_name.find("echo")!=std::string::npos){
emilija 1:c49ad58c141d 174 if(poruka.find("connect")!=std::string::npos){
emilija 1:c49ad58c141d 175 fleg_start=1;
emilija 1:c49ad58c141d 176 sprintf(buf, "echo4 \r\n");
emilija 1:c49ad58c141d 177 message.qos = MQTT::QOS0;
emilija 1:c49ad58c141d 178 message.retained = false;
emilija 1:c49ad58c141d 179 message.dup = false;
emilija 1:c49ad58c141d 180 message.payload = (void*)buf;
emilija 1:c49ad58c141d 181 message.payloadlen = strlen(buf)+1;
emilija 1:c49ad58c141d 182 client.publish(topic_pub1, message);
emilija 1:c49ad58c141d 183 }
emilija 1:c49ad58c141d 184 else if(poruka.find("echo")!=std::string::npos){
emilija 1:c49ad58c141d 185 T3.detach();
emilija 1:c49ad58c141d 186 }
emilija 1:c49ad58c141d 187 }
emilija 1:c49ad58c141d 188
emilija 0:c4a5143aeebc 189 ++arrivedcount;
emilija 0:c4a5143aeebc 190 }
emilija 0:c4a5143aeebc 191
emilija 0:c4a5143aeebc 192
emilija 0:c4a5143aeebc 193 void buttonFunction() {
emilija 0:c4a5143aeebc 194 button_pressed=1;
emilija 0:c4a5143aeebc 195 }
emilija 0:c4a5143aeebc 196
emilija 0:c4a5143aeebc 197 void rpr0521_print_one_value(){
emilija 0:c4a5143aeebc 198 bool error;
emilija 0:c4a5143aeebc 199 uint16_t data[3];
emilija 0:c4a5143aeebc 200
emilija 0:c4a5143aeebc 201 error = rpr0521_read_data(&data[0]);
emilija 0:c4a5143aeebc 202 if (!error) {
emilija 0:c4a5143aeebc 203 printf("PS[%4u], Als0[%4u], Als1[%4u]\n\r", data[0], data[1], data[2]);
emilija 0:c4a5143aeebc 204 }
emilija 0:c4a5143aeebc 205 else {
emilija 0:c4a5143aeebc 206 printf("\n\r");
emilija 0:c4a5143aeebc 207 }
emilija 0:c4a5143aeebc 208 }
emilija 0:c4a5143aeebc 209 int main()
emilija 0:c4a5143aeebc 210 { vdd=1;
emilija 0:c4a5143aeebc 211 // Initialise the digital pin LED1 as an output
emilija 0:c4a5143aeebc 212 bool error;
emilija 0:c4a5143aeebc 213 //ColorSensor cs(PA_5,PA_6,PA_7,PB_6,PC_7);
emilija 0:c4a5143aeebc 214 uint16_t dataProx[3];
emilija 0:c4a5143aeebc 215 DigitalOut led(LED1);
emilija 0:c4a5143aeebc 216 button.rise(&buttonFunction);
emilija 0:c4a5143aeebc 217 const char* hostname = "broker.mqttdashboard.com";
emilija 0:c4a5143aeebc 218 int port = 1883;
emilija 0:c4a5143aeebc 219
emilija 0:c4a5143aeebc 220 I2CCommonBegin();
emilija 0:c4a5143aeebc 221 rpr0521_wait_until_found();
emilija 0:c4a5143aeebc 222 pc.printf("\nSensor found.\n\r");
emilija 0:c4a5143aeebc 223 rpr0521_initial_setup();
emilija 0:c4a5143aeebc 224
emilija 0:c4a5143aeebc 225 wifi = WiFiInterface::get_default_instance();
emilija 0:c4a5143aeebc 226 if (!wifi) {
emilija 0:c4a5143aeebc 227 printf("ERROR: No WiFiInterface found.\n");
emilija 0:c4a5143aeebc 228 return -1;
emilija 0:c4a5143aeebc 229 }
emilija 0:c4a5143aeebc 230
emilija 0:c4a5143aeebc 231 int count = scan_demo(wifi);
emilija 0:c4a5143aeebc 232 if (count == 0) {
emilija 0:c4a5143aeebc 233 printf("No WIFI APs found - can't continue further.\n");
emilija 0:c4a5143aeebc 234 return -1;
emilija 0:c4a5143aeebc 235 }
emilija 0:c4a5143aeebc 236
emilija 0:c4a5143aeebc 237 printf("\nConnecting to %s...\n", MBED_CONF_APP_WIFI_SSID);
emilija 0:c4a5143aeebc 238 int ret = wifi->connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
emilija 0:c4a5143aeebc 239 if (ret != 0) {
emilija 0:c4a5143aeebc 240 printf("\nConnection error: %d\n", ret);
emilija 0:c4a5143aeebc 241 return -1;
emilija 0:c4a5143aeebc 242 }
emilija 0:c4a5143aeebc 243
emilija 0:c4a5143aeebc 244 printf("Success\n\n");
emilija 0:c4a5143aeebc 245 printf("MAC: %s\n", wifi->get_mac_address());
emilija 0:c4a5143aeebc 246 printf("IP: %s\n", wifi->get_ip_address());
emilija 0:c4a5143aeebc 247 printf("Netmask: %s\n", wifi->get_netmask());
emilija 0:c4a5143aeebc 248 printf("Gateway: %s\n", wifi->get_gateway());
emilija 0:c4a5143aeebc 249 printf("RSSI: %d\n\n", wifi->get_rssi());
emilija 0:c4a5143aeebc 250
emilija 0:c4a5143aeebc 251 socket.open(wifi);
emilija 0:c4a5143aeebc 252 socket.connect(hostname, port);
emilija 0:c4a5143aeebc 253
emilija 0:c4a5143aeebc 254 int rc=0;
emilija 0:c4a5143aeebc 255
emilija 0:c4a5143aeebc 256 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
emilija 0:c4a5143aeebc 257 data.MQTTVersion = 3;
emilija 0:c4a5143aeebc 258 data.clientID.cstring = "PMK-client4";
emilija 0:c4a5143aeebc 259 //data.username.cstring = "testuser";
emilija 0:c4a5143aeebc 260 //data.password.cstring = "testpassword";
emilija 0:c4a5143aeebc 261
emilija 0:c4a5143aeebc 262 if ((rc = client.connect(data)) != 0)
emilija 0:c4a5143aeebc 263 printf("rc from MQTT connect is %d\r\n", rc);
emilija 0:c4a5143aeebc 264
emilija 0:c4a5143aeebc 265
emilija 0:c4a5143aeebc 266 if ((rc = client.subscribe(topic_sub, MQTT::QOS2, messageArrived)) != 0)
emilija 0:c4a5143aeebc 267 printf("rc from MQTT subscribe is %d\r\n", rc);
emilija 0:c4a5143aeebc 268
emilija 0:c4a5143aeebc 269
emilija 0:c4a5143aeebc 270
emilija 0:c4a5143aeebc 271 while (true) {
emilija 0:c4a5143aeebc 272 led = !led;
emilija 0:c4a5143aeebc 273 thread_sleep_for(BLINKING_RATE_MS);
emilija 0:c4a5143aeebc 274
emilija 0:c4a5143aeebc 275
emilija 0:c4a5143aeebc 276 error = rpr0521_read_data(&dataProx[0]);
emilija 0:c4a5143aeebc 277 if (!error){
emilija 1:c49ad58c141d 278 T3.attach(&interuptT3,5);
emilija 1:c49ad58c141d 279 if(dataProx[0] > 50 && !fleg_proxy) {
emilija 1:c49ad58c141d 280 fleg_proxy1=1;
emilija 0:c4a5143aeebc 281 printf("Pristigao je cep na lokaciju O.O O:'( \r\n ");
emilija 0:c4a5143aeebc 282 char buf[100];
emilija 1:c49ad58c141d 283 sprintf(buf, "proxy3-AKTIV PS = %d",dataProx[0]);
emilija 0:c4a5143aeebc 284 message.qos = MQTT::QOS0;
emilija 0:c4a5143aeebc 285 message.retained = false;
emilija 0:c4a5143aeebc 286 message.dup = false;
emilija 0:c4a5143aeebc 287 message.payload = (void*)buf;
emilija 0:c4a5143aeebc 288 message.payloadlen = strlen(buf)+1;
emilija 0:c4a5143aeebc 289 client.publish(topic_pub, message);
emilija 1:c49ad58c141d 290 //salji_boju=1;
emilija 0:c4a5143aeebc 291 }
emilija 1:c49ad58c141d 292 else{fleg_proxy=0;}
emilija 0:c4a5143aeebc 293
emilija 0:c4a5143aeebc 294 }
emilija 0:c4a5143aeebc 295 if (salji_boju==1) {
emilija 1:c49ad58c141d 296 T3.detach();
emilija 0:c4a5143aeebc 297 //salji_boju=0;
emilija 0:c4a5143aeebc 298 //printf("Publishing data\r\n");
emilija 0:c4a5143aeebc 299 // QoS 0
emilija 0:c4a5143aeebc 300 //char buf[100];
emilija 0:c4a5143aeebc 301 //float treshold=0.1;
emilija 0:c4a5143aeebc 302
emilija 0:c4a5143aeebc 303 //int Boja[3]={cs.getRed(), cs.getGreen(),cs.getBlue()};
emilija 0:c4a5143aeebc 304
emilija 0:c4a5143aeebc 305 //while(Boja[0]<30 && Boja[1]<30 && Boja[2]<30){
emilija 0:c4a5143aeebc 306 //wait(1);
emilija 0:c4a5143aeebc 307 //Boja[0]=cs.getRed();
emilija 0:c4a5143aeebc 308 //Boja[1]=cs.getGreen();
emilija 0:c4a5143aeebc 309 //Boja[2]=cs.getBlue();
emilija 0:c4a5143aeebc 310 //printf("LOSE MERENJE \r\n");
emilija 0:c4a5143aeebc 311 //printf("R:%d , G:%d , B:%d",Boja[0],Boja[1],Boja[2]);
emilija 0:c4a5143aeebc 312 // }
emilija 0:c4a5143aeebc 313 //int strongCol=max(Boja[0],max(Boja[1],Boja[2]));
emilija 0:c4a5143aeebc 314 //float BojaScal[3];
emilija 0:c4a5143aeebc 315 //BojaScal[0]=Boja[0]/(strongCol*1.0);
emilija 0:c4a5143aeebc 316 //BojaScal[1]=Boja[1]/(strongCol*1.0);
emilija 0:c4a5143aeebc 317 //BojaScal[2]=Boja[2]/(strongCol*1.0);
emilija 0:c4a5143aeebc 318
emilija 0:c4a5143aeebc 319 //if(BojaScal[1]<r1[1]+treshold && BojaScal[1]>r1[1]-treshold && BojaScal[2]<r1[2]+treshold && BojaScal[0]>r1[0]-treshold && BojaScal[0]<r1[0]+treshold && BojaScal[2]>r1[2]-treshold ) {
emilija 0:c4a5143aeebc 320 // sprintf(buf, "RGB: CRVENA \r\n");}
emilija 0:c4a5143aeebc 321 //else if(BojaScal[1]<g1[1]+treshold && BojaScal[1]>g1[1]-treshold && BojaScal[2]<g1[2]+treshold && BojaScal[0]>g1[0]-treshold && BojaScal[0]<g1[0]+treshold && BojaScal[2]>g1[2]-treshold ) {
emilija 0:c4a5143aeebc 322 //sprintf(buf, "RGB: ZELENA \r\n");}
emilija 0:c4a5143aeebc 323 //else if(BojaScal[1]<b1[1]+treshold && BojaScal[1]>b1[1]-treshold && BojaScal[2]<b1[2]+treshold && BojaScal[0]>b1[0]-treshold && BojaScal[0]<b1[0]+treshold && BojaScal[2]>b1[2]-treshold ) {
emilija 0:c4a5143aeebc 324 //sprintf(buf, "RGB: PLAVA \r\n");}
emilija 0:c4a5143aeebc 325 // else { sprintf(buf, "RGB: NEKA DRUGA BOJA \r\n");}
emilija 0:c4a5143aeebc 326
emilija 0:c4a5143aeebc 327 //printf("R: %.3f", BojaScal[0]);
emilija 0:c4a5143aeebc 328 //printf("G: %.3f", BojaScal[1]);
emilija 0:c4a5143aeebc 329 // printf("B: %.3f\r\n", BojaScal[2]);
emilija 0:c4a5143aeebc 330
emilija 0:c4a5143aeebc 331 //printf(" Crvena R: %.3f", r1[0]);
emilija 0:c4a5143aeebc 332 //printf("G: %.3f", r1[1]);
emilija 0:c4a5143aeebc 333 //printf("B: %.3f\r\n", r1[2]);
emilija 0:c4a5143aeebc 334
emilija 0:c4a5143aeebc 335
emilija 0:c4a5143aeebc 336 //message.qos = MQTT::QOS0;
emilija 0:c4a5143aeebc 337 //message.retained = false;
emilija 0:c4a5143aeebc 338 //message.dup = false;
emilija 0:c4a5143aeebc 339 //message.payload = (void*)buf;
emilija 0:c4a5143aeebc 340 //message.payloadlen = strlen(buf)+1;
emilija 0:c4a5143aeebc 341 //client.publish(topic_pub, message);
emilija 1:c49ad58c141d 342 T3.attach(&interruptT3,5);
emilija 1:c49ad58c141d 343 salji_boju=0;
emilija 0:c4a5143aeebc 344 }
emilija 0:c4a5143aeebc 345
emilija 0:c4a5143aeebc 346
emilija 0:c4a5143aeebc 347 if (button_pressed==1) {
emilija 0:c4a5143aeebc 348 button_pressed=0;
emilija 0:c4a5143aeebc 349 printf("Publishing data\r\n");
emilija 0:c4a5143aeebc 350 // QoS 0
emilija 0:c4a5143aeebc 351 char buf[100];
emilija 0:c4a5143aeebc 352
emilija 0:c4a5143aeebc 353 //sprintf(buf, "RGB: %7s C\r\n", print_double(buffer, cs.getRed()*100000000+cs.getGreen()*10000+cs.getBlue()));
emilija 0:c4a5143aeebc 354
emilija 0:c4a5143aeebc 355 //message.qos = MQTT::QOS0;
emilija 0:c4a5143aeebc 356 //message.retained = false;
emilija 0:c4a5143aeebc 357 //message.dup = false;
emilija 0:c4a5143aeebc 358 //message.payload = (void*)buf;
emilija 0:c4a5143aeebc 359 //message.payloadlen = strlen(buf)+1;
emilija 0:c4a5143aeebc 360 //client.publish(topic_pub, message);
emilija 0:c4a5143aeebc 361
emilija 0:c4a5143aeebc 362 }
emilija 0:c4a5143aeebc 363 // printf("Yielding");
emilija 0:c4a5143aeebc 364 client.yield(1000);
emilija 0:c4a5143aeebc 365 //printf(" -> Yielded\r\n");
emilija 0:c4a5143aeebc 366 }
emilija 0:c4a5143aeebc 367 }