{"id":685,"date":"2011-08-30T17:19:56","date_gmt":"2011-08-30T15:19:56","guid":{"rendered":"https:\/\/www.giannifavilli.it\/blog\/?p=685"},"modified":"2022-02-22T16:08:31","modified_gmt":"2022-02-22T15:08:31","slug":"arduino-webcontrol-gcal-sms","status":"publish","type":"post","link":"https:\/\/www.giannifavilli.it\/blog\/arduino-webcontrol-gcal-sms\/","title":{"rendered":"Arduino: Domotica e Antifurto con Controllo Remoto e Notifica <del datetime=\"2015-06-03T08:25:09+00:00\">SMS<\/del> Tramite Google Calendar"},"content":{"rendered":"<p><a href=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/arduino-gcal01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-691\" title=\"arduino-gcal01\" src=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/arduino-gcal01-161x300.jpg\" alt=\"\" width=\"161\" height=\"300\" srcset=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/arduino-gcal01-161x300.jpg 161w, https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/arduino-gcal01-80x150.jpg 80w, https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/arduino-gcal01.jpg 357w\" sizes=\"auto, (max-width: 161px) 100vw, 161px\" \/><\/a>La possibilit\u00e0 di controllare Arduino da remoto e una delle applicazioni sulla quale ho maggiore interessa. Trovo che Arduino abbia una forte predisposizione alla domotica OpenSource o FaiDaTe ed \u00e8 per questo motivo che cerco di scrivere degli Sketch orientati sull&#8217;aspetto di controllo degli attuatori da remoto.<\/p>\n<p>Se ci inseriamo anche la possibilit\u00e0 di inviare allarmi o notifiche via email o <del datetime=\"2015-06-03T08:25:09+00:00\">via SMS<\/del> senza dove per forza comprare un GSM Shield e senza costi aggiuntivi la cosa diventa ancor pi\u00f9 allettante e aumenta di molto la tipologia di utilizzo di Arduino.<\/p>\n<p>Rimanendo in ambiente domotica potremmo effettuare un allarme che avvisa <del datetime=\"2015-06-03T08:26:27+00:00\">con un SMS<\/del> all&#8217;accadere di un determinato evento.<\/p>\n<p>Questo esempio \u00e8 quello che andr\u00f2 a spiegare.<\/p>\n<p>Come dicevo in precedenza, l&#8217;idea di avere da Arduino delle <del datetime=\"2015-06-03T08:26:27+00:00\">notifiche via SMS<\/del> rapidi e veloci mi era sempre piaciuta. Il problema diventava l&#8217;acquisto di un GSM Shield. Ero arrivato al punto di smontare un vecchio Nokia 3210 per integrarlo con Arduino &#8230; capiraiii \ud83d\ude10 &#8230; come se fosse una cosa semplice e banale, come direbbero gli Afterhours \ud83d\ude42<\/p>\n<div class=\"alert alert-error fade in\">Attenzione, Gooogle dal 27\/06\/2015 ha disabilitato le notifiche via SMS. L&#8217;articolo cos\u00ec come scritto non \u00e8 pi\u00f9 valido. Rimane online solo per mantenere uno storico.<\/div>\n<p><!--more--><\/p>\n<div class=\"clear-block\"><div class=\"ad alignnone\">\n\t\t\t\t<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n\t\t\t\t<!-- GianniFavilli - Responsive -->\n\t\t\t\t<ins class=\"adsbygoogle\"\n\t\t\t\t     style=\"display:block\"\n\t\t\t\t     data-ad-client=\"ca-pub-1205156047762515\"\n\t\t\t\t     data-ad-slot=\"6873384605\"\n\t\t\t\t     data-ad-format=\"auto\"><\/ins>\n\t\t\t\t<script>\n\t\t\t\t(adsbygoogle = window.adsbygoogle || []).push({});\n\t\t\t\t<\/script>\n\t\t\t\t<\/div><\/div>\n<p>Lasciato alle spalle il progetto implementazione Nokia 3210 e Arduino mi stavo rassegnando ad utilizzare solo le notifiche via email, che dal mio punto di vista non sono il massimo della rapidit\u00e0 dato che con il mio smartphone faccio un controllo ogni ora e non ho assolutamente voglia di lasciare la connessione UMTS sempre attiva.<\/p>\n<p>Un bel giorno mi venne in mente che il Signor Google mette a disposizione un servizio di <del datetime=\"2015-06-03T08:26:27+00:00\">notifica via SMS<\/del> per gli eventi aggiunti sul proprio calendario condiviso. Ero arrivato alla soluzione\u00a0&#8230; dovevo utilizzare Google Calendar<\/p>\n<p>Il problema adesso diveniva il capire come far inserire l&#8217;evento di Arduino dentro Google Calendar e qui mi \u00e8 venuto ad aiutare\u00a0<a href=\"http:\/\/www.salisnet.eu\/scheda.php?id=32#\" target=\"_blank\" rel=\"noopener\">SalisNet.eu &#8211; Aggiungere un evento a Google Calendar<\/a>\u00a0che ha scritto un bell&#8217;articolo sulla possibilit\u00e0 si inserire eventi tramite un form HTML e PHP &#8230; era proprio quello che stavo cercando!!!<\/p>\n<h2>Fatti un idea di cosa pu\u00f2 fare il progetto<\/h2>\n<p>Vedi l&#8217;articolo <a title=\"Go Arduino!!!\" href=\"https:\/\/www.giannifavilli.it\/blog\/go-arduino\/\">Go Arduino!!!<\/a><\/p>\n<p><iframe loading=\"lazy\" width=\"1161\" height=\"871\" src=\"https:\/\/www.youtube.com\/embed\/LGWX53bU_Ks?feature=oembed\" frameborder=\"0\" allowfullscreen><\/iframe><br \/>\n\t<!--\n\t<div class=\"paga_box_sandbox\"><h4>In questo momento non fare donazioni, sto testando il sistema. Grazie!<\/h4>\t<p>Donazione per il mantenimento del blog<\/p>\n\t<form method=\"post\" name=\"paypal_form_donag_841\" action=\"https:\/\/www.sandbox.paypal.com\/cgi-bin\/webscr\">\n\t\t<input type=\"hidden\" name=\"business\" value=\"info@giannifavilli.it\" \/>\n\t\t<input type=\"hidden\" name=\"cmd\" value=\"_donations\" \/>\n\t\t<input type=\"hidden\" name=\"return\" value=\"http:\/\/www.giannifavilli.it\/blog\/grazie\/\" \/>\n\t\t<input type=\"hidden\" name=\"cancel_return\" value=\"http:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/685\" \/>\n\t\t<input type=\"hidden\" name=\"notify_url\" value=\"http:\/\/www.giannifavilli.it\/listen\/donazione_pp_ipn.php\" \/>\n\t\t<input type=\"hidden\" name=\"rm\" value=\"2\" \/>\n\t\t<input type=\"hidden\" name=\"currency_code\" value=\"EUR\" \/>\n\t\t<input type=\"hidden\" name=\"lc\" value=\"IT\" \/>\n\t\t<input type=\"hidden\" name=\"cbt\" value=\"Grazie! Premi qui per torna sul blog\" \/>\n\t\t<input type=\"hidden\" name=\"item_name\" value=\"Donazione per il mantenimento del blog Gianni Favilli\" \/>\n\t\t<div style=\"text-align:center; width:100%; margin: auto;\">\n\t\t<select class=\"\" name=\"amount\" id=\"amount\" style=\"margin: auto;\">\n\t\t\t<option value=\"1\">Offrimi un Caff\u00e8 - 1 Euro<\/option>\n\t\t\t<option value=\"3\">Offrimi un Aperitivo - 3 Euro<\/option>\n\t\t\t<option value=\"5\">Offrimi una Birra - 5 Euro<\/option>\n\t\t\t<option value=\"15\">Offrimi una Pizza - 15 Euro<\/option>\n\t\t\t<option value=\"25\">Offrimi una Cena - 25 Euro<\/option>\n\t\t<\/select>\n\t\t<\/div>\n\t\t<!\/\/\/\/--<input type=\"hidden\" name=\"custom\" value=\"\" \/>-\/\/\/\/->\n\t\t<input type=\"hidden\" name=\"custom\" value=\"DonazioneGenericaGF\" \/>\n\t\t<input type=\"hidden\" name=\"no_note\" value=\"1\" \/>\n\t\t<input class=\"pulsantepp\" type=\"image\" src=\"https:\/\/www.paypalobjects.com\/it_IT\/IT\/i\/btn\/btn_donateCC_LG.gif\" name=\"submit\" alt=\"PayPal - Il metodo rapido, sicuro e affidabile per fare donazioni.\" \/>\n\t<\/form>\n\t<\/div>\n\t-->\n\t<\/p>\n<div class=\"alert alert-error fade in\">Attenzione, Google ha introdotto le API per connettersi ai calendari personali. Pertanto il progetto cos\u00ec come scritto non \u00e8 funzionate!<\/div>\n<h2>Iniziamo con la spiegazione pratica e i codici.<\/h2>\n<h4><strong>Di cosa abbiamo bisogno:<\/strong><\/h4>\n<ul>\n<li><strong>Buona conoscenza di PHP!!!<\/strong><\/li>\n<li><strong>Server WEB (Apache e PHP)<\/strong> <em>MySQL al momento non ci interessa, pu\u00f2 essere utile per successive applicazioni.<\/em><\/li>\n<li><strong>2 Account di Google<\/strong> o l&#8217;iscrizione a GoogleAPPS con 2 account di nostra propriet\u00e0.<\/li>\n<li>Saper utilizzare Google Calendar ed aver attivato le notifiche di Google Calendar per il proprio cellulare.<\/li>\n<li>Arduino + Ethernet Shield<\/li>\n<li>Interruttore magnetico o altro tipo di attuatore, sensori e altri componenti elettrici vedi (<a href=\"https:\/\/www.giannifavilli.it\/blog\/arduino-controllo-remoto-http\/\" target=\"_blank\" rel=\"noopener\">Arduino con controllo remoto via HTTP<\/a>)<\/li>\n<\/ul>\n<p><strong>Il codice di Arduino:<\/strong><\/p>\n<p><strong>Descrizione pratica:<\/strong> Arduino rimane in ascolto di una stringa http che abbia come parte finale <code>ATT=1<\/code>\u00a0quando questo evento si verifica, \u00a0viene attivato &#8220;l&#8217;antifurto&#8221;. Con &#8220;antifurto&#8221; attivo, se si verifica un determinato evento sull&#8217;interruttore magnetico o qualunque altro attuatore, Arduino invia un GET con tutti i parametri ad una pagina PHP che elabora la richiesta.<\/p>\n<div class=\"clear-block\"><div class=\"ad alignnone\">\n\t\t\t\t<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n\t\t\t\t<!-- GianniFavilli - Responsive -->\n\t\t\t\t<ins class=\"adsbygoogle\"\n\t\t\t\t     style=\"display:block\"\n\t\t\t\t     data-ad-client=\"ca-pub-1205156047762515\"\n\t\t\t\t     data-ad-slot=\"6873384605\"\n\t\t\t\t     data-ad-format=\"auto\"><\/ins>\n\t\t\t\t<script>\n\t\t\t\t(adsbygoogle = window.adsbygoogle || []).push({});\n\t\t\t\t<\/script>\n\t\t\t\t<\/div><\/div>\n<pre class=\"lang:arduino decode:true\">...\r\n\r\n\/* ***\r\n controllare un attuatore via web\r\n con sensori di temperatura, luce e interruttore magnetico\r\n ed invivio di GET per la notifica dello status via SMS con Google Calendar\r\n ARDUINO UNO\r\n ETHERNET SHIELD\r\n by Gianni Favilli - www.giannifavilli.it\r\n Readme: https:\/\/www.giannifavilli.it\/blog\/arduino-webcontrol-gcal-sms\r\n *** *\/\r\n\r\n...\r\n\r\nvoid loop(){\r\n\r\n...\r\n\r\n  \/*inizio lettura switch*\/\r\n  valSwitch = digitalRead(inSwitch);  \/\/ legge il valore dell'input switch\r\n  \/*fine clacolo switch*\/\r\n\r\n  \/*inizio attuatore led interruttore magnetico*\/\r\n  \/\/ accendo o spengo un led se l'interruttore viene aperto o chiuso\r\n  if (valSwitch == HIGH) {\r\n    digitalWrite(ledPinSwitch, HIGH);  \/\/ accende il LED dell'interruttore magnetico\r\n    NotifyValSwitch = 1; \/\/ attiva il notificatore dell'interruttore magnetico\r\n\t\/\/ conta i cicli ad ogni loop per evitare l'invio di 'infiniti' sms\r\n\t\/\/ l'sms viene inviato solo quanto ContaCicliNotifica = 1 ovvero solo al primo loop\r\n    ContaCicliNotifica = ContaCicliNotifica++;\r\n  }\r\n  else { \/\/ altrimenti\r\n    digitalWrite(ledPinSwitch, LOW);  \/\/ spegne il LED dell'interruttore magnetico\r\n    ContaCicliNotifica = 0;\r\n    NotifyValSwitch = 0;\r\n  }\r\n  \/*fine attuatore led interruttore magnetico*\/\r\n\r\n  \/\/ abilito il client-server per la lettura in ingresso della stringa http\r\n  Client client = server.available();\r\n\r\n  if (client) {\r\n    boolean currentLineIsBlank. = true;\r\n    while (client.connected()) {\r\n      if (client.available()) {\r\n        char c = client.read();\r\n        leggoStringa.concat(c);\r\n        if (c == '\\n' &amp;&amp; currentLineIsBlank) {\r\n          if(leggoStringa.indexOf(\"ATT=1\") &gt; 0) { \/\/ controllo se nella stringa http in entrata finisce con ON\r\n            \/\/ se e' ON\r\n            digitalWrite(outPinRele, HIGH); \/\/ attiva rele'\r\n            digitalWrite(ledPinNotify, HIGH); \/\/ attiva led\r\n            Notifica = true; \/\/ attivo la notifica degli sms\r\n            Serial.println(\"Notifiche ON\");\r\n          }\r\n          else{\r\n            \/\/ se e' OFF\r\n            digitalWrite(outPinRele, LOW); \/\/ disattiva rele'\r\n            digitalWrite(ledPinNotify, LOW); \/\/ disattiva led\r\n            Notifica = false; \/\/ disabilito la notifica degli sms\r\n            Serial.println(\"Notifiche OFF\");\r\n          }\r\n          \/\/ COSTRUZIONE PAGINA HTML CHE RISPONDE SE LE NOTIFICHE SONO ATTIVE O MENO\r\n          client.println(\"HTTP\/1.1 200 OK\");\r\n          client.println(\"Content-Type: text\/html\");\r\n          client.println();\r\n          \/\/ inizio HTML\r\n          client.print(\"&lt;html&gt;&lt;head&gt;&lt;title&gt;ARDUINO Controllo Led via WEB&lt;\/title&gt;&lt;meta http-equiv='Content-Type' content='text\/html; charset=iso-8859-1' &gt;&lt;\/head&gt;&lt;body&gt;\");\r\n          client.println(\"&lt;h1&gt;STATO NOTIFICHE VIA SMS&lt;\/h1&gt;\");\r\n          client.println(\"&lt;hr \/&gt;\");\r\n\r\n          \/\/ scrivo lo stato di arduino (ON - OFF)\r\n\r\n          if (Notifica) {\r\n            client.println(\"&lt;h2 style='color:green'&gt;NOTIFICHE ATTIVE&lt;\/h2&gt;\");\r\n          }\r\n          else\r\n          {\r\n            client.println(\"&lt;h2 style='color:grey'&gt;NOTIFICHE NON ATTIVE&lt;\/h2&gt;\");\r\n          }\r\n          client.println(\"&lt;hr \/&gt;&lt;a href='https:\/\/www.giannifavilli.it'&gt;&lt;em&gt;Visita GianniFavilli.it&lt;\/em&gt;&lt;\/a&gt;\");\r\n\t\t  client.println(\"&lt;br \/&gt;&lt;a href='https:\/\/www.giannifavilli.it\/blog\/arduino-webcontrol-gcal-sms'&gt;&lt;em&gt;Leggi l'Articolo Completo&lt;\/em&gt;&lt;\/a&gt;\");\r\n\r\n          \/\/ termino l'html\r\n          client.println(\"&lt;\/body&gt;&lt;\/html&gt;\");\r\n\r\n          \/\/ svuoto la stringa per una successiva lettura\r\n          leggoStringa=\"\";\r\n          \/\/ fermo il client in ingresso\r\n          client.stop();\r\n\r\n        } \/\/if c == \/n\r\n      } \/\/ if client available\r\n    } \/\/ while client connesso\r\n  } \/\/ if client\r\n\r\n  \/\/ controllo se le notifiche via sms sono attive,\r\n  \/\/se NotifyValSwitch \u00e8 = 1 e se ContaCicliNotifica \u00e8 = 1\r\n  if(Notifica == true &amp;&amp; NotifyValSwitch == 1 &amp;&amp; ContaCicliNotifica == 1){\r\n\tSerial.println(\"invio il GET alla pagina PHP\");\r\n    \/\/ abilito il client per l'invio del GET\r\n    Client client_send(serverphp,80);\r\n    if (client_send.connect()) {\r\n      \/\/definisco il GET con i dati da inviare\r\n      client_send.print(\"GET \/pagina-che-ascolta..php?Board=ArduinoUNO&amp;Location=Roma&amp;\");\r\n      \/\/ invio il valore ContaCicliNotifica fondamentale per inviare gli sms\r\n      \/\/ il php elabora la richiesta SSE Cicli=1 ovvero lavora solo il primo loop\r\n      client_send.print(\"Cicli=\");\r\n...<\/pre>\n<div class=\"alert alert-error fade in\">Attenzione, Google ha introdotto le API per connettersi ai calendari personali. Pertanto il progetto cos\u00ec come scritto non \u00e8 funzionate!<\/div>\n\t<!--\n\t<div class=\"paga_box_sandbox\"><h4>In questo momento non fare donazioni, sto testando il sistema. Grazie!<\/h4>\t<p>Donazione per il mantenimento del blog<\/p>\n\t<form method=\"post\" name=\"paypal_form_donag_841\" action=\"https:\/\/www.sandbox.paypal.com\/cgi-bin\/webscr\">\n\t\t<input type=\"hidden\" name=\"business\" value=\"info@giannifavilli.it\" \/>\n\t\t<input type=\"hidden\" name=\"cmd\" value=\"_donations\" \/>\n\t\t<input type=\"hidden\" name=\"return\" value=\"http:\/\/www.giannifavilli.it\/blog\/grazie\/\" \/>\n\t\t<input type=\"hidden\" name=\"cancel_return\" value=\"http:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/685\" \/>\n\t\t<input type=\"hidden\" name=\"notify_url\" value=\"http:\/\/www.giannifavilli.it\/listen\/donazione_pp_ipn.php\" \/>\n\t\t<input type=\"hidden\" name=\"rm\" value=\"2\" \/>\n\t\t<input type=\"hidden\" name=\"currency_code\" value=\"EUR\" \/>\n\t\t<input type=\"hidden\" name=\"lc\" value=\"IT\" \/>\n\t\t<input type=\"hidden\" name=\"cbt\" value=\"Grazie! Premi qui per torna sul blog\" \/>\n\t\t<input type=\"hidden\" name=\"item_name\" value=\"Donazione per il mantenimento del blog Gianni Favilli\" \/>\n\t\t<div style=\"text-align:center; width:100%; margin: auto;\">\n\t\t<select class=\"\" name=\"amount\" id=\"amount\" style=\"margin: auto;\">\n\t\t\t<option value=\"1\">Offrimi un Caff\u00e8 - 1 Euro<\/option>\n\t\t\t<option value=\"3\">Offrimi un Aperitivo - 3 Euro<\/option>\n\t\t\t<option value=\"5\">Offrimi una Birra - 5 Euro<\/option>\n\t\t\t<option value=\"15\">Offrimi una Pizza - 15 Euro<\/option>\n\t\t\t<option value=\"25\">Offrimi una Cena - 25 Euro<\/option>\n\t\t<\/select>\n\t\t<\/div>\n\t\t<!\/\/\/\/--<input type=\"hidden\" name=\"custom\" value=\"\" \/>-\/\/\/\/->\n\t\t<input type=\"hidden\" name=\"custom\" value=\"DonazioneGenericaGF\" \/>\n\t\t<input type=\"hidden\" name=\"no_note\" value=\"1\" \/>\n\t\t<input class=\"pulsantepp\" type=\"image\" src=\"https:\/\/www.paypalobjects.com\/it_IT\/IT\/i\/btn\/btn_donateCC_LG.gif\" name=\"submit\" alt=\"PayPal - Il metodo rapido, sicuro e affidabile per fare donazioni.\" \/>\n\t<\/form>\n\t<\/div>\n\t-->\n\t\n<div class=\"alert alert-info fade in\"><strong>Perch\u00e9?<\/strong> Semplicemente perch\u00e9 non ritengo giusto che il mio codice venga utilizzato da terzi per lucrare, facendo un semplice copia e incolla, mentre il sottoscritto ha dovuto impiegarci tempo, studio, know-how e fatica!!!<br \/>\nSe ci\u00f2 non ti sembra giusto sei liberissimo di prendere visione del codice reso disponibile e studiarlo! \ud83d\ude09<\/div>\n<h4>Impostare Google Calendar:<\/h4>\n<p><a href=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/google-calendar-final1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-695\" title=\"Google Calendar\" src=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/google-calendar-final1-282x300.png\" alt=\"\" width=\"203\" height=\"216\" srcset=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/google-calendar-final1-282x300.png 282w, https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/google-calendar-final1-141x150.png 141w, https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/google-calendar-final1.png 307w\" sizes=\"auto, (max-width: 203px) 100vw, 203px\" \/><\/a>Inanzi tutto dobbiamo predisporre di 2 Account di Google o se utilizziamo GoogleAPPS dobbiamo possedere 2 account che possiamo gestire in piena libert\u00e0.<\/p>\n<p><strong>L&#8217;account principale<\/strong> \u00e8 quello dove andremo ad attivare le <del datetime=\"2015-06-03T08:26:27+00:00\">notifiche con SMS<\/del>. Per farlo andate sulle <em><strong>Impostazioni<\/strong> <strong>Calendar<\/strong><\/em>.<\/p>\n<p>Una volta attivate sempre dalle impostazioni abilitiamo la <del datetime=\"2015-06-03T08:26:27+00:00\">notifica via SMS<\/del> degli <strong><em>Inviti agli Eventi<\/em><\/strong>. Per farlo, sempre dalle impostazioni andate su <em><strong>Calendari<\/strong><\/em> e cliccate su <em><strong>Notifiche<\/strong><\/em> del vostro calendario predefinito.<\/p>\n<p>A questo punto l&#8217;account principale \u00e8 pronto.<\/p>\n<p><strong>L&#8217;account secondario<\/strong> \u00e8 quello con cui invieremo gli inviti ai nuovi eventi.<\/p>\n<p>Per farlo \u00e8 necessario condividere il nostro calendario con l&#8217;account principale, questa operazione pu\u00f2 essere fatta dalle <em><strong>Impostazioni Calendar<\/strong><\/em>.<\/p>\n<p>Quando create la condivisione del calendario con l&#8217;account principale consiglio di abilitare i permessi di modifica degli eventi.<\/p>\n<p>Una volta accettato l&#8217;invito della condivisione tra l&#8217;account principale e quello secondario siamo pronti per configurare i file PHP.<\/p>\n<h4>La parte in PHP:<\/h4>\n<p><a href=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/php.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-698 alignleft\" title=\"php\" src=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/php-300x158.png\" alt=\"\" width=\"144\" height=\"76\" \/><\/a>Come dicevo prima, grazie ad un articolo letto su <a href=\"http:\/\/www.salisnet.eu\/scheda.php?id=32\" target=\"_blank\" rel=\"noopener\">SalisNet.eu<\/a>\u00a0sono riuscito ad inserire i nuovi eventi su GoogleCalendar senza per forza dover accedere tramite browser a Gcal. L&#8217;articolo sopra riportato spiega come inserire un nuovo evento su Gcal sutilizzando semplicemente un Form in HTML.<\/p>\n<p>Presi i file necessari messi a disposizione da SalisNet.eu ho dovuto apportare alcune modifiche fondamentali al funzionamento dell&#8217;invio dei dati a Google Calendar. Questi sotto riportati sono i file in PHP di cui necessitiamo con la descrizione delle modifiche da fare.<\/p>\n<p><em>pagina-che-ascolta.php<\/em><\/p>\n<p>Il codice che segue deve essere inserito in un file nominato\u00a0<em>pagina-che-ascolta.php <\/em>cambiate pure nome ma ricordate di modificare anche lo SKETCH di Arduino quando viene inviato il GET.<\/p>\n<p><strong>Descrizione:<\/strong> Questo file controlla se alla pagina viene inviato un GET in caso affermativo controlla se la variabile <em>Cicli=1<\/em>\u00a0questo controllo \u00e8 fondamentale per evitare di inviare la notifica ogni volta che il loop viene lavorato. A questo punto viene inviato il report tramite il file <em>GoogleCalendarWrappeNotifier.php <\/em>che spieghero successivamente.<\/p>\n<p>In caso non ci sia un GET che fa richiesta della pagina, aprendo questa con un browser web abbiamo la possibilit\u00e0 di ATTIVARE o DISATTIVARE le notifiche con l&#8217;utilizzo di un FORM HTML ricordate di modificare l&#8217;ACTION del form indicando l&#8217;indirizzo IP di Arduino.<\/p>\n<div class=\"clear-block\"><div class=\"ad alignnone\">\n\t\t\t\t<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n\t\t\t\t<!-- GianniFavilli - Responsive -->\n\t\t\t\t<ins class=\"adsbygoogle\"\n\t\t\t\t     style=\"display:block\"\n\t\t\t\t     data-ad-client=\"ca-pub-1205156047762515\"\n\t\t\t\t     data-ad-slot=\"6873384605\"\n\t\t\t\t     data-ad-format=\"auto\"><\/ins>\n\t\t\t\t<script>\n\t\t\t\t(adsbygoogle = window.adsbygoogle || []).push({});\n\t\t\t\t<\/script>\n\t\t\t\t<\/div><\/div>\n<pre class=\"lang:php decode:true \">&lt;?php\r\n\r\n\/\/ controllo sull'invio da form\r\n\r\nif(!empty($_GET)) \/\/ controllo se ho un GET altrimenti costruisco l'html\r\n{\r\n\r\n\/\/ controllo se e' il GET giusto con notifica attiva e ciclo = 1\r\n\tif($_GET[\"Cicli\"]==\".1\")\r\n\t{\r\n\r\n$contenuto = \"*** INIZIO RAPPORTO ***\\n\\n\";\r\nforeach ($_GET as $key =&gt; $value)\r\n...\r\n$contenuto .= \"\\n*** FINE RAPPORTO ***\";\r\n\r\n\/\/elaboro ora\r\n$dataevento = date(\"Y-m-d\");\r\n$tempoevento = date(\"H:i:s\");\r\n\r\n\/\/ inclusione del file di classe\r\n@require_once(\"GoogleCalendarWrappeNotifier.php\");\r\n\r\n\/\/ istanza della classe\r\n\/\/ inserire username e password dell'account di google\r\n$gc = new GoogleCalendarWrapper(\"UserAccountSecondarioGoogle@google.com\", \"passworddigoogle\");\r\n\r\n\/\/ parametri per l'inserimento\r\n$evento = array();\r\n$evento[\"title.\"] = filter_var($_GET[\"Board\"], FILTER_SANITIZE_STRING);\r\n$evento[\"content\"] = filter_var($contenuto, FILTER_SANITIZE_STRING);\r\n$evento[\"where\"] = filter_var($_GET[\"Location.\"], FILTER_SANITIZE_STRING);\r\n$evento[\"startDay\"] = filter_var($dataevento, FILTER_SANITIZE_STRING);\r\n$evento[\"startTime\"] = filter_var($tempoevento, FILTER_SANITIZE_STRING);\r\n$evento[\"endDay\"] = filter_var($dataevento, FILTER_SANITIZE_STRING);\r\n$evento[\"endTime\"] = filter_var($tempoevento, FILTER_SANITIZE_STRING);\r\n\r\n\/\/ chimata al metodo per l'inserimento\r\nif($gc-&gt;add_event($evento)){\r\n\r\n   \/\/ notifica in caso di inserimento\r\n\r\n}else{\r\n\r\n   \/\/ notifica in caso d'insuccesso\r\n\r\n  }\r\n\r\n\t} \/\/ if get giusto\r\n} \/\/ if(!empty($_GET))\r\n\telse\r\n{\r\n\t\/\/scrivo l'html per controllare le notifiche di arduino\r\n?&gt;\r\n\r\n&lt;!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd\"&gt;\r\n&lt;html xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"&gt;\r\n&lt;head&gt;\r\n&lt;meta name=\"author\" content=\"Gianni Favilli\" \/&gt;\r\n&lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=utf-8\" \/&gt;\r\n&lt;title&gt;Arduino WEBCONTROL con GoogleCalendar SMS Notifier by GianniFavilli.it&lt;\/title&gt;\r\n&lt;\/head&gt;\r\n\r\n&lt;body&gt;\r\n&lt;h1&gt;NOTIFICHE&lt;\/h1&gt;\r\n&lt;form method=\"get\" action=\"http:\/\/indirizzo-o-ip-arduino\" name\"attivatore\"&gt;\r\n  &lt;label&gt;\r\n    &lt;input type=\"radio\" name=\"ATT\" id=\"on\" value=\".1\" \/&gt;\r\n    ATTIVA&lt;\/label&gt;\r\n      &lt;label&gt;\r\n    &lt;input type=\"radio\" name=\"ATT\" id=\"off\" value=\"0\" \/&gt;\r\n    DIATTIVA&lt;\/label&gt;\r\n    &lt;input type=submit value=\"Invia Comando\"&gt;\r\n&lt;\/form&gt;\r\n&lt;p&gt; &lt;\/p&gt;\r\n&lt;p&gt;&lt;a href='https:\/\/www.giannifavilli.it'&gt;&lt;em&gt;Visita GianniFavilli.it&lt;\/em&gt;&lt;\/a&gt; o\r\n&lt;a href='https:\/\/www.giannifavilli.it\/blog\/https:\/\/www.giannifavilli.it\/blog\/arduino-webcontrol-gcal-sms'&gt;&lt;em&gt;Leggi l'Articolo Completo&lt;\/em&gt;&lt;\/a&gt;&lt;\/p&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<div class=\"alert alert-error fade in\">Attenzione, Google ha introdotto le API per connettersi ai calendari personali. Pertanto il progetto cos\u00ec come scritto non \u00e8 funzionate!<\/div>\n\t<!--\n\t<div class=\"paga_box_sandbox\"><h4>In questo momento non fare donazioni, sto testando il sistema. Grazie!<\/h4>\t<p>Donazione per il mantenimento del blog<\/p>\n\t<form method=\"post\" name=\"paypal_form_donag_505\" action=\"https:\/\/www.sandbox.paypal.com\/cgi-bin\/webscr\">\n\t\t<input type=\"hidden\" name=\"business\" value=\"info@giannifavilli.it\" \/>\n\t\t<input type=\"hidden\" name=\"cmd\" value=\"_donations\" \/>\n\t\t<input type=\"hidden\" name=\"return\" value=\"http:\/\/www.giannifavilli.it\/blog\/grazie\/\" \/>\n\t\t<input type=\"hidden\" name=\"cancel_return\" value=\"http:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/685\" \/>\n\t\t<input type=\"hidden\" name=\"notify_url\" value=\"http:\/\/www.giannifavilli.it\/listen\/donazione_pp_ipn.php\" \/>\n\t\t<input type=\"hidden\" name=\"rm\" value=\"2\" \/>\n\t\t<input type=\"hidden\" name=\"currency_code\" value=\"EUR\" \/>\n\t\t<input type=\"hidden\" name=\"lc\" value=\"IT\" \/>\n\t\t<input type=\"hidden\" name=\"cbt\" value=\"Grazie! Premi qui per torna sul blog\" \/>\n\t\t<input type=\"hidden\" name=\"item_name\" value=\"Donazione per il mantenimento del blog Gianni Favilli\" \/>\n\t\t<div style=\"text-align:center; width:100%; margin: auto;\">\n\t\t<select class=\"\" name=\"amount\" id=\"amount\" style=\"margin: auto;\">\n\t\t\t<option value=\"1\">Offrimi un Caff\u00e8 - 1 Euro<\/option>\n\t\t\t<option value=\"3\">Offrimi un Aperitivo - 3 Euro<\/option>\n\t\t\t<option value=\"5\">Offrimi una Birra - 5 Euro<\/option>\n\t\t\t<option value=\"15\">Offrimi una Pizza - 15 Euro<\/option>\n\t\t\t<option value=\"25\">Offrimi una Cena - 25 Euro<\/option>\n\t\t<\/select>\n\t\t<\/div>\n\t\t<!\/\/\/\/--<input type=\"hidden\" name=\"custom\" value=\"\" \/>-\/\/\/\/->\n\t\t<input type=\"hidden\" name=\"custom\" value=\"DonazioneGenericaGF\" \/>\n\t\t<input type=\"hidden\" name=\"no_note\" value=\"1\" \/>\n\t\t<input class=\"pulsantepp\" type=\"image\" src=\"https:\/\/www.paypalobjects.com\/it_IT\/IT\/i\/btn\/btn_donateCC_LG.gif\" name=\"submit\" alt=\"PayPal - Il metodo rapido, sicuro e affidabile per fare donazioni.\" \/>\n\t<\/form>\n\t<\/div>\n\t-->\n\t\n<div class=\"alert alert-info fade in\"><strong>Perch\u00e9?<\/strong> Semplicemente perch\u00e9 non ritengo giusto che il mio codice venga utilizzato da terzi per lucrare, facendo un semplice copia e incolla, mentre il sottoscritto ha dovuto impiegarci tempo, studio, know-how e fatica!!!<br \/>\nSe ci\u00f2 non ti sembra giusto, sei liberissimo di prendere visione del codice reso disponibile e studiarlo! \ud83d\ude09<\/div>\n<h4><em>GoogleCalendarWrappeNotifier.php<\/em><\/h4>\n<p>Per utilizzare questo sistema abbiamo bisogno di 2 classi. La prima \u00e8 questa che segue, alla quale ho apportato delle modifiche fondamentali all&#8217;utilizzo delle notifiche con Arduino.<\/p>\n<p>Questo file deve essere nominato\u00a0<em>GoogleCalendarWrappeNotifier.php<\/em><\/p>\n<p>Attenzione alla Riga 35, dovete modificare il valore tra virgolette, inserendo l&#8217;indirizzo email del vostro account primario, quello dove avete attivato le <del datetime=\"2015-06-03T08:26:27+00:00\">notifiche via SMS<\/del> quando venite invitati ad un nuovo evento.<\/p>\n<h4><em>MyCurl.php<\/em><\/h4>\n<p>L&#8217;ultima classe da utilizzare \u00e8\u00a0<em>MyCurl.php <\/em>la potete scaricare da <a href=\"http:\/\/www.salisnet.eu\/scheda.php?id=32\" target=\"_blank\" rel=\"noopener\">SalisNet.eu<\/a> modificando l&#8217;estensione del file da TXT a PHP.<\/p>\n<p>Attenzione: per far funzionare questa classe sul server PHP deve essere attiva l&#8217;estensione <em>php_curl<\/em>.<\/p>\n<h4>Conclusioni:<\/h4>\n<p>Per concludere, con qualche conoscenza in PHP ci possiamo sbizzarrire per l&#8217;invio di notifiche via email o <del datetime=\"2015-06-03T08:26:27+00:00\">via SMS<\/del> se il sensore di movimento percepisce una variazione ambientale, se la temperatura supera una certa soglia, se la luminosit\u00e0 della stanza varia o se qualunque attuatore cambia di stato.<\/p>\n<p>Per far questo basta modificare il GET di Arduino e il file pagina-che-ascolta.php.<\/p>\n<div id=\"attachment_808\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/ArduinoRemoteControl.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-808\" class=\"size-thumbnail wp-image-808\" title=\"ArduinoRemoteControl\" src=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/ArduinoRemoteControl-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/ArduinoRemoteControl-150x150.jpg 150w, https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2011\/08\/ArduinoRemoteControl-64x64.jpg 64w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><p id=\"caption-attachment-808\" class=\"wp-caption-text\">Screenshot del mio smartphone per il controllo remoto di Arduino<\/p><\/div>\n<p>Potremmo anche agganciare un DataBase in MySQL per registrare gli eventi e avere delle tabelle che ci permetto di fare operazioni dinamiche in base ai valori inviati dal GET di Arduino.<\/p>\n<p>Per la precisione con MySQL possiamo registrare l&#8217;ultimo stato di Arduino, dato che il povero Arduino cambia stato in base alla stringa http che gli arriva. Mentre se avessimo un DB potremmo registrare l&#8217;ultimo stato di Arduino.<\/p>\n<p>Qui a sinistra uno screenshot della pagina web per il controllo remoto di Arduino.<\/p>\n<p>Questo \u00e8 stato possibile grazie all&#8217;utilizzo di un database MySQL. E&#8217; possibile farlo anche con un file di testo, ma risulta complicato avere uno storico delle variazioni di stato di Arduino. La <em>pagina-che-ascolta.php<\/em>\u00a0oltre a controllare la variazione di stato per l&#8217;invio delle notifiche pu\u00f2 &#8220;parsare&#8221; i dati provenienti da Arduino tramite GET\u00a0ed eseguire un INSERT INTO\u00a0dentro il database MySQL. Una nuova pagina PHP legge i dati recuperandoli da MySQL ed ecco fatta la pagina web per il \u00a0controllo remoto di Arduino, come potete vedere qui a fianco.<\/p>\n<p>Comunque le applicazioni sono una moltitudine, dalla possibilit\u00e0 di utilizzare dei JavaScript a quella di implementare le funzioni della pagina-che-ascolta.php &#8230; c&#8217;\u00e8 da sbizzarrirsi \ud83d\ude09<\/p>\n<div class=\"clear-block\"><div class=\"ad alignnone\">\n\t\t\t\t<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n\t\t\t\t<!-- GianniFavilli - Responsive -->\n\t\t\t\t<ins class=\"adsbygoogle\"\n\t\t\t\t     style=\"display:block\"\n\t\t\t\t     data-ad-client=\"ca-pub-1205156047762515\"\n\t\t\t\t     data-ad-slot=\"6873384605\"\n\t\t\t\t     data-ad-format=\"auto\"><\/ins>\n\t\t\t\t<script>\n\t\t\t\t(adsbygoogle = window.adsbygoogle || []).push({});\n\t\t\t\t<\/script>\n\t\t\t\t<\/div><\/div>\n<h4>Reference:<\/h4>\n<p>Il Forum di Arduino <a href=\"http:\/\/arduino.cc\/forum\/\" target=\"_blank\" rel=\"noopener\">ARDUINO Forum<\/a>\u00a0in particolare il Topic da me aperto\u00a0<a href=\"http:\/\/arduino.cc\/forum\/index.php\/topic,67730.0.html\" target=\"_blank\" rel=\"noopener\">Inviare dati a PHP e ricevere comandi via HTTP in un unica sessione<\/a>\u00a0ringraziando <em>lesto <\/em>e<em> Marco Benini\u00a0<\/em>per l&#8217;aiuto.<\/p>\n<p>Le classi PHP originali e NON modificate (quindi INUTILIZZABILI per questo progetto) per l&#8217;inserimento di Eventi in Google Calendar le potete reperire a questo indirizzo\u00a0<a href=\"http:\/\/www.salisnet.eu\/scheda.php?id=32\" target=\"_blank\" rel=\"noopener\">SalisNet.eu &#8211; Aggiungere un evento a Google Calendar<\/a>.<\/p>\n<p>La guida utilizzata per le modifiche al file <em>GoogleCalendarWrappeNotifier.php<\/em>\u00a0\u00e8 quella ufficiale che fornisce GoogleCODE e la potete reperire al seguente link se volete aggiungere opzioni alle vostre notifiche <a href=\"http:\/\/code.google.com\/intl\/it-IT\/apis\/gdata\/docs\/2.0\/elements.html\" target=\"_blank\" rel=\"noopener\">Google Data Protocol &#8211; Common Elements: &#8220;Kinds&#8221;<\/a>.<\/p>\n<p>Un po&#8217; di consulenza PHP che non fa mai male,\u00a0<a href=\"http:\/\/www.php.net\/\" target=\"_blank\" rel=\"noopener\">PHP: Hypertext Preprocessor<\/a>.<\/p>\n<p><strong>Come sempre rimango a disposizione per commenti, chiarimenti, informazioni, perplessit\u00e0, modifiche da voi apportate, problemi o errori.<\/strong><\/p>\n<div class=\"alert alert-error fade in\">Attenzione, Google ha introdotto le API per connettersi ai calendari personali. Pertanto il progetto cos\u00ec come scritto non \u00e8 funzionate!<\/div>\n\t<!--\n\t<div class=\"paga_box_sandbox\"><h4>In questo momento non fare donazioni, sto testando il sistema. Grazie!<\/h4>\t<p>Donazione per il mantenimento del blog<\/p>\n\t<form method=\"post\" name=\"paypal_form_donag_688\" action=\"https:\/\/www.sandbox.paypal.com\/cgi-bin\/webscr\">\n\t\t<input type=\"hidden\" name=\"business\" value=\"info@giannifavilli.it\" \/>\n\t\t<input type=\"hidden\" name=\"cmd\" value=\"_donations\" \/>\n\t\t<input type=\"hidden\" name=\"return\" value=\"http:\/\/www.giannifavilli.it\/blog\/grazie\/\" \/>\n\t\t<input type=\"hidden\" name=\"cancel_return\" value=\"http:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/685\" \/>\n\t\t<input type=\"hidden\" name=\"notify_url\" value=\"http:\/\/www.giannifavilli.it\/listen\/donazione_pp_ipn.php\" \/>\n\t\t<input type=\"hidden\" name=\"rm\" value=\"2\" \/>\n\t\t<input type=\"hidden\" name=\"currency_code\" value=\"EUR\" \/>\n\t\t<input type=\"hidden\" name=\"lc\" value=\"IT\" \/>\n\t\t<input type=\"hidden\" name=\"cbt\" value=\"Grazie! Premi qui per torna sul blog\" \/>\n\t\t<input type=\"hidden\" name=\"item_name\" value=\"Donazione per il mantenimento del blog Gianni Favilli\" \/>\n\t\t<div style=\"text-align:center; width:100%; margin: auto;\">\n\t\t<select class=\"\" name=\"amount\" id=\"amount\" style=\"margin: auto;\">\n\t\t\t<option value=\"1\">Offrimi un Caff\u00e8 - 1 Euro<\/option>\n\t\t\t<option value=\"3\">Offrimi un Aperitivo - 3 Euro<\/option>\n\t\t\t<option value=\"5\">Offrimi una Birra - 5 Euro<\/option>\n\t\t\t<option value=\"15\">Offrimi una Pizza - 15 Euro<\/option>\n\t\t\t<option value=\"25\">Offrimi una Cena - 25 Euro<\/option>\n\t\t<\/select>\n\t\t<\/div>\n\t\t<!\/\/\/\/--<input type=\"hidden\" name=\"custom\" value=\"\" \/>-\/\/\/\/->\n\t\t<input type=\"hidden\" name=\"custom\" value=\"DonazioneGenericaGF\" \/>\n\t\t<input type=\"hidden\" name=\"no_note\" value=\"1\" \/>\n\t\t<input class=\"pulsantepp\" type=\"image\" src=\"https:\/\/www.paypalobjects.com\/it_IT\/IT\/i\/btn\/btn_donateCC_LG.gif\" name=\"submit\" alt=\"PayPal - Il metodo rapido, sicuro e affidabile per fare donazioni.\" \/>\n\t<\/form>\n\t<\/div>\n\t-->\n\t\n","protected":false},"excerpt":{"rendered":"<p>La possibilit\u00e0 di controllare Arduino da remoto e una delle applicazioni sulla quale ho maggiore interessa. Trovo che Arduino abbia una forte predisposizione alla domotica OpenSource o FaiDaTe ed \u00e8 per questo motivo che cerco di scrivere degli Sketch orientati sull&#8217;aspetto di controllo degli attuatori da remoto. Se ci inseriamo anche la possibilit\u00e0 di inviare allarmi o notifiche via email o via SMS senza dove per forza comprare un GSM Shield e senza costi aggiuntivi la cosa diventa ancor pi\u00f9 allettante e aumenta di molto la tipologia di utilizzo di Arduino. Rimanendo in ambiente domotica potremmo effettuare un allarme che avvisa con un SMS all&#8217;accadere di un determinato evento. Questo esempio \u00e8 quello che andr\u00f2 a spiegare. Come dicevo in precedenza, l&#8217;idea di avere da Arduino delle notifiche via SMS rapidi e veloci mi era sempre piaciuta. Il problema diventava l&#8217;acquisto di un GSM Shield. Ero arrivato al punto di smontare un vecchio Nokia 3210 per integrarlo con Arduino &#8230; capiraiii \ud83d\ude10 &#8230; come se fosse una cosa semplice e banale, come direbbero gli Afterhours \ud83d\ude42 Attenzione, Gooogle dal 27\/06\/2015 ha disabilitato le notifiche via SMS. L&#8217;articolo cos\u00ec come scritto non \u00e8 pi\u00f9 valido. Rimane online solo per mantenere uno [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[16,20,3,17],"tags":[67,69,63,43,68],"class_list":["post-685","post","type-post","status-publish","format-standard","hentry","category-arduino","category-domotica","category-informatica","category-programmazione","tag-arduino","tag-domotica","tag-informatica","tag-php","tag-programmazione"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4SGGs-b3","_links":{"self":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/comments?post=685"}],"version-history":[{"count":0,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/685\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/media?parent=685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/categories?post=685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/tags?post=685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}