fdrtgff

Dependencies:   HCSR04 awali2

Committer:
timilrlan
Date:
Mon May 30 09:33:21 2022 +0000
Revision:
103:e61ad04d14f2
Parent:
102:2591f689e242
dfd

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