add all sensors used

Dependencies:   mbed QEI-1 nRF24L01P xiugai

Committer:
brainliang
Date:
Tue Dec 01 01:38:26 2020 +0000
Revision:
7:dc221ddd4588
peixun_template

Who changed what in which revision?

UserRevisionLine numberNew contents of line
brainliang 7:dc221ddd4588 1 #include "sensors.h"
brainliang 7:dc221ddd4588 2 #include "mbed.h"
brainliang 7:dc221ddd4588 3 #include "esp8266.h"
brainliang 7:dc221ddd4588 4 #include "useful_func.h"
brainliang 7:dc221ddd4588 5
brainliang 7:dc221ddd4588 6 Serial ser2usb(PA_9, PA_10, 9600);
brainliang 7:dc221ddd4588 7 DigitalOut myled(PC_13);
brainliang 7:dc221ddd4588 8
brainliang 7:dc221ddd4588 9 //�����豸���ƣ����ڶ��ĺͷ�����Ϣ /********************************/
brainliang 7:dc221ddd4588 10 const char device[] = "living_room"; /* �����޸Ľڵ����� */
brainliang 7:dc221ddd4588 11 /*------------------------------*/
brainliang 7:dc221ddd4588 12 //�������д�����, ÿ��һ��, ÿ�������ֵ�λ���������, ��λһ�㲻д
brainliang 7:dc221ddd4588 13 // ������������Ĵ��������ƻ�������������, ����: lightIntencity
brainliang 7:dc221ddd4588 14 const char* sensors[][2] = { /*------------------------------*/
brainliang 7:dc221ddd4588 15 "sr501", "", /* �������Ӵ����� */
brainliang 7:dc221ddd4588 16 "report", "", /*------------------------------*/
brainliang 7:dc221ddd4588 17 NULL, NULL //last line must end with empty pointer
brainliang 7:dc221ddd4588 18 };
brainliang 7:dc221ddd4588 19
brainliang 7:dc221ddd4588 20 //��������ִ����, ÿ��һ��, ÿ�������ֲ����������������
brainliang 7:dc221ddd4588 21 // ����������ִ��������, ����: fan
brainliang 7:dc221ddd4588 22 const char* actuators[][2] = { /*------------------------------*/
brainliang 7:dc221ddd4588 23 "command", "", /* ��������ִ���� */
brainliang 7:dc221ddd4588 24 "dat", "", /********************************/
brainliang 7:dc221ddd4588 25 "light", "",
brainliang 7:dc221ddd4588 26 NULL, NULL //last line must end with empty pointer
brainliang 7:dc221ddd4588 27 };
brainliang 7:dc221ddd4588 28
brainliang 7:dc221ddd4588 29 int main()
brainliang 7:dc221ddd4588 30 {
brainliang 7:dc221ddd4588 31 // ����������
brainliang 7:dc221ddd4588 32 sr501 x(PA_0);
brainliang 7:dc221ddd4588 33
brainliang 7:dc221ddd4588 34 // ����ִ����
brainliang 7:dc221ddd4588 35 DigitalOut light(PA_13);
brainliang 7:dc221ddd4588 36
brainliang 7:dc221ddd4588 37 /*----- ��ʼ���׶� -----*/
brainliang 7:dc221ddd4588 38 // connect to wifi
brainliang 7:dc221ddd4588 39 ser2usb.printf("Initializing...\r\n");
brainliang 7:dc221ddd4588 40 Esp8266 client(PB_10, PB_11, "iot_b827eb8fb527", "7c02b50b");// TX pin / RX pin / SSID / Password
brainliang 7:dc221ddd4588 41
brainliang 7:dc221ddd4588 42 // connect to server
brainliang 7:dc221ddd4588 43 ser2usb.printf("connecting to mqtt server...\r\n");
brainliang 7:dc221ddd4588 44 mqtt_client_init(client, device, sensors, actuators);
brainliang 7:dc221ddd4588 45
brainliang 7:dc221ddd4588 46 // done report
brainliang 7:dc221ddd4588 47 ser2usb.printf("--Initialization done.--\r\n");
brainliang 7:dc221ddd4588 48
brainliang 7:dc221ddd4588 49
brainliang 7:dc221ddd4588 50 /*----- �������� -----*/
brainliang 7:dc221ddd4588 51 // declare buff
brainliang 7:dc221ddd4588 52 char actuator_name[32], control_value[32];
brainliang 7:dc221ddd4588 53
brainliang 7:dc221ddd4588 54
brainliang 7:dc221ddd4588 55 bool sr501_status = false;
brainliang 7:dc221ddd4588 56
brainliang 7:dc221ddd4588 57
brainliang 7:dc221ddd4588 58 /*----- ������ѭ�� -----*/
brainliang 7:dc221ddd4588 59 while (1)
brainliang 7:dc221ddd4588 60 {
brainliang 7:dc221ddd4588 61 // looking for new command
brainliang 7:dc221ddd4588 62 if (client.get_control_cmd(actuator_name, control_value))
brainliang 7:dc221ddd4588 63 {
brainliang 7:dc221ddd4588 64 ser2usb.printf("Received %s %s\r\n", actuator_name, control_value);
brainliang 7:dc221ddd4588 65 if (strcmp(actuator_name, "command") == 0) // �յ�command�µ�ָ��
brainliang 7:dc221ddd4588 66 {
brainliang 7:dc221ddd4588 67 ser2usb.printf("received_a_command\r\n");
brainliang 7:dc221ddd4588 68 client.publish_value("report", "received_a_command");
brainliang 7:dc221ddd4588 69 }
brainliang 7:dc221ddd4588 70 else if (strcmp(actuator_name, "dat") == 0) // �յ�dat�µ�ָ��
brainliang 7:dc221ddd4588 71 {
brainliang 7:dc221ddd4588 72 ser2usb.printf("received_a_data\r\n");
brainliang 7:dc221ddd4588 73 client.publish_value("report", "received_a_data");
brainliang 7:dc221ddd4588 74 }
brainliang 7:dc221ddd4588 75 else if (strcmp(actuator_name, "light") == 0) // �յ�light�µ�ָ��
brainliang 7:dc221ddd4588 76 {
brainliang 7:dc221ddd4588 77 ser2usb.printf("light control\r\n");
brainliang 7:dc221ddd4588 78 client.publish_value("report", "light_control");
brainliang 7:dc221ddd4588 79 if (strcmp(control_value, "on") == 0) // �����on
brainliang 7:dc221ddd4588 80 { // ����
brainliang 7:dc221ddd4588 81 light = 1;
brainliang 7:dc221ddd4588 82 ser2usb.printf("On. \r\n");
brainliang 7:dc221ddd4588 83 }
brainliang 7:dc221ddd4588 84 else if (strcmp(control_value, "off") == 0) // �����off
brainliang 7:dc221ddd4588 85 { // �ص�
brainliang 7:dc221ddd4588 86 light = 0;
brainliang 7:dc221ddd4588 87 ser2usb.printf("Off. \r\n");
brainliang 7:dc221ddd4588 88 }
brainliang 7:dc221ddd4588 89 }
brainliang 7:dc221ddd4588 90 else
brainliang 7:dc221ddd4588 91 {
brainliang 7:dc221ddd4588 92 ser2usb.printf("unknow actuator\r\n");
brainliang 7:dc221ddd4588 93 client.publish_value("report", "unknow_actuator");
brainliang 7:dc221ddd4588 94 }
brainliang 7:dc221ddd4588 95
brainliang 7:dc221ddd4588 96 if (x == sr501_status)
brainliang 7:dc221ddd4588 97 {
brainliang 7:dc221ddd4588 98 ;
brainliang 7:dc221ddd4588 99 }
brainliang 7:dc221ddd4588 100 else
brainliang 7:dc221ddd4588 101 {
brainliang 7:dc221ddd4588 102 sr501_status = x.read();
brainliang 7:dc221ddd4588 103 char sensor_buff[32]; /*++++++++++++++++++++++++++++++++++++++++++*/
brainliang 7:dc221ddd4588 104 sprintf(sensor_buff, "%d", sr501_status); /* �ϴ����ݷ��� */
brainliang 7:dc221ddd4588 105 client.publish_value(sensors[0][0], "_upload"); /* �������report�·���_upload��Ϣ */
brainliang 7:dc221ddd4588 106 wait(0.01); /* ��һ��ʱ����ϴ����������� */
brainliang 7:dc221ddd4588 107 client.publish_value(sensors[0][0], sensor_buff); /* �ϴ����������ݺ��һ��ʱ�� */
brainliang 7:dc221ddd4588 108 wait(0.01); /* Ȼ�������report�·���_end��Ϣ */
brainliang 7:dc221ddd4588 109 client.publish_value(sensors[0][0], "_end"); /*++++++++++++++++++++++++++++++++++++++++++*/
brainliang 7:dc221ddd4588 110 }
brainliang 7:dc221ddd4588 111 }
brainliang 7:dc221ddd4588 112 }
brainliang 7:dc221ddd4588 113 }