1
Dependencies: HCSR04 LiquidCrystal_I2C_for_Nucleo
Revision 100:8f61360ef2e9, committed 2022-01-13
- Comitter:
- awali
- Date:
- Thu Jan 13 06:24:01 2022 +0000
- Parent:
- 99:86dca48315d8
- Commit message:
- 1
Changed in this revision
diff -r 86dca48315d8 -r 8f61360ef2e9 HCSR04.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HCSR04.lib Thu Jan 13 06:24:01 2022 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/antoniolinux/code/HCSR04/#86b2086be101
diff -r 86dca48315d8 -r 8f61360ef2e9 LiquidCrystal_I2C_for_Nucleo.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LiquidCrystal_I2C_for_Nucleo.lib Thu Jan 13 06:24:01 2022 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/Yar/code/LiquidCrystal_I2C_for_Nucleo/#824096cc05af
diff -r 86dca48315d8 -r 8f61360ef2e9 main.cpp --- a/main.cpp Tue Oct 08 14:00:11 2019 +0100 +++ b/main.cpp Thu Jan 13 06:24:01 2022 +0000 @@ -1,112 +1,194 @@ -/* WiFi Example - * Copyright (c) 2016 ARM Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +/* EXAMPLE */ +#include "mbed.h" +#include "hcsr04.h" + +//D12 TRIGGER D11 ECHO +HCSR04 sensor(D12, D11); + + + +#include "MQTTmbed.h" + +#include <MQTTClientMbedOs.h> + +#include <cstdio> + #include "mbed.h" +#include <LiquidCrystal_I2C.h> -WiFiInterface *wifi; +// Set the LCD address to 0x27 for a 16 chars and 2 line display +LiquidCrystal_I2C lcd(0x4E, 16, 2); + + +int main(int argc, char *argv[]) + { + + /* EXAMPLE */ + long distance = sensor.distance(); + printf("distance %d \n",distance); + // initialize the LCD + lcd.begin(); + + + // initialize the LCD + lcd.begin(); -const char *sec2str(nsapi_security_t sec) -{ - switch (sec) { - case NSAPI_SECURITY_NONE: - return "None"; - case NSAPI_SECURITY_WEP: - return "WEP"; - case NSAPI_SECURITY_WPA: - return "WPA"; - case NSAPI_SECURITY_WPA2: - return "WPA2"; - case NSAPI_SECURITY_WPA_WPA2: - return "WPA/WPA2"; - case NSAPI_SECURITY_UNKNOWN: - default: - return "Unknown"; - } -} + // Turn on the blacklight and print a message. + lcd.backlight(); + lcd.print("Hello, world!"); + + + +//lcd.printf("Hi mbed World!\n"); + + printf("Starting IBM MQTT demo:\n"); + + + + TCPSocket socket; + + NetworkInterface *net = NetworkInterface::get_default_instance(); + + if (!net) { + + printf("Error! No network inteface found.\n"); + + return 0; + + } -int scan_demo(WiFiInterface *wifi) -{ - WiFiAccessPoint *ap; + printf("Connecting to the network...\r\n"); + + + + nsapi_size_or_error_t rc = net->connect(); + + if (rc != 0) { + + printf("Error! _net->connect() returned: %d\r\n", rc); - printf("Scan:\n"); + return -1; + + } + + - int count = wifi->scan(NULL,0); + rc = socket.open(net); + + if (rc != 0) { + + printf("Error! _socket.open() returned: %d\r\n", rc); - if (count <= 0) { - printf("scan() failed with return value: %d\n", count); - return 0; - } + return -1; + + } + + - /* Limit number of network arbitrary to 15 */ - count = count < 15 ? count : 15; + SocketAddress address; + + net->gethostbyname("dev.rightech.io", + + &address); - ap = new WiFiAccessPoint[count]; - count = wifi->scan(ap, count); + address.set_port(1883); + + + + printf("Opening connection to remote %s port %d\r\n", - if (count <= 0) { - printf("scan() failed with return value: %d\n", count); - return 0; - } + address.get_ip_address(), address.get_port()); + + rc = socket.connect(address); + + if (rc != 0) { - for (int i = 0; i < count; i++) { - printf("Network: %s secured: %s BSSID: %hhX:%hhX:%hhX:%hhx:%hhx:%hhx RSSI: %hhd Ch: %hhd\n", ap[i].get_ssid(), - sec2str(ap[i].get_security()), ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2], - ap[i].get_bssid()[3], ap[i].get_bssid()[4], ap[i].get_bssid()[5], ap[i].get_rssi(), ap[i].get_channel()); - } - printf("%d networks available.\n", count); + printf("Error! _socket.connect() returned: %d\r\n", rc); + + return -1; + + } + + printf("Connected socket\n"); + + - delete[] ap; - return count; -} + MQTTClient client(&socket); + + MQTTPacket_connectData data = MQTTPacket_connectData_initializer; + + data.MQTTVersion = 3; + + data.clientID.cstring = "ric-demo-room-device-my"; + + data.username.cstring = "111"; -int main() -{ - printf("WiFi example\n"); + data.password.cstring = "Здравствуйте Раиля Хурматовна!"; + + if ((rc = client.connect(data)) != 0) + + printf("rc from MQTT connect is %d\r\n", rc); -#ifdef MBED_MAJOR_VERSION - printf("Mbed OS version %d.%d.%d\n\n", MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION); -#endif + + + + + + + + - wifi = WiFiInterface::get_default_instance(); - if (!wifi) { - printf("ERROR: No WiFiInterface found.\n"); - return -1; - } + MQTT::Message message; + + char *topic = "temp"; + + char buf[100]; + + int temp = 30; - int count = scan_demo(wifi); - if (count == 0) { - printf("No WIFI APs found - can't continue further.\n"); - return -1; - } + int press = 2; + + int hum = 3; + + //sprintf(buf, + + // "{\"d\":{\"ST\":\"Nucleo-IoT-mbed\",\"Temp\":%d,\"Pressure\":" + +// "%d,\"Humidity\":%d}}", temp, press, hum); + + //sprintf(buf, + + // "{\"temperature\": %d}", temp); + + // sprintf(buf, + + // "{\"distance\": %d}", distance); + + + sprintf(buf, + " %d", temp); + - printf("\nConnecting to %s...\n", MBED_CONF_APP_WIFI_SSID); - int ret = wifi->connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2); - if (ret != 0) { - printf("\nConnection error: %d\n", ret); - return -1; - } + printf("Sending message: \n%s\n", buf); + + message.qos = MQTT::QOS0; + + message.retained = false; + + message.dup = false; + + message.payload = (void *)buf; - printf("Success\n\n"); - printf("MAC: %s\n", wifi->get_mac_address()); - printf("IP: %s\n", wifi->get_ip_address()); - printf("Netmask: %s\n", wifi->get_netmask()); - printf("Gateway: %s\n", wifi->get_gateway()); - printf("RSSI: %d\n\n", wifi->get_rssi()); + message.payloadlen = strlen(buf); + + rc = client.publish(topic, message); + + printf("Message sent\n"); - wifi->disconnect(); + printf("Demo concluded successfully \r\n"); - printf("\nDone\n"); -} + + + return 0; +} \ No newline at end of file
diff -r 86dca48315d8 -r 8f61360ef2e9 mbed-mqtt.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-mqtt.lib Thu Jan 13 06:24:01 2022 +0000 @@ -0,0 +1,1 @@ +https://github.com/ARMmbed/mbed-mqtt/#c0cc24610a38b45608a54096d3ec08d24f2fdc46
diff -r 86dca48315d8 -r 8f61360ef2e9 mbed-os.lib --- a/mbed-os.lib Tue Oct 08 14:00:11 2019 +0100 +++ b/mbed-os.lib Thu Jan 13 06:24:01 2022 +0000 @@ -1,1 +1,1 @@ -https://github.com/ARMmbed/mbed-os/#b6e5a0a8afa34dec9dae8963778aebce0c82a54b +https://github.com/ARMmbed/mbed-os/#b1796dedeb8accde1cbaecf136fab96895e23d81
diff -r 86dca48315d8 -r 8f61360ef2e9 mbed_app.json --- a/mbed_app.json Tue Oct 08 14:00:11 2019 +0100 +++ b/mbed_app.json Thu Jan 13 06:24:01 2022 +0000 @@ -1,17 +1,28 @@ { "config": { - "wifi-ssid": { - "help": "WiFi SSID", - "value": "\"SSID\"" + "hostname": { + "help": "The demo will try to connect to this web address on port 80 (or port 443 when using tls).", + "value": "\"ifconfig.io\"" }, - "wifi-password": { - "help": "WiFi Password", - "value": "\"PASSWORD\"" + "use-tls-socket": { + "value": false + }, + "socket-bufsize": { + "help": "Max socket data heap usage", + "value": "1024" } }, "target_overrides": { "*": { - "platform.stdio-convert-newlines": true + "target.network-default-interface-type": "WIFI", + "nsapi.default-wifi-security": "WPA_WPA2", + "nsapi.default-wifi-ssid": "\"Galaxy A32\"", + "nsapi.default-wifi-password": "\"77777777\"", + "esp8266.tx": "D8", + "esp8266.rx": "D2", + "esp8266.socket-bufsize": "1024", + "esp8266.debug": false, + "esp8266.provide-default" : true } } }