{"id":95529,"date":"2020-09-30T19:42:39","date_gmt":"2020-09-30T17:42:39","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-podklyuchit-aczp-hx711-k-nrf52832"},"modified":"2020-09-30T19:42:39","modified_gmt":"2020-09-30T17:42:39","slug":"kak-podklyuchit-aczp-hx711-k-nrf52832","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-podklyuchit-aczp-hx711-k-nrf52832","title":{"rendered":"Come collegare l'ADC HX711 al NRF52832","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>1. Introduzione<\/h3>\n<p>\n L'argomento all'ordine del giorno era sviluppare un protocollo di comunicazione per il microcontrollore nrf52832 con due sensori di pressione cinesi a mezzo ponte. <\/p>\n<p>Il compito si \u00e8 rivelato complesso, in quanto mi sono trovato di fronte all'assenza di informazioni chiare. \u00c8 probabile che \u00abla radice del male\u00bb risieda nel SDK stesso di Nordic Semiconductor: gli aggiornamenti costanti delle versioni, alcune ridondanze e la confusione della funzionalit\u00e0. Ho dovuto scrivere tutto da zero. <\/p>\n<p><\/p>\n<p>Penso che questo argomento sia piuttosto attuale, considerando che questo chipset possiede uno stack BLE e un intero insieme di \u201cdelizie\u201d per la modalit\u00e0 di risparmio energetico. Tuttavia, non entrer\u00f2 troppo nei dettagli tecnici, poich\u00e9 su questo tema sono stati scritti numerosi articoli. <\/p>\n<p><\/p>\n<h3>2. Descrizione del progetto<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Come collegare l&#039;ADC HX711 al NRF52832\" src=\"\/wp-content\/uploads\/2020\/09\/f187e56e29b4f2e57ce0de3a5f2a0eab.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p><b>Hardware:<\/b><\/p>\n<p><\/p>\n<ul>\n<li>Adafruit Feather nRF52 Bluefruit LE (quello che avevo a disposizione) <\/li>\n<li>ADC HX711 <\/li>\n<li>Sensori di pressione cinesi 2 pz. (50x2 kg) <\/li>\n<li>Programmatore ST-LINK V2 <\/li>\n<\/ul>\n<p><\/p>\n<p><b>Software:<\/b><\/p>\n<p><\/p>\n<ul>\n<li>IDE VSCODE<\/li>\n<li>NRF SDK 16<\/li>\n<li>OpenOCD<\/li>\n<li>Programmatore ST-LINK V2 <\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Tutto \u00e8 all'interno di un unico progetto, dovr\u00f2 solo sistemare il Makefile (indicare la posizione del proprio SDK). <\/p>\n<p><\/p>\n<h3>3. Descrizione del codice<\/h3>\n<p><\/p>\n<p>Utilizzeremo il modulo GPIOTE per lavorare con la periferica, in base all'associazione di compiti ed eventi, e il modulo PPI per trasferire dati da una periferica all'altra senza l'intervento del processore.<\/p>\n<pre><code class=\"cpp\">ret_code_t err_code;\n   err_code = nrf_drv_gpiote_out_init(PD_SCK, &amp;config); \/\/ Configuriamo l'uscita\n   nrf_drv_gpiote_out_config_t config = GPIOTE_CONFIG_OUT_TASK_TOGGLE(false); \/\/ Controlliamo il pin per un impulso\n   err_code = nrf_drv_gpiote_out_init(PD_SCK, &amp;config); \/\/ Configuriamo l'uscita\n<\/code><\/pre>\n<p>\nImpostiamo il pin di sincronizzazione PD_SCL come uscita per generare impulsi di durata 10 \u00b5s.<\/p>\n<pre><code class=\"cpp\">   nrf_drv_gpiote_in_config_t gpiote_config = GPIOTE_CONFIG_IN_SENSE_HITOLO(false); \/\/ Transizione da livello alto a basso\n   nrf_gpio_cfg_input(DOUT, NRF_GPIO_PIN_NOPULL); \/\/ Configuriamo l'ingresso senza pull-up\n   err_code = nrf_drv_gpiote_in_init(DOUT, &amp;gpiote_config, gpiote_evt_handler); <\/code><\/pre>\n<p><\/p>\n<pre><code class=\"cpp\">static void gpiote_evt_handler(nrf_drv_gpiote_pin_t pin, nrf_gpiote_polarity_t action)\n{\n    nrf_drv_gpiote_in_event_disable(DOUT); \/\/ Disattiviamo l'interruzione\n    nrf_drv_timer_enable(&amp;m_timer0); \/\/ Attiviamo il timer\n}\n <\/code><\/pre>\n<p><\/p>\n<p>Impostiamo la linea dati DOUT per leggere lo stato di prontezza dell'HX711; in presenza di un livello basso, si attiva il gestore, nel quale disattiviamo l'interruzione e avviamo un timer per generare impulsi di sincronizzazione all'uscita PD_SCL.<\/p>\n<p><\/p>\n<pre><code class=\"cpp\"> err_code = nrf_drv_ppi_channel_alloc(&amp;m_ppi_channel1);\n   APP_ERROR_CHECK(err_code);\n   err_code = nrf_drv_ppi_channel_assign(m_ppi_channel1, nrf_drv_timer_event_address_get(&amp;m_timer0, NRF_TIMER_EVENT_COMPARE0), nrf_drv_gpiote_out_task_addr_get(PD_SCK)); \/\/ Colleghiamo il timer all'uscita\n   APP_ERROR_CHECK(err_code);\n   err_code = nrf_drv_ppi_channel_enable(m_ppi_channel1); \/\/ Attiviamo il canale\n   APP_ERROR_CHECK(err_code);\n   nrf_drv_gpiote_out_task_enable(PD_SCK); <\/code><\/pre>\n<p>\/\/ \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c gpiote<\/p>\n<p>Dopo di che, inizializziamo il modulo PPI e colleghiamo il nostro timer all'uscita PD_SCL, per generare impulsi della durata di 10 \u00b5s all'occorrenza dell'evento di confronto, e attiviamo anche il modulo GPIOTE.<\/p>\n<p><\/p>\n<pre><code class=\"cpp\">\nnrf_drv_timer_config_t timer_cfg = NRF_DRV_TIMER_DEFAULT_CONFIG; \/\/ Configurazione predefinita\n   timer_cfg.frequency = NRF_TIMER_FREQ_1MHz; \/\/ Impostiamo la frequenza a 1MHz\n   ret_code_t err_code = nrf_drv_timer_init(&amp;m_timer0, &amp;timer_cfg, timer0_event_handler);\n   APP_ERROR_CHECK(err_code);\n   nrf_drv_timer_extended_compare(&amp;m_timer0,\n                                  NRF_TIMER_CC_CHANNEL0,\n                                  nrf_drv_timer_us_to_ticks(&amp;m_timer0,\n                                                            10),\n                                  NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK,\n                                  true); \/\/ Si attiva al confronto<\/code><\/pre>\n<p><\/p>\n<p> Inizializziamo il timer zero e il suo gestore. <\/p>\n<pre><code class=\"cpp\">  if(m_counter % 2 != 0 &amp;&amp; m_counter &lt;= 48){\n       buffer &lt;&lt;= 1; \/\/ Variabile dei dati letti\n        c_counter++; \/\/ Contatore degli impulsi positivi\n           if(nrf_gpio_pin_read(DOUT)) buffer++; \/\/ Leggiamo lo stato dell&#039;ingresso\n   }\n<\/code><\/pre>\n<p><\/p>\n<p> Le cose pi\u00f9 interessanti accadono nel gestore del timer. La durata degli impulsi \u00e8 di 20 \u00b5s. Siamo interessati agli impulsi dispari (sul fronte di salita) e a condizione che il loro numero non superi 24, mentre gli eventi \u2014 48. Ad ogni evento dispari avviene la lettura di DOUT. <\/p>\n<p><\/p>\n<p> Dal datasheet si evince che il numero di impulsi deve essere di almeno 25, il che corrisponde a un guadagno di 128 (nel codice ho usato 25 impulsi), equivalente a 50 eventi del timer, che indica la fine del frame dati. <\/p>\n<p><\/p>\n<pre><code class=\"cpp\"> ++m_counter; \/\/ Contatore degli eventi\nif(m_counter == 50){\n      nrf_drv_timer_disable(&amp;m_timer0); \/\/ Disattiviamo il timer\n       m_simple_timer_state = SIMPLE_TIMER_STATE_STOPPED; \/\/\n       buffer = buffer ^ 0x800000;\n       hx711_stop(); \/\/ Disattiviamo hx711\n       }\n   <\/code><\/pre>\n<p><\/p>\n<p> Dopo di che, disattiviamo il timer e trattiamo i dati (secondo il datasheet) e mettiamo l'HX711 in modalit\u00e0 a basso consumo energetico. <\/p>\n<p><\/p>\n<pre><code class=\"cpp\">\nstatic void repeated_timer_handler(void * p_context)\n{\n   nrf_drv_gpiote_out_toggle(LED_2);\n   if(m_simple_timer_state == SIMPLE_TIMER_STATE_STOPPED){\n       hx711_start(); \/\/ Attiviamo hx711\n       nrf_drv_gpiote_out_toggle(LED_1);\n       m_simple_timer_state = SIMPLE_TIMER_STATE_STARTED;\n   }\n  \n}\n\/**@brief Crea timer.\n*\/*\nstatic void create_timers()\n{\n   ret_code_t err_code;\n \n   \/\/ Crea timer\n   err_code = app_timer_create(&amp;m_repeated_timer_id,\n                               APP_TIMER_MODE_REPEATED,\n                               repeated_timer_handler);\n   APP_ERROR_CHECK(err_code);\n}\n<\/code><\/pre>\n<p><\/p>\n<p> Aspettiamo un evento dal timer RTC con un intervallo di 10 secondi (questo lo lasciamo a vostra scelta) nell'handler avviamo HX711, chiamando l'interruzione sulla linea DOUT.<\/p>\n<p>C'\u00e8 un altro punto, i log vengono visualizzati tramite UART (baud rate 115200, TX \u2014 pin 6, RX \u2014 pin 8) tutte le impostazioni si trovano in sdk_config.h<\/p>\n<p><img decoding=\"async\" alt=\"Come collegare l&#039;ADC HX711 al NRF52832\" src=\"\/wp-content\/uploads\/2020\/09\/95a8f333227fe26cb8e9827b39bb6350.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3> Conclusioni<\/h3>\n<p><\/p>\n<p>Grazie a tutti per l'attenzione, spero che questo articolo sia utile e riduca il tempo prezioso nella ricerca di soluzioni per gli sviluppatori. Vorrei dire che l'approccio tecnico utilizzato da Nordic nelle sue piattaforme \u00e8 piuttosto interessante dal punto di vista dell'efficienza energetica.<\/p>\n<p><\/p>\n<h3>P.S. <\/h3>\n<p><\/p>\n<p>Il progetto \u00e8 ancora in fase di sviluppo, quindi se questo tema vi interessa nella prossima articolo cercher\u00f2 di descrivere l'algoritmo di calibrazione dei sensori di peso, cos\u00ec come il collegamento allo stack BLE.<\/p>\n<p><\/p>\n<h3> Materiali <\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/CiochinaVitalie\/nrf52832-HX711\">Codice del progetto<\/a><\/noindex> <\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/cdn.sparkfun.com\/datasheets\/Sensors\/ForceFlex\/hx711_english.pdf\">Datasheet su HX711 in inglese<\/a><\/noindex><\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.iarduino.ru\/page\/hx_711_with_tenzo\/\">Descrizione del funzionamento dei sensori di peso<\/a><\/noindex><\/li>\n<\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/521244\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>1. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u041d\u0430 \u043f\u043e\u0432\u0435\u0441\u0442\u043a\u0435 \u0434\u043d\u044f \u0441\u0442\u043e\u044f\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u0440\u0430 nrf52832 \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u043e\u043b\u0443\u043c\u043e\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u043c\u0438 \u0442\u0435\u043d\u0437\u043e\u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438. \u0417\u0430\u0434\u0430\u0447\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u043a\u0430\u043a\u043e\u0439 \u2014 \u043b\u0438\u0431\u043e \u0432\u043d\u044f\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u0435\u0435, \u0447\u0442\u043e \u00ab\u043a\u043e\u0440\u0435\u043d\u044c \u0437\u043b\u0430\u00bb \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u0430\u043c\u043e\u043c SDK \u043e\u0442 Nordic Semiconductor \u2014 \u044d\u0442\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u0439, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":95530,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-95529","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"1. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u041d\u0430 \u043f\u043e\u0432\u0435\u0441\u0442\u043a\u0435 \u0434\u043d\u044f \u0441\u0442\u043e\u044f\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u0440\u0430 nrf52832 \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u043e\u043b\u0443\u043c\u043e\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u043c\u0438 \u0442\u0435\u043d\u0437\u043e\u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-podklyuchit-aczp-hx711-k-nrf52832\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0410\u0426\u041f HX711 \u043a NRF52832 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"1. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u041d\u0430 \u043f\u043e\u0432\u0435\u0441\u0442\u043a\u0435 \u0434\u043d\u044f \u0441\u0442\u043e\u044f\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u0440\u0430 nrf52832 \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u043e\u043b\u0443\u043c\u043e\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u043c\u0438 \u0442\u0435\u043d\u0437\u043e\u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-podklyuchit-aczp-hx711-k-nrf52832\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-30T17:42:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-30T17:42:39+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Come collegare l'ADC HX711 a NRF52832 | ProHoster","description":"1. Introduzione Il compito era sviluppare un protocollo di comunicazione tra il microcontrollore nrf52832 e due sensori di peso cinesi a mezzobordo.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-podklyuchit-aczp-hx711-k-nrf52832","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0410\u0426\u041f HX711 \u043a NRF52832 | ProHoster","og:description":"1. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u041d\u0430 \u043f\u043e\u0432\u0435\u0441\u0442\u043a\u0435 \u0434\u043d\u044f \u0441\u0442\u043e\u044f\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u0440\u0430 nrf52832 \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u043e\u043b\u0443\u043c\u043e\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u043c\u0438 \u0442\u0435\u043d\u0437\u043e\u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-podklyuchit-aczp-hx711-k-nrf52832","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-30T17:42:39+00:00","article:modified_time":"2020-09-30T17:42:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"95529","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:03:23","updated":"2022-09-28 01:57:03","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/95529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=95529"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/95529\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/95530"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=95529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=95529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=95529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}