e

Dependencies:   HCSR04 awali2

Committer:
awali
Date:
Tue Apr 19 07:21:10 2022 +0000
Revision:
101:bea6b4cfedac
Parent:
100:642bee2ce173
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
awali 101:bea6b4cfedac 1 /* EXAMPLE */
awali 101:bea6b4cfedac 2 #include "mbed.h"
awali 101:bea6b4cfedac 3
awali 101:bea6b4cfedac 4 #include "hcsr04.h"
awali 101:bea6b4cfedac 5
awali 101:bea6b4cfedac 6 //D12 TRIGGER D11 ECHO
awali 101:bea6b4cfedac 7 HCSR04 sensor(D12, D11);
awali 101:bea6b4cfedac 8
awali 101:bea6b4cfedac 9
awali 101:bea6b4cfedac 10
awali 101:bea6b4cfedac 11 #include "MQTTmbed.h"
awali 101:bea6b4cfedac 12
awali 101:bea6b4cfedac 13 #include <MQTTClientMbedOs.h>
awali 101:bea6b4cfedac 14
awali 101:bea6b4cfedac 15 #include <cstdio>
awali 101:bea6b4cfedac 16
awali 101:bea6b4cfedac 17
awali 101:bea6b4cfedac 18 #include "mbed.h"
awali 101:bea6b4cfedac 19 #include <LiquidCrystal_I2C.h>
awali 101:bea6b4cfedac 20
awali 101:bea6b4cfedac 21
awali 101:bea6b4cfedac 22
awali 101:bea6b4cfedac 23 // Set the LCD address to 0x27 for a 16 chars and 2 line display
awali 101:bea6b4cfedac 24 //BufferedSerial pc(USBTX, USBRX);
awali 101:bea6b4cfedac 25 //RawSerial pc(USBTX, USBRX);
awali 101:bea6b4cfedac 26 // Serial pc2(USBTX, USBRX);
awali 101:bea6b4cfedac 27 // RawSerial pc(USBTX, USBRX);
awali 101:bea6b4cfedac 28 EventQueue eventQueue(/* event count */ 50 * EVENTS_EVENT_SIZE);
awali 101:bea6b4cfedac 29 LowPowerTicker lpTicker;
awali 101:bea6b4cfedac 30 LiquidCrystal_I2C lcd(0x4E, 16, 2);
awali 101:bea6b4cfedac 31
awali 101:bea6b4cfedac 32 void read_datchik_write_lcd_consol_publish_mqtt()
awali 101:bea6b4cfedac 33 {
awali 101:bea6b4cfedac 34
awali 101:bea6b4cfedac 35
awali 101:bea6b4cfedac 36 /* EXAMPLE */
awali 101:bea6b4cfedac 37 long distance = sensor.distance();
awali 101:bea6b4cfedac 38 printf("distance %d \n",distance);
awali 101:bea6b4cfedac 39 // initialize the LCD
awali 101:bea6b4cfedac 40 lcd.begin();
awali 101:bea6b4cfedac 41
awali 101:bea6b4cfedac 42
awali 101:bea6b4cfedac 43 // initialize the LCD
awali 101:bea6b4cfedac 44 lcd.begin();
awali 101:bea6b4cfedac 45
awali 101:bea6b4cfedac 46 // Turn on the blacklight and print a message.
awali 101:bea6b4cfedac 47 lcd.backlight();
awali 101:bea6b4cfedac 48
awali 101:bea6b4cfedac 49 // lcd.printstr("distance %d \n",distance);
awali 101:bea6b4cfedac 50
awali 101:bea6b4cfedac 51
awali 101:bea6b4cfedac 52
awali 101:bea6b4cfedac 53 char displayText[1000];
awali 101:bea6b4cfedac 54
awali 101:bea6b4cfedac 55 sprintf(displayText,"rasstyanie: %d",distance);
awali 101:bea6b4cfedac 56 lcd.print(displayText);
awali 101:bea6b4cfedac 57
awali 101:bea6b4cfedac 58
awali 101:bea6b4cfedac 59
awali 101:bea6b4cfedac 60 //lcd.printf("Hi mbed World!\n");
awali 101:bea6b4cfedac 61
awali 101:bea6b4cfedac 62 printf("Starting IBM MQTT demo:\n");
awali 101:bea6b4cfedac 63
awali 101:bea6b4cfedac 64
awali 101:bea6b4cfedac 65
awali 101:bea6b4cfedac 66 TCPSocket socket;
awali 101:bea6b4cfedac 67
awali 101:bea6b4cfedac 68 NetworkInterface *net = NetworkInterface::get_default_instance();
awali 101:bea6b4cfedac 69
awali 101:bea6b4cfedac 70 if (!net) {
awali 101:bea6b4cfedac 71
awali 101:bea6b4cfedac 72 printf("Error! No network inteface found.\n");
awali 101:bea6b4cfedac 73
awali 101:bea6b4cfedac 74 //return 0;
awali 101:bea6b4cfedac 75
awali 101:bea6b4cfedac 76 }
awali 101:bea6b4cfedac 77
awali 101:bea6b4cfedac 78 printf("Connecting to the network...\r\n");
awali 101:bea6b4cfedac 79
awali 101:bea6b4cfedac 80
awali 101:bea6b4cfedac 81
awali 101:bea6b4cfedac 82 nsapi_size_or_error_t rc = net->connect();
awali 101:bea6b4cfedac 83
awali 101:bea6b4cfedac 84 if (rc != 0) {
awali 101:bea6b4cfedac 85
awali 101:bea6b4cfedac 86 printf("Error! _net->connect() returned: %d\r\n", rc);
awali 101:bea6b4cfedac 87
awali 101:bea6b4cfedac 88 // return -1;
awali 101:bea6b4cfedac 89
awali 101:bea6b4cfedac 90 }
awali 101:bea6b4cfedac 91
awali 101:bea6b4cfedac 92
awali 101:bea6b4cfedac 93
awali 101:bea6b4cfedac 94
awali 101:bea6b4cfedac 95 rc = socket.open(net);
awali 101:bea6b4cfedac 96
awali 101:bea6b4cfedac 97 if (rc != 0) {
awali 101:bea6b4cfedac 98
awali 101:bea6b4cfedac 99 printf("Error! _socket.open() returned: %d\r\n", rc);
awali 101:bea6b4cfedac 100
awali 101:bea6b4cfedac 101 //return -1;
awali 101:bea6b4cfedac 102
awali 101:bea6b4cfedac 103 }
awali 101:bea6b4cfedac 104
awali 101:bea6b4cfedac 105
awali 101:bea6b4cfedac 106
awali 101:bea6b4cfedac 107 SocketAddress address;
awali 101:bea6b4cfedac 108
awali 101:bea6b4cfedac 109 net->gethostbyname("dev.rightech.io",
awali 101:bea6b4cfedac 110
awali 101:bea6b4cfedac 111 &address);
awali 101:bea6b4cfedac 112
awali 101:bea6b4cfedac 113 address.set_port(1883);
awali 101:bea6b4cfedac 114
awali 101:bea6b4cfedac 115
awali 101:bea6b4cfedac 116
awali 101:bea6b4cfedac 117 printf("Opening connection to remote %s port %d\r\n",
awali 101:bea6b4cfedac 118
awali 101:bea6b4cfedac 119 address.get_ip_address(), address.get_port());
awali 101:bea6b4cfedac 120
awali 101:bea6b4cfedac 121 rc = socket.connect(address);
awali 101:bea6b4cfedac 122
awali 101:bea6b4cfedac 123 if (rc != 0) {
awali 101:bea6b4cfedac 124
awali 101:bea6b4cfedac 125 printf("Error! _socket.connect() returned: %d\r\n", rc);
awali 101:bea6b4cfedac 126
awali 101:bea6b4cfedac 127 // return -1;
awali 101:bea6b4cfedac 128
awali 101:bea6b4cfedac 129 }
awali 101:bea6b4cfedac 130
awali 101:bea6b4cfedac 131 printf("Connected socket\n");
awali 101:bea6b4cfedac 132
awali 101:bea6b4cfedac 133
awali 101:bea6b4cfedac 134
awali 101:bea6b4cfedac 135 MQTTClient client(&socket);
awali 101:bea6b4cfedac 136
awali 101:bea6b4cfedac 137 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
awali 101:bea6b4cfedac 138
awali 101:bea6b4cfedac 139 data.MQTTVersion = 3;
awali 101:bea6b4cfedac 140
awali 101:bea6b4cfedac 141 data.clientID.cstring = "ric-demo-room-device-my";
awali 101:bea6b4cfedac 142
awali 101:bea6b4cfedac 143 data.username.cstring = "111";
awali 101:bea6b4cfedac 144
awali 101:bea6b4cfedac 145 data.password.cstring = "1234567";
awali 101:bea6b4cfedac 146
awali 101:bea6b4cfedac 147 if ((rc = client.connect(data)) != 0)
awali 101:bea6b4cfedac 148
awali 101:bea6b4cfedac 149 printf("rc from MQTT connect is %d\r\n", rc);
awali 101:bea6b4cfedac 150
awali 101:bea6b4cfedac 151
awali 101:bea6b4cfedac 152
awali 101:bea6b4cfedac 153
awali 101:bea6b4cfedac 154
awali 101:bea6b4cfedac 155 //{clientId:"vali_client_id",userName:"vali_user_name",password:"fkQiW3AJFcM38ED"}
awali 101:bea6b4cfedac 156
awali 101:bea6b4cfedac 157
awali 101:bea6b4cfedac 158
awali 101:bea6b4cfedac 159
awali 101:bea6b4cfedac 160
awali 101:bea6b4cfedac 161 MQTT::Message message;
awali 101:bea6b4cfedac 162
awali 101:bea6b4cfedac 163 char *topic = "distance";
awali 101:bea6b4cfedac 164
awali 101:bea6b4cfedac 165 char buf[100];
awali 101:bea6b4cfedac 166
awali 101:bea6b4cfedac 167 int temp = 33;
awali 101:bea6b4cfedac 168
awali 101:bea6b4cfedac 169 int press = 2;
awali 101:bea6b4cfedac 170
awali 101:bea6b4cfedac 171 int hum = 3;
awali 101:bea6b4cfedac 172
awali 101:bea6b4cfedac 173 // sprintf(buf,
awali 101:bea6b4cfedac 174
awali 101:bea6b4cfedac 175 // "{\"d\":{\"ST\":\"Nucleo-IoT-mbed\",\"Temp\":%d,\"Pressure\":"
awali 101:bea6b4cfedac 176
awali 101:bea6b4cfedac 177 // "%d,\"Humidity\":%d}}", temp, press, hum);
awali 101:bea6b4cfedac 178
awali 101:bea6b4cfedac 179 sprintf(buf,
awali 101:bea6b4cfedac 180
awali 101:bea6b4cfedac 181 "\%d", distance);
awali 101:bea6b4cfedac 182 //sprintf(buf,
awali 101:bea6b4cfedac 183
awali 101:bea6b4cfedac 184 // "{\"distance\": %d}", distance);
awali 101:bea6b4cfedac 185
awali 101:bea6b4cfedac 186
awali 101:bea6b4cfedac 187
awali 101:bea6b4cfedac 188 printf("Sending message: \n%s\n", buf);
awali 101:bea6b4cfedac 189
awali 101:bea6b4cfedac 190 message.qos = MQTT::QOS0;
awali 101:bea6b4cfedac 191
awali 101:bea6b4cfedac 192 message.retained = false;
awali 101:bea6b4cfedac 193
awali 101:bea6b4cfedac 194 message.dup = false;
awali 101:bea6b4cfedac 195
awali 101:bea6b4cfedac 196 message.payload = (void *)buf;
awali 101:bea6b4cfedac 197
awali 101:bea6b4cfedac 198 message.payloadlen = strlen(buf);
awali 101:bea6b4cfedac 199
awali 101:bea6b4cfedac 200 rc = client.publish(topic, message);
awali 101:bea6b4cfedac 201
awali 101:bea6b4cfedac 202 printf("Message sent\n");
awali 101:bea6b4cfedac 203
awali 101:bea6b4cfedac 204 printf("Demo concluded successfully \r\n");
awali 101:bea6b4cfedac 205
awali 101:bea6b4cfedac 206
awali 101:bea6b4cfedac 207 }
awali 101:bea6b4cfedac 208
awali 101:bea6b4cfedac 209 void tickerIRQ (void)
awali 101:bea6b4cfedac 210 {
awali 101:bea6b4cfedac 211 eventQueue.call(read_datchik_write_lcd_consol_publish_mqtt);
awali 101:bea6b4cfedac 212 }
awali 101:bea6b4cfedac 213
awali 101:bea6b4cfedac 214
awali 101:bea6b4cfedac 215
awali 101:bea6b4cfedac 216 int main(int argc, char *argv[])
awali 101:bea6b4cfedac 217 {
awali 101:bea6b4cfedac 218 // pc.baud(115200);
awali 101:bea6b4cfedac 219
awali 101:bea6b4cfedac 220 lpTicker.attach(tickerIRQ, 5); // every 5 second
awali 101:bea6b4cfedac 221 while(1)
awali 101:bea6b4cfedac 222 {
awali 101:bea6b4cfedac 223 eventQueue.dispatch(0);
awali 101:bea6b4cfedac 224 sleep();
awali 101:bea6b4cfedac 225 }
awali 101:bea6b4cfedac 226
awali 101:bea6b4cfedac 227
awali 101:bea6b4cfedac 228
awali 101:bea6b4cfedac 229
awali 101:bea6b4cfedac 230 return 0;
awali 100:642bee2ce173 231 }