Я делаю так:
#include <stdio.h>
#include <curl/curl.h>
#include <bcm2835.h>
#define PIN 4 //GPIO куда включен датчик
void send_sms( const char *text, const char *phone, const char *api_key ) {
char url[1024];
char out_text[2048];
CURL *curl_handle;
strcpy(out_text, "text=");
strcat(out_text, text);
strcpy(url, "http://sms.ru/sms/send?api_id=");
strcat(url, api_key);
strcat(url, "&to=");
strcat(url, phone);
curl_handle = curl_easy_init();
curl_easy_setopt(curl_handle, CURLOPT_URL, url);
curl_easy_setopt(curl_handle, CURLOPT_POST, 1);
curl_easy_setopt(curl_handle, CURLOPT_POSTFIELDS, out_text);
curl_easy_perform(curl_handle);
curl_easy_cleanup(curl_handle);
}
int main(int argc, char **argv) {
unsigned isDetect = 0;
bcm2835_init();
bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_INPT);
while(1) {
int lev = bcm2835_gpio_lev(PIN); //1 - если обнаружено движение
if ((lev == 1) && (isDetect == 0)) {
send_sms("Обнаружен вор!", "7913482*****", "6fc2ba57-f75e-4e84-******-***");
isDetect = 1;
}
bcm2835_delay(1000);
}
bcm2835_close();
}
gcc main.c -O3 -Wall -o app -lbcm2835 -lcurl