Things used in this project

Hardware components:
Phpoc blue per 100x1000 euk22wtv9i
PHPoC Blue
×1
Mikrobus board pfuubo0pro
PHPoC mikroBUS Expansion Board
×1
MikroElektronika Vibra Sense Click
×1
Software apps and online services:
Q8wtlimqnp04fzhtr9v5
IFTTT Maker service

Code

task0.phpPHP
To fire IFTTT maker channel.
<?php
include_once "/lib/sd_340.php";
include_once "ifttt.php";

echo "PHPoC example : IFTTT maker channel.\r\n";

define("PIN_EN", 12);
define("PIN_INT", 8);

uio_setup(0, PIN_INT, "in"); // INT
uio_setup(0, PIN_EN, "out"); // EN

uio_out(0, PIN_EN, 1);

$previous_state = 0;
$current_state = 0;

while(1)
{
	$current_state = uio_in(0, PIN_INT);
	if($previous_state != $current_state)
	{
		$previous_state = $current_state;
		if($current_state == 1)
		{
			ifttt_maker("smstest", "", "", "");
		}
	}
}

?>
ifttt.phpPHP
Send trigger message to IFTTT.
<?php
 
include_once "/lib/sn_dns.php";
 
function ifttt_maker($event, $value1, $value2, $value3)
{
    $host_name = "maker.ifttt.com";
 
    $host_addr = dns_lookup($host_name, RR_A);
 
    if($host_addr == $host_name)
        $host_addr = dns_lookup($host_name, RR_A);
    
    if($host_addr == $host_name)
        exit "$host_name : Not Found\r\n";
 
    $tcp0_pid = pid_open("/mmap/tcp0");
 
    pid_bind($tcp0_pid, "", 0);
 
    error_log("connect to $host_addr:80...");
    pid_connect($tcp0_pid, $host_addr, 80);
 
    for(;;)
    {
        $state = pid_ioctl($tcp0_pid, "get state");
 
        if($state == TCP_CLOSED)
            pid_connect($tcp0_pid, $host_addr, 80);
        
        if($state == TCP_CONNECTED)
            break;
    }
 
    error_log("connected\r\n");
 
    $msg = "";
    if($value1 != "" || $value2 != "" || $value3 != "")
    {
        $msg = "{";
        
        if($value1 != "")
            $msg .= "\"value1\" : \"".$value1."\",";
                
        if($value2 != "")
            $msg .= "\"value2\" : \"".$value2."\",";
                
        if($value3 != "")
            $msg .= "\"value3\" : \"".$value3."\",";
                
        $msg = substr($msg, 0, strlen($msg) - 1);
        
        $msg .= " }";
    }
 
    $http_req  = "POST /trigger/".$event."/with/key/YOUR_KEY HTTP/1.1\r\n";
    $http_req .= "Host: $host_name\r\n";
    $http_req .= "Content-Type: application/json\r\n";
 
    if(strlen($msg) > 0)
        $http_req .= sprintf("Content-Length: %d", strlen($msg));
        
    $http_req .= "\r\n\r\n";
    
    if(strlen($msg) > 0)
        $http_req .= $msg;
 
    error_log($http_req);
    
    $sent = pid_send($tcp0_pid, $http_req);
 
    $rbuf = "";
    for(;;)
    {
        $temp = "";
        $read = pid_recv($tcp0_pid, $temp);
        if($read > 0)
            $rbuf .= $temp;
            
        if(strpos($rbuf, "\r\n\r\n") !== FALSE)
            break;
    
        if(pid_ioctl($tcp0_pid, "get state") == TCP_CLOSED || pid_ioctl($tcp0_pid, "get state") == SSL_CLOSED)
            break;
    }
    pid_close($tcp0_pid);
    error_log($rbuf);
    error_log("\r\nconnection closed\r\n");
}
?>

Credits

14680716 1124875910881129 6890362155269406301 n
Jack
5 projects • 4 followers
Contact

Replications

Did you replicate this project? Share it!

I made one

Love this project? Think it could be improved? Tell us what you think!

Give feedback

Comments

Sign up / LoginProjectsPlatformsTopicsContestsLiveAppsBetaBlog