add all sensors used
Dependencies: mbed QEI-1 nRF24L01P xiugai
sensors/examples/Example_for_sr501.cpp@7:dc221ddd4588, 2020-12-01 (annotated)
- Committer:
- brainliang
- Date:
- Tue Dec 01 01:38:26 2020 +0000
- Revision:
- 7:dc221ddd4588
peixun_template
Who changed what in which revision?
User | Revision | Line number | New 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 | } |