f

Dependencies:   HCSR04 awali2

Committer:
timilrlan
Date:
Thu May 26 06:11:34 2022 +0000
Revision:
102:2591f689e242
Parent:
101:bea6b4cfedac
fds

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