Khakimov Rishat / Mbed OS Kurs_copyed
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "MQTTmbed.h"
00002 #include <MQTTClientMbedOs.h>
00003 #include <cstdio> 
00004 #include "mbed.h"
00005 
00006 
00007 
00008 AnalogIn my_adc(PA_7); //D11 on board
00009 AnalogIn my_abc(PA_6);
00010 //DigitalOut led(LED1);
00011 DigitalOut dat(D15); 
00012  int main(int argc, char *argv[]) {
00013  //long distance = sensor.distance(); 
00014  //long distanza =  distance;
00015  //printf("distanza  %d  \n",distanza);
00016   
00017 
00018  
00019  printf("Starting IBM MQTT demo:\n");
00020  TCPSocket socket;
00021  NetworkInterface *net = NetworkInterface::get_default_instance();
00022  if (!net) {
00023    printf("Error! No 11network inteface11 found.\n");
00024    return 0; }
00025  printf("Connecting to the network...\r\n");
00026  nsapi_size_or_error_t rc = net->connect();
00027  if (rc != 0) {
00028    printf("Error! _net->connect() returned: %d\r\n", rc);
00029    return -1; }
00030  rc = socket.open(net);
00031  if (rc != 0) {
00032    printf("Error! _socket.open() returned: %d\r\n", rc);
00033    return -1; }
00034  SocketAddress address;
00035  net->gethostbyname("dev.rightech.io",
00036                     &address);
00037  address.set_port(1883);
00038  printf("Opening connection to remote %s port %d\r\n",
00039         address.get_ip_address(), address.get_port());
00040  rc = socket.connect(address);
00041  if (rc != 0) {
00042    printf("Error! _socket.connect() returned: %d\r\n", rc);
00043    return -1; }
00044  printf("Connected socket\n");
00045  MQTTClient client(&socket);
00046  MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
00047  data.MQTTVersion = 3;
00048  data.clientID.cstring = "XXXXX";
00049  data.username.cstring = "ZZZ";
00050  data.password.cstring = "ZZZ";
00051  if ((rc = client.connect(data)) != 0)
00052    printf("rc from MQTT connect is %d\r\n", rc);  
00053  MQTT::Message message;
00054  
00055  while(1)
00056 {
00057      
00058  char *topic = "post";
00059  char buf[100];
00060  int distanza = round(my_adc*100);
00061  //sprintf(buf,
00062  //        "{\"d\":{\"ST\":\"Nucleo-IoT-mbed\",\"Temp\":%d,\"Pressure\":"
00063  //        "%d,\"Humidity\":%d}}", temp, press, hum);
00064  
00065  sprintf(buf,
00066              "{\"distanse\": %d}", distanza);
00067             wait_ns(1000000);   
00068           
00069 printf("Sending message: \n%s\n", buf);
00070 message.qos = MQTT::QOS0;
00071 message.retained = false;
00072 message.dup = false;
00073 message.payload = (void *)buf;
00074 message.payloadlen = strlen(buf);
00075 rc = client.publish(topic, message);
00076 printf("Message sent\n");
00077 printf("Demo concluded successfully \r\n");
00078  wait_ns(9000000000);
00079 
00080 
00081 
00082  
00083 char buf2[10];        
00084 int ogon = round(my_abc*100);           
00085 sprintf(buf2,
00086              "{\"ogon\": %d}", ogon);
00087              
00088              
00089             wait_ns(9000000000);
00090                        
00091  printf("Sending message: \n%s\n", buf2);
00092  message.qos = MQTT::QOS0;
00093  message.retained = false;
00094  message.dup = false;
00095  message.payload = (void *)buf2;
00096  message.payloadlen = strlen(buf2);
00097  rc = client.publish(topic, message);
00098  printf("Message sent\n");
00099  printf("Demo concluded successfully \r\n");
00100  wait_ns(10000000000);
00101  }
00102  return 0; }
00103