O ESP8266+Arduino Mega como WebServer

Depois de testar o modulo com vários comandos AT (vale a pena dar uma sapeada no arquivo anexo, bem legal!), parti para fazer o modulo funcionar como Web Server. Partido que tinha aprendido, principalmante com um tutorial do blog FILIPEFLOP:

http://blog.filipeflop.com/wireless/esp8266-arduino-tutorial.html

O Circuito:

 

Webservercircuit

 

O código:

/*************************************************************************

* Web Server with ESP8266

* Based on: FILIPEFLOP http://blog.filipeflop.com/wireless/esp8266-arduino-tutorial.html

* Adapted by Marcelo Jose Rovai

**************************************************************************/

#define esp8266 Serial2

#define CH_PD 4

#define speed8266 115200 // This is the speed that worked with my ESP8266

#define DEBUG true

void setup()

{

  esp8266.begin (speed8266);

  Serial.begin(9600);

  reset8266(); // Pin CH_PD needs a reset before start communication

  sendData(“AT+RST\r\n”, 2000, DEBUG); // reset

  sendData(“AT+CWJAP=\”ROVAI TIMECAP\”,\”mjr747@1\”\r\n”, 2000, DEBUG); //Connect network

  delay(3000);

  sendData(“AT+CWMODE=1\r\n”, 1000, DEBUG);

  sendData(“AT+CIFSR\r\n”, 1000, DEBUG); // Show IP Adress

  sendData(“AT+CIPMUX=1\r\n”, 1000, DEBUG); // Multiple conexions

  sendData(“AT+CIPSERVER=1,80\r\n”, 1000, DEBUG); // start comm port 80

}

void loop()

{

  if (esp8266.available()) // check if 8266 is sending data

  {

    if (esp8266.find(“+IPD,”))

    {

      delay(300);

      int connectionId = esp8266.read() – 48;

      String webpage = “<head><meta http-equiv=””refresh”” content=””3″”>”;

      webpage += “</head><h1><u>MJRoBot ==> WebServer (ESP8266) </u></h1><h2>Arduino Pin: “;

      webpage += “D8 status ==> “;

      int a = digitalRead(8);

      webpage += a;

      webpage += “<h2>Arduino Pin: D9 status ==> “;

      int b = digitalRead(9);

      webpage += b;

      webpage += “<h2>Arduino Pin: A0 data ===> “;

      int c = analogRead(0);

      webpage += c;

      webpage += “</h2>”;

      String cipSend = “AT+CIPSEND=”;

      cipSend += connectionId;

      cipSend += “,”;

      cipSend += webpage.length();

      cipSend += “\r\n”;

      sendData(cipSend, 1000, DEBUG);

      sendData(webpage, 1000, DEBUG);

      String closeCommand = “AT+CIPCLOSE=”;

      closeCommand += connectionId; // append connection id

      closeCommand += “\r\n”;

      sendData(closeCommand, 3000, DEBUG);

    }

  }

}

/*************************************************/

 // Send AT commands to module

String sendData(String command, const int timeout, boolean debug)

{

  String response = “”;

  esp8266.print(command);

  long int time = millis();

  while ( (time + timeout) > millis())

  {

    while (esp8266.available())

    {

      // The esp has data so display its output to the serial window

      char c = esp8266.read(); // read the next character.

      response += c;

    }

  }

  if (debug)

  {

    Serial.print(response);

  }

  return response;

}

/*************************************************/

// Reset funtion to accept communication

void reset8266 ()

{

  pinMode(CH_PD, OUTPUT);

  digitalWrite(CH_PD, LOW);

  delay(300);

  digitalWrite(CH_PD, HIGH);

}

A web Page:

Note que o endereço da pagina é o segundo IP que aparece no Serial monitor com o comando AT+CIFSR na fase de Set-up (veja a copia do Serial monitor abaixo): 

+CIFSR:STAIP,”10.0.1.2″

Webserverpage

A saída no Serial Monitor:

1. A conexão com o modulo esp8266

 

SerialConxion

2. A comunicação:

SerialOngoingcomm

Eu fiz um pequeno vídeo para dar uma visão do WebServer funcionando:

ESP8266 como webserver

Documento legal com dicas de comandos AT para configurar o esp8266:

ESP8266_WiFi_Module_Quick_Start_Guide_v_1.0.4.pdf

Fonte:  http://labdegaragem.com/profiles/blogs/o-esp8266-como-webserver-usando-o-mega?xg_source=msg_mes_network

Como Configurar Xbee Explorer

Quem se interessa por redes wireless em automação já deve ter ouvido falar de um módulo muito popular chamado Xbee, uma placa que se comunica via radiofrequência utilizando o padrão Zigbeede comunicação de rede sem fio e permite a interligação de vários módulos.

Com o Xbee você pode construir uma rede wireless extremamente robusta, confiável e de certa forma econômica, pois o módulo Xbee possuem um modo “sleep” que economiza energia quando não estão executando nenhuma ação. Isso permite que os módulos funcionem por muito tempo apenas utilizando baterias.

O Xbee é muito usado em ambientes industriais, onde o fator velocidade não é um ponto crítico, como por exemplo um equipamento que precise enviar dados da produção para um computador central. Isso não impede que o Xbee seja usado com sucesso em aplicações de automação residencial, como alarmes, iluminação, coleta de dados e outras aplicações.

A programação do Xbee exige atenção e por esse motivo vamos dividir esse assunto em 2 tutoriais. Hoje vamos falar do Xbee Explorer USB, que é a placa utilizada para programar o Módulo Xbee :

XBee_USB_Explorer_Adapter22

Com o Xbee Explorer USB, você consegue não só programar e configurar o seu Xbee, como também atualizar o seu dispositivo e realizar uma série de outras tarefas.

INSTALAÇÃO XBEE EXPLORER USB:

Antes de efetuarmos as ligações do Xbee, vamos instalar o software de programação, que iremos utilizar em conjunto com o Xbee Explorer. Esse software é o XCTU, disponível nesse link.

Ao acessar o link, você será direcionado à página do software XCTU. Clique em Diagnostics, Utilities and MIBS :

Tela-1-Link-XCTU

Na próxima tela que abrir, clique em XCTU Next Gen Installer, Windows x32/x64 ou na versão de acordo com o seu sistema operacional:

Tela-2-Link-XCTU-Opcoes-de-download

Baixe o arquivo, que tem o tamanho aproximado de 130 Mb e execute o instalador. Na tela de boas vindas, simplesmente clique em NEXT :

Tela-4-XCTU-Install-Tela-Inicial

Leia atentamente o contrato de licença e clique novamente em NEXT :

Tela-5-XCTU-Install-Tela-Licenca

A tela seguinte apresenta um aviso de que o usuário do Windows Vista e 7 deve ter direitos de administrador para evitar problemas na cópia de arquivos. Clique em NEXT :

Tela-6-XCTU-Install-Tela-Path-info

Escolha a pasta de destino de instalação do software e clique em NEXT :

Tela-7-XCTU-Install-Tela-Path

Revise a escolhas e clique em Install para que tenha início o processo de cópia dos arquivos :

Tela-8-XCTU-Install-Confirmacao

Aguarde o final da instalação :

Tela-8-XCTU-Install-Confirmacao Tela-9-XCTU-Install

CONFIGURANDO O MÓDULO XBEE:

O próximo passo é encaixar o Módulo Xbee no Xbee Explorer USB e ligar ao computador usando o cabo usb que acompanha o produto. O módulo que estamos utilizando é o Módulo Xbee Serie 2:

XBee_USB_Explorer_Adapter22

Ao conectar o Xbee Explorer USB ao computador, terá início o processo de instalação dos drivers. No Windows 7 / 64 bits, os drivers foram instalados automaticamente pelo Windows Update, e o dispositivo foi detectado na porta serial Com20 :

Tela-3-Instalacao-drivers

Vamos agora executar o XCTU e procurar pelo módulo Xbee conectado ao USB Explorer. Na tela inicial do programa, clique em Discover Devices :

Tela-10-XCTU-Tela-inicial

Selecione a porta serial detectada na instalação do Xbee Explorer USB. No nosso caso, COM20. Depois, clique em next :

Tela-11-XCTU-Dispositivo-Scan

 

Deixe os parâmetros da porta nos valores padrão e clique em Finish para iniciar a varredura :

Tela-12-XCTU-Dispositivo-parametros

 

Na próxima tela, clique em Add Selected Devices para adicionar os dispositivos detectados

Tela-13-XCTU-Dispositivo-detectado

 

De volta à tela inicial do XCTU, clique no dispositivo, agora listado no lado esquerdo :

Tela-14-XCTU-Lista-Dispositivo

No lado direito da tela serão carregados os parâmetros previamente gravados no módulo Xbee, como nome do módulo, versão de firmware, configuração de portas, entre outros :

Tela-15-XCTU-Dispositivo-parametros-carregados

Isso encerra a parte básica de instalação e configuração do Xbee Explorer USB. Em um próximo artigo iremos mostrar como configurar dois módulos Xbee Serie 2 e enviar informações para o Arduino usando o Arduino Xbee Shield.

Arduino_Xbee_Shield12

http://blog.filipeflop.com/wireless/como-configurar-xbee-explorer-usb.html

A aristocracia operária

” A aristocracia operária significa o surgimento de um setor da classe operária que passa a ser mais maleável as pressões do capital e que mais facilmente é  cooptado por ele. Todavia, este surgimento não decorre de uma alteração das relações de produção e, portanto, não significa o surgimento de uma nova classe, nem implica na que a determinação essencial da classe operária tenha sido alterada.

Pyramid_of_Capitalist_System

A aristocracia operária é  parte da classe operária, e não uma nova classe. A crítica de Mandel (1964) a Baratt Brown, neste particular, é  precisa: a aristocracia operária faz parte do movimento operário, e nele se distingue politicamente do restante da classe. As implicações ontológicas e políticas aqui são vastas…Um corpo desorganizado não tem porta-voz autorizado nem um programa definido; suas reclamações e exigências são frequentemente vagas e impalpaveis: é  mais possível que seja arrastada por um impulso irracional; que se mova no momento errado e na direção errada.”
(Jones, 1971:317, nota 8)

Publicado do WordPress para Android

Métodos oficiais empregados para autenticidade, controle da qualidade e detecção de fraudes em leite cru refrigerado no Brasil

RESUMO

O leite é de suma importância para a dieta humana, considerando que sua composição de macro e micronutrientes, ajuda no crescimento, desenvolvimento e manutenção de uma vida saudável. No entanto, devido ao alto número de fraudes envolvendo este produto, existe uma preocupação constante entre consumidores, técnicos e autoridades intrínsecas à área, em relação à sua qualidade e autenticidade. Diante do exposto, objetivou-se com esta revisão de literatura descrever o uso das metodologias oficiais de análises físico-químicas empregadas pela indústria laticinista para o controle da qualidade do leite cru refrigerado. A literatura elegida para este estudo foi coletada por meio de buscas no Google Acadêmico, na base de SCIELO (Scientific Electronic Library Online), em legislações e livros da área. Para isso, nas bases de dados os seguintes descritores foram empregados: “fraude no leite”, “fraude por água no leite” e “aguagem no leite”. De acordo com o acervo selecionado para este estudo foi possível evidenciar o uso das seguintes análises físico-químicas: prova do alizarol, acidez pelo método de Dornic; mensuração da densidade, crioscopia, porcentagem de gordura pelo Butirômetro de Gerber, sólidos totais (ST) e Extrato Seco Desengordurado (ESD). A adoção de tais metodologias pela indústria de beneficiamento de leite dá suporte para a autenticidade da matéria-prima admitida, no entanto, métodos mais elaborados e conclusivos são necessários para detecção de fraudes por adição de conservantes, neutralizantes, reconstituintes e demais substâncias adicionadas ao leite cru de forma fraudulenta.

1 INTRODUÇÃO

O leite é o primeiro alimento ofertado aos mamíferos no início da vida, sendo composto por macro e micronutrientes, como carboidratos, proteínas, lipídeos e sais minerais, tornandoo um alimento de suma importância para a dieta humana, uma vez que tais componentes colaboram para o crescimento, desenvolvimento e manutenção de uma vida saudável. Segundo a legislação brasileira, o leite cru para consumo humano deve ser obtido da ordenha completa, ininterrupta e higiênica, de vacas sadias, descansadas e bem alimentadas (BRASIL, 2017). No entanto, vários fatores podem influenciar na qualidade da composição deste alimento, sendo que as fraudes constituem os principais fatores que podem interferir diretamente na qualidade físico-química deste produto (SILVA et al., 2013; WANDERLEY et al., 2013; CHAVES et al., 2015). Para ser considerado adulterado, falsificado ou fraudado, o leite precisa sofrer adição de água, subtração de qualquer um de seus componentes ou ainda, ser adicionado de substâncias conservadoras ou elementos estranhos a sua composição (BRASIL,2017). Neste contexto, existem dois tipos de fraude, as não-intencionais, que geralmente estão associadas a erros durante as etapas da cadeia produtiva e as intencionais, que são realizadas visando ganhos econômicos, como ao exemplo da adição de água, de substâncias neutralizantes da acidez, de reconstituintes da densidade e soro de leite (WANDERLEY et al., 2013). As fraudes envolvendo a adição de água foram as primeiras a serem evidenciadas, pois eram cometidas tanto por produtores quanto pelas indústrias, com o objetivo principal aumentar o volume e mascarar o desnate para produção de creme de leite. No entanto, tal prática tornou-se arriscada pela fácil detecção da adulteração no produto, dando origem as fraudes de segunda intenção, que são realizadas pela adição de açúcar, amido, sal e sacarose, que são considerados reconstituintes da densidade e, quando adicionados ao leite fraudado com água retomam a normalidade ponto de congelamento do produto (ALMEIDA, 2013; WANDERLEY et al., 2013; BELOTI, 2015). Fraudes pela adição de conservantes (ácido bórico e salicílico, peróxido de hidrogênio, bicromato de potássio, formol, cloro e hipocloritos) são realizadas com intuito de aumentar a vida útil do produto, visto que, estes compostos atuam como bactericidas ou bacteriostáticos. Por outro lado, adição de substâncias neutralizantes da acidez (hidróxido de sódio, bicarbonato de sódio) mascaram a acidez consequente do ácido lático, produzido pela multiplicação microbiana. Tais componentes apresentam elevado potencial de nocividade, podendo acarretar danos à saúde dos consumidores (ALMEIDA, 2013; WANDERLEY et al., 2013; BELOTI, 2015). Diante do exposto, objetivou-se com esta revisão apresentar as análises físico-químicas oficiais estabelecidas pelo Ministério da Agricultura, Pecuária e Abastecimento (MAPA) que devem ser empregadas diariamente pela indústria laticinista para a autenticidade, controle da qualidade e detecção de fraudes no leite cru refrigerado. 2 MATERIAL E MÉTODOS A literatura elegida para este estudo foi coletada por meio de buscas no Google Acadêmico, na base de SCIELO (Scientific Electronic Library Online), em legislações e livros da área. Para isso, nas bases de dados os seguintes descritores foram empregados: “fraude no leite”, “fraude por água no leite” e “aguagem no leite”. O acervo selecionado referiu-se a estudos realizados e/ou publicados a respeito de análises físico-químicas estabelecidas pela legislação brasileira vigente para a autenticidade do leite cru refrigerado. Em primeira instância, realizou-se a leitura dos títulos e resumos, seguido de leitura completa para as publicações que se encontravam em consonância com o objetivo deste estudo. Utilizou-se, também, a Instrução Normativa (IN) 68/2006, IN 62/2011, IN 76/2018, IN 77/2018 e o Regulamento da Inspeção Industrial e Sanitária de Produtos de Origem Animal, Decreto 9.013/2017, do MAPA.

3 RESULTADOS E DISCUSSÃO

Álcool-alizarol é o primeiro teste para verificar a qualidade do leite cru, estimando de maneira indireta a acidez do leite e sua estabilidade ao calor, sendo realizado nas granjas leiteiras e nos laticínios para a admissão da matéria-prima, neste teste, que serve como triagem a concentração mínima alcoólica preconizada deve ser 72% v/v. A análise consiste em misturar volumes iguais do leite a ser testado e a solução de alizarol, seguida de interpretação com a formação ou não de grumos (floculação) e, de acordo com a coloração observada. Leites estáveis, dentro da normalidade, apresentam coloração vermelho-tijolo sem a presença de grumos e podem ser captados pelo caminhão de coleta. Entretanto, amostras com a coloração violeta, sem grumos e, amostras de coloração amarela com presença de coagulação são consideradas alcalinas e ácidas, respectivamente (BRASIL, 2018a). Leites alcalinos podem indicar fraudes por aguagem ou neutralizantes da acidez. No âmbito industrial, como estratégia de controle da qualidade, detecção de fraudes, mensuração do valor nutricional e rendimento industrial, as análises físico-químicas para a averiguação da acidez, densidade, índice crioscópico, percentual de gordura e extrato seco desengordurado (ESD) são adotadas pelo controle de qualidade dentro das indústrias de beneficiamento, sendo os valores de referência estabelecidos pela IN 76/2018 (tabela 01) e os métodos oficiais para as análises, definidos pela IN 68/2006 (BRASIL, 2006; BRASIL, 2018b).

Para mensuração direta da acidez a prova oficial empregada é o método de Dornic, que consiste na determinação da acidez provocada pelo ácido lático, oriundo do metabolismo microbiano. Leites considerados normais apresentam titulação entre 14 e 18 graus Dornic (ºD) que, corresponde a faixa de 0,14 a 0,18 g de ácido lático/100mL (BRASIL, 2011). Tal prova baseia-se na neutralização da acidez com uma solução de hidróxido de sódio (NaOH) 0,1 N, utilizando como indicador de cor a fenolftaleína. Em consonância, o pH é mensurado com auxílio de um pHmetro, sendo que leites dentro da normalidade de ºD tendem a apresentar pH entre 6,4 a 6,8 (BRASIL, 2006; ALMEIDA, 2013; BELOTI, 2015). Leites com valores abaixo de 0,14 g de ácido lático/100 ml podem ser indicio de fraudes por neutralizantes da acidez, como adição de hidróxido de sódio e bicarbonato de sódio. A determinação da densidade é um parâmetro de extrema importância para mensurar a autenticidade do leite, visto que, é sensível a alterações físico-químicas do leite, auxiliando na detecção de fraudes por adição de água, reconstituinte, e na determinação de sólidos totais e desengordurados. O leite integral apresenta densidade entre 1,028 a 1,034 g/cm³ a 15ºC, sendo que leites fraudados por aguagem tendem a apresentar densidade próxima à da água (1,0 g/cm³), enquanto que, leites fraudados por desnate tendem a apresentar elevação no valor da densidade (BELOTI, 2015). O Índice Crioscópico pode ser definido como a temperatura de congelamento do leite, que é determinado pelas substâncias em solução presentes no mesmo. Deste modo, o crioscópio identifica as substâncias em solução em relação à proporção da quantidade de água normal no leite. Sabe-se que a água congela a 0ºC e o leite tende a congelar entre -0,530 a – 0,555 graus Hortvet (ºH), que é uma escala específica para esta análise, na qual -0,530ºH equivalem a -0,512ºC e, -0,555ºH equivalem a -0,536ºC. Valores acima de -0,530ºH caracterizam fraudes por adição de água, e valores abaixo de -0,555ºH podem indicar fraudes por reconstituintes, como adição de açúcar e sal (ABRANTES et al., 2015; BELOTI, 2015; BRASIL, 2018b). A determinação da porcentagem de gordura é uma das alternativas empregadas para a caracterização de fraudes por desnate, deste modo, leites fraudados pela subtração da gordura tendem a apresentar proporção menor deste componente. Tal técnica é realizada utilizando o Butirômetro de Gerber e consiste no ataque seletivo da matéria orgânica com ácido sulfúrico, exceto a gordura que é separada pela centrifugação com o auxílio do álcool amílico (BRASIL, 2006). O desnate total ou parcial realizado nas propriedades rurais é considerado uma prática fraudulenta em leite cru e proibido pela legislação vigente (BRASIL, 2017). Através dos valores obtidos com a mensuração da densidade e da porcentagem de gordura, pode-se obter a proporção de sólidos totais (ST) e ESD. Para tanto, basta ter conhecimento dos valores de gordura e densidade e anexa-los na seguinte fórmula: ST= G/5 + D/4 + G + 0,26; sendo: G= gordura e D= densidade. Após a obtenção do ST basta subtrailo pela porcentagem de gordura para a obtenção do ESD. Leites com padrão de identidade integral apresentam o valor mínimo de 8,4 g/100g de ESD de acordo com a legislação vigente (BRASIL, 2006; BRASIL, 2011; BRASIL, 2018b). As análises físico-químicas estabelecidas pela legislação vigente e adotadas pelas indústrias de beneficiamento de leite dão suporte para a averiguação da autenticidade da matéria-prima admitida. No entanto, segundo Mareze et al. (2015), apenas a alteração de um parâmetro de normalidade não caracteriza obrigatoriamente a existência de fraudes, tendo, portanto, a necessidade de adoção de métodos mais elaborados e conclusivos para a detecção de neutralizantes, conservante, reconstituintes e demais substâncias adicionadas ao leite de forma fraudulenta.

4 CONSIDERAÇÕES FINAIS

Foi possível relatar o padrão físico-químico e os métodos oficiais estabelecidos pela legislação vigente para a autenticidade, controle da qualidade e detecção de fraudes em leite cru refrigerado, que devem ser adotados pela indústria laticinista para a admissão da matériaprima no Brasil. Ainda, mesmo considerando os métodos preconizados pelo MAPA na rotina de recepção industrial do leite cru refrigerado, há métodos mais conclusivos que podem ser necessários para a detecção de fraudes mais elaboradas, por exemplo, na detecção de conservantes, neutralizantes e reconstituintes. Por fim, fraudes implicam em prejuízos de ordem econômica e podem acarretar agravos a saúde dos consumidores, tratando-se de atitudes criminosas.

 

REFERÊNCIAS

ABRANTES, Maria Rociene; CAMPÊLO, Carla da Silva; DA SILVA, Jean Berg Alves. Fraude em leite: Métodos de detecção e implicações para o consumidor. Revista do Instituto Adolfo Lutz, v. 73, n. 3, p. 244-251, 2015. ALMEIDA, Thamara Venâncio. Detecção de adulteração em leite: análises de rotina e espectroscopia de infravermelho. 2013. Universidade Federal de Goiás. BELOTI, V. Leite: obtenção, inspeção e qualidade. Londrina: Editora Planta, 2015. BRASIL, Ministério da Agricultura, Pecuária e Abastecimento. Departamento de Inspeção de Produtos de Origem Animal. Regulamento da Inspeção Industrial e Sanitária de Produtos de Origem Animal. Aprovado pelo Decreto n. 30.691 de 29 de março de 1952, alterado pelos Decretos n. 1.225 de 25 de junho de 1962, Decreto n.1236 de 02 de setembro de 1994, Decreto n.1812 de 08 de fevereiro de 1996, Decreto n.2244 de 04 de junho de 1997, Decreto n.9.013 de 29 de março de 2017, Decreto n.9069 de 31 de maio de 2017. Diário Oficial [da] República Federativa do Brasil, Brasília, DF, 01 jun. 2017. BRASIL. Ministério da Agricultura, Pecuária e Abastecimento (MAPA). Instrução Normativa nº62 de 29 de dezembro de 2011. Regulamento Técnico de Produção, Identidade e Qualidade do Leite tipo A, o Regulamento Técnico de Identidade e Qualidade de Leite Cru Refrigerado, o Regulamento Técnico de Identidade e Qualidade de Leite Pasteurizado e o Regulamento Técnico da Coleta de Leite Cru Refrigerado e seu Transporte a Granel. Diário Oficial [da] República Federativa do Brasil, Brasília, 30 dez. 2011. Seção 1. BRASIL. Ministério da Agricultura, Pecuária e Abastecimento (MAPA). Instrução Normativa nº 68 de 12 de dezembro de 2006. Métodos Analíticos Oficiais Físico-Químicos, para Controle

Fonte: http://www.brjd.com.br/index.php/BRJD/article/viewFile/6841/6040

Derramamento de óleo bruto na costa brasileira em 2019: emergência em saúde pública em questão

Oficialmente identificado em 30 de agosto de 2019, um derramamento de petróleo ou óleo bruto atingiu a costa brasileira e alcançou a faixa litorânea de 4.334 km em 11 estados do Nordeste e Sudeste, 120 municípios e 724 localidades até 22 de novembro de 2019 1. Esse desastre vem sendo considerado como o maior derramamento de óleo bruto da história de país e um dos mais extensos registrados no mundo. A sequência desses fenômenos não pode ser reputada ao acaso, mas expressa probabilidades que se ampliam em função de modelos de desenvolvimento insustentável, crise ambiental, despreparo institucional particularmente para a prevenção de eventos sociais e técnicos ampliados, com marcos legais obsoletos que raramente punem grandes conglomerados responsáveis, e políticas discriminatórias com populações vulneráveis, dentre outras debilidades 2. A escala de resposta do Estado, particularmente do setor saúde, necessita ser objeto de avaliação para minimizar agravos à saúde da população e estruturar respostas eficazes diante da possibilidade de ocorrência de fenômenos semelhantes.

Nos últimos cinco anos, o Brasil foi palco de grandes desastres ambientais de proporções mundiais. Em 2015, o rompimento da barragem da mineradora Samarco de Fundão, em Mariana, Minas Gerais, considerado o maior do gênero registrado, contaminou territórios ribeirinhos e marítimos de aproximadamente 650 km, com danos materiais e sanitários que perdurarão por longos anos. Em 2018, envolvendo o mesmo grupo minerador, houve o rompimento da barragem da mina Córrego do Feijão, em Brumadinho, também em Minas Gerais, resultando na morte de 254 pessoas até o momento 2. Esse representa o maior acidente de trabalho com óbitos registrados no país. Nas tragédias das mineradoras, o setor saúde, nas três esferas de governo, se manteve como ator secundário e sem capacidade de assegurar qualidade assistencial em saúde para as populações atingidas.

Nesse mesmo espectro, a frequência de tragédias não naturais tem aumentado no mundo e desvelado o perigoso despreparo da saúde pública para o enfrentamento de desastres de larga escala. Bhopal (1984), na Índia, com mais de 200 mil vítimas fatais, Chernobyl (1986), na Ucrânia, e Fukushima (2011), no Japão, são paradigmáticos dos riscos ampliados. Acidentes de magnitude semelhante ao que se verifica no litoral brasileiro têm aumentado e indicam a gravidade de impactos à saúde e a necessidade da organização de respostas caracterizadas como Emergência em Saúde Pública 3. São exemplos de desastres com óleo bruto em escala mundial o Deepwater Horizon em 2010, que derramou 200 milhões de galões no Golfo do México, considerado o mais amplo registrado; Hebei Spirit, em 2007, na Coreia do Sul; Tasma Spirit, no Paquistão, em 2003; Sea Empress, em 1996, e MV Braes, em 1993, ambos no Reino Unido; Exxon Valdez, em 1989, no Alaska (Estados Unidos) 4; e a destruição do Delta do Níger, na Nigéria, por mais de vinte anos de derramamento de óleo e extração descontrolada 5. Acidentes de magnitude similar aos ocorridos na costa do Brasil têm crescido, assim como a gravidade dos impactos à saúde, demonstrando a necessidade de organizar respostas de Emergência de Saúde Pública 3.

O objetivo deste artigo é apresentar um quadro sintético preliminar de danos possíveis à saúde decorrentes do desastre com o derramamento de óleo bruto na costa do Brasil, e refletir sobre a necessidade de ampliar o marco regulatório para que acidentes dessa magnitude sejam considerados como situações de Emergência em Saúde Pública.

O petróleo bruto é uma mistura complexa que contém uma variedade de toxinas conhecidas, incluindo compostos orgânicos voláteis (VOCs), hidrocarbonetos policíclicos aromáticos (HPAs), sulfeto de hidrogênio e metais pesados. A gravidade da exposição ocorre por ingestão, absorção por meio da pele íntegra e inalação. Os riscos toxicológicos envolvidos são graves, agudos e crônicos, com atenção especial para frações tóxicas do petróleo que podem levar à morte por intoxicação, especialmente associada aos compostos aromáticos. Os VOCs, particularmente o benzeno, têm sido associados às doenças carcinogênicas 6,7 e a efeitos hematotóxicos, imunotóxicos e disfunção renal, mesmo em níveis relativamente baixos de exposição 8. Efeitos outros como alterações hepáticas e hormonais, irritação respiratória, transtornos mentais, especialmente quadros de depressão, são amplamente descritos na literatura 9,10. Os HPAs incluem substâncias cancerígenas conhecidas e podem alterar as funções reprodutivas e imunológicas em mulheres e homens 11, o que agrava os riscos de exposição para gestantes e crianças 12. O sulfeto de hidrogênio pode causar efeitos agudos e crônicos do sistema nervoso central, como cefaleias, alterações da atenção, memória insuficiente 10. Os metais pesados encontrados no petróleo bruto, como arsênico, cádmio, cromo, manganês, cobre, níquel, vanádio e chumbo apresentam várias enfermidades, tais como lesões renais, neurotoxicidade, carcinogenicidade e imunotoxicidade 13. A literatura citada ressalta que os verdadeiros riscos e impactos da presença de petróleo derramado são difíceis de medir com precisão e as análises de risco subestimam os agravos, os quais podem perdurar por décadas. O efeito na cadeia alimentar tem sido verificado na avaliação de impactos em áreas atingidas pela poluição de petróleo há mais de 50 anos. As concentrações de HPAs nas espécies bivalvulares são significativas, mas nos peixes persistem em valores mínimos.

Em adição à exposição ao próprio óleo bruto, as consequências econômicas causadas contribuem para a ocorrência de distúrbios à saúde mental, principalmente em populações em situação de maior vulnerabilidade socioeconômica 14. Até o momento, as manchas de óleo bruto colocam em risco a saúde de 144 mil pescadores artesanais do Nordeste do país, segundo o Instituto Brasileiro do Meio Ambiente e dos Recursos Naturais Renováveis (IBAMA) 1, ademais aqueles que vivem no litoral do Espírito Santo e do Rio de Janeiro. Essa importante e extensa categoria de trabalhadores é marcada por jornadas que podem alcançar de 90 a 100 horas por semana, em produção familiar na extração e beneficiamento dos mariscos e pescados nos arenosos de praias, manguezais e estuários, onde o óleo bruto tem contaminado de forma duradoura 15,16. São aproximadamente 724 territórios de pesca e extração de mariscos afetados até o momento, trata-se, pois, de locais de trabalho onde famílias desenvolvem atividades laborais envolvendo homens, mulheres e crianças, locais estes ainda não mapeados e nem monitorados com o rigor necessário. Tais situações de exposição ocupacional exigem ações de proteção emergencial à saúde para reduzir danos de longa duração.

O mais grave dessa população potencialmente exposta se expressa pela vulnerabilidade revelada pela renda média de aproximadamente R$ 400,00 por mês, com jornadas extenuantes que agravam riscos relativos pelo tempo de exposição em ambientes contaminados 15,16. Adicionado a isso, pescadores, ambulantes e outras categorias informais não dispõem de equipamentos de proteção individual, nem treinamento para o uso adequado; assim como quando há exposição crônica aos agentes químicos, falta acesso e informações dos serviços de saúde para realizar exames periódicos 15,16.

Em termos ilustrativos, ao visualizar a extensão territorial e a população potencialmente envolvida, seria como se centenas de indústrias de refinarias e petroquímicas do país tivessem seus ambientes de trabalho contaminados e interditados pela exposição brusca e descontrolada com petróleo e hidrocarbonetos aromáticos, somados à ausência protetiva do setor saúde. Diferentemente dos pescadores artesanais que sofrem com a atual contaminação do óleo bruto, a exposição aos produtos derivados do petróleo, como benzeno e hidrocarbonetos aromáticos, para o trabalhador formal da indústria do petróleo exposto, com jornada de 48 horas por semana, segundo a Portaria nº 3.214/197817, do Ministério do Trabalho, deve se submeter à vigilância hematológica obrigatória, com exames periódicos semestrais mesmo no período pós-ocupacional, e seus prontuários devem ser mantidos por um período de 40 anos.

Três meses após esse desastre, com tal magnitude, o Ministério da Saúde não acionou medidas de emergências relativas às ações de saúde. Consequentemente, houve difusão de informações desencontradas das autoridades, predominantemente opinativas, de senso comum e sem base técnica como a indicação da suspensão generalizada do consumo de peixes e mariscos no Nordeste do Brasil, alternada com comunicados para a liberação dos mesmos. Tal conduta fortaleceu a crise de consumo no mercado, atingindo drasticamente a sobrevivência de centenas de milhares de trabalhadores da cadeia produtiva de pescados e mariscos, inclusive com a redução da importante atividade do turismo nos estados atingidos 18.

Caracterizou-se uma comunicação oficial confusa, desorientada e por isto mesmo ineficaz no controle de epidemia com a difusão de notícias falsas, alarmantes ou mesmo atenuantes do quadro real. Não houve instalação de gabinete de crise sanitária, disposição de telefone e mídia social para informações fidedignas em tempo real para população, nem comunicação sobre a balneabilidade das praias, consumo de pescados, condutas preventivas, orientações para tratamento de intoxicações agudas e acompanhamento médico para os casos crônicos. Faltaram também disponibilizar serviços de urgência e da atenção básica, medidas de precaução para a proteção de gestantes, crianças e população suscetível em geral etc. Tampouco, proporcionou recursos financeiros para a rede de laboratórios especializados no sentido de avaliar a qualidade do pescado e garantir a segurança alimentar do consumo de peixes e mariscos, monitoramento de locais de trabalho atingidos, capacitação de pessoal no atendimento de urgência e Unidades de Saúde da Família com protocolos unificados e notificação dos casos, mobilização das vigilâncias em saúde para as regiões críticas incluindo os Centros de Referência em Saúde do Trabalhador. Verificou-se apenas a emissão de notas técnicas com informações insuficientes e iniciadas 60 dias após o derramamento de óleo 19.

A desorganização e resposta inadequada levaram ao apelo generalizado do voluntarismo – mobilizando milhares de pessoas desprotegidas para retirada do óleo, muitas vezes manualmente e sem orientações e equipamentos necessários – refletindo a falta de recursos financeiros e humanos, associados à fragilidade organizacional das ações de saúde. Diante do quadro de desespero nas áreas afetadas, os pescadores sem conhecimento dos riscos buscaram defender os seus territórios mesmo sem equipamento de proteção, entrando nos mares, praias e mangues, também como voluntários. Ressalta-se que nessas condições de vulnerabilidade marcadas pela pobreza e falta de alternativas para a sobrevivência existe a necessidade de constituir imediatamente uma forma de seguro defeso de natureza sanitária ou de saúde, e evitar a ampliação epidêmica da tragédia sanitária pela difusão das enfermidades relacionadas à miséria, especialmente fome e desnutrição, alterações psíquicas, como distúrbios depressivos, conforme observado nos desastres de barragens de mineradoras 2 e derramamentos de óleo no mundo 4.

A maioria da população afetada é vulnerável e composta por pessoas afrodescendentes, especialmente o pescador artesanal, em algumas localidades, com até noventa por cento de pessoas negras. Dessa forma, instala-se outro componente de iniquidade inscrito como racismo institucional, sanitário e ambiental que tem se caracterizado nas fragilidades das políticas públicas no país 20. A ausência de resposta emergencial em saúde para proteger comunidades pesqueiras e quilombolas dessa calamidade é um sintoma de exclusão sistemática de políticas que negam direitos de igualdade e de equidade compensatória.

O marco regulatório atual sobre declaração de Estado de Emergência em Saúde Pública tem por base a Portaria nº 2.952/2011 do Ministério da Saúde 19 que, embora esteja centrado nos eventos epidêmicos de doenças infectocontagiosas, permite sua aplicação em situação que demande o emprego urgente de medidas de prevenção, controle e contenção de riscos, danos e agravos à saúde pública, particularmente na sua alínea “b”: “Situação de desastre: evento que configure situação de emergência ou estado de calamidade pública reconhecida pelo Poder Executivo federal nos termos da Lei nº 12.340, de 1º de dezembro de 2010, e que implique atuação direta na área de saúde pública”.

A Emergência em Saúde Pública pode ser definida como a capacidade da saúde pública e dos sistemas de saúde, comunidades e indivíduos impedirem, protegerem, responderem rapidamente e recuperarem as condições de saúde, particularmente aquelas cuja escala, momento ou imprevisibilidade ameaçam superar a capacidade de resposta dos sistemas de saúde. Portanto, a proposta de definição focaliza “cuja escala, tempo ou imprevisibilidade ameaça sobrecarregar os recursos de rotina” 21 (p. S9; tradução livre). No contexto brasileiro, os fundamentos regulatórios respaldam essa declaração. A ausência dessa medida retardou o preparo do setor saúde no âmbito da vigilância e acompanhamento dos impactos, e desconsiderou a proteção das populações vulneráveis.

Essa indecisão governamental gerou despreparo, improvisos, inércia e/ou insuficiência de ações e extemporaneidades em algumas condutas do setor saúde que expandiram enormemente os prejuízos primários do fato. Trata-se de danos políticos, socioeconômicos e culturais com efeitos perversos à saúde em curto, médio e longo prazos, instalando condições para consolidar formas de invisibilidade epidemiológica dessa tragédia.

As características desse desastre de derramamento de óleo no litoral do Brasil, sinteticamente elencadas, indicam que havia a necessidade de declaração de Estado de Emergência em Saúde Pública. O escopo regulamentar atual, mesmo centrado nas situações de emergência no campo das doenças infectocontagiosas, permite estabelecer a situação de emergência e organizar o setor saúde para o enfrentamento da catástrofe.

No entanto, propõe-se rever o marco regulatório de ações emergenciais em saúde com mais clareza e em consonância com os referenciais das emergências em doenças infectocontagiosas, e considerar as experiências das tragédias sanitárias de Mariana, Brumadinho e do litoral brasileiro. Adiciona-se o contexto das catástrofes potenciais relacionadas à exploração do petróleo na reserva da costa Pré-Sal e à crise ambiental decorrente dos efeitos do aquecimento global, dentre outras evidências.

Enquanto isso, três situações trágicas ocorreram no litoral do Estado do Espírito Santo, como se uma “caixa de Pandora” de liberação de males fosse aberta. Na primeira semana de novembro de 2019, o óleo bruto alcançou praias, manguezais e estuários marinhos, estes que já estavam contaminados por metais pesados da lama tóxica do rompimento da barragem de Mariana em 2015. Somaram-se graves componentes tóxicos nesses dois eventos. Esse encontro foi magnificado pela ausência de ações emergenciais em saúde, que agregou um terceiro malefício sofrido por pescadores e população da região: a indiferença governamental e a inércia burocrática para superar iniquidades em saúde.

 

 

Fonte: http://www.scielo.br/scielo.php?pid=S0102-311X2020000200501&script=sci_arttext&tlng=es

Nise da Silveira

Nise da Silveira (Maceió, 15 de fevereiro de 1905 — Rio de Janeiro, 30 de outubro de 1999) foi uma médica psiquiatra brasileira. Reconhecida mundialmente por sua contribuição à psiquiatria, revolucionou o tratamento mental no Brasil. Foi aluna de Carl Jung.[1][2]

Dedicou sua vida ao trabalho com doentes mentais, manifestando-se radicalmente contra as formas que julgava serem agressivas em tratamentos de sua época, tais como o confinamento em hospitais psiquiátricos, eletrochoqueinsulinoterapia e lobotomia. Nise ainda foi pioneira ao enxergar o valor terapêutico da interação de pacientes com animais.[3]

Formação

Filha do professor de matemática Faustino Magalhães da Silveira e da pianista Maria Lídia da Silveira, Nise era bastante estudiosa. Sua formação básica realizou-se em um colégio de freiras, na época exclusivo para meninas, o Colégio Santíssimo Sacramento, localizado em Maceió. Seu pai foi jornalista, diretor do “Jornal de Alagoas” e professor de matemática.[4][5]

De 1926 a 1931 cursou a Faculdade de Medicina da Bahia, onde se formou como a única mulher entre os 157 homens daquela turma. Está entre as primeiras mulheres no Brasil a se formar em Medicina.[4] Casou-se nessa época com o sanitarista Mário Magalhães da Silveira, seu colega de turma na faculdade, com quem viveu até seu falecimento em 1986. O casal não teve filhos, por um acordo entre ambos, que queriam dedicar-se intensamente a carreira médica. Em seu trabalho médico, Mário publicava artigos onde apontava as relações entre pobrezadesigualdade, promoção da saúde e prevenção da doença no Brasil.

Em 1927, já casada e formada, e órfã de mãe, sofreu pelo falecimento de seu pai, e então, após alguns meses, junto ao marido, se mudaram para o Rio de Janeiro, onde teriam mais oportunidades de trabalho. Na então capital do Brasil, Nise se engajou nos meios artístico e literário, voltados para área médica, com diversas publicações dos avanços da medicina.

Em 1933, cursando os anos finais da especialização em psiquiatria, estagiou na clínica neurológica de Antônio Austregésilo. Logo após terminar sua especialização, foi aprovada no mesmo ano em um concurso de psiquiatria, e começou a trabalhar no Serviço de Assistência a Psicopatas e Profilaxia Mental do Hospital da Praia Vermelha.

Nos anos 1930, militou no Partido Comunista Brasileiro e foi uma das poucas mulheres a assinar o “Manifesto dos trabalhadores intelectuais ao povo brasileiro”. No entanto, acabou por ser expulsa de sua célula, sob a acusação de trotskismo.[6][7]

Prisão

Durante a Intentona Comunista foi denunciada por uma enfermeira pela posse de livros marxistas. A denúncia levou a sua prisão em 1936 no presídio Frei Caneca por 18 meses. Nesse presídio também se encontrava preso Graciliano Ramos, com o que ela tornou-se uma das personagens de seu livro Memórias do Cárcere.

De 1936 a 1944 permaneceu com seu marido na semi-clandestinidade, afastada do serviço público por razões políticas. Durante seu afastamento fez uma profunda leitura reflexiva das obras de Spinoza, material publicado em seu livro Cartas a Spinoza em 1995.[8][9]

Centro Psiquiátrico do Engenho de Dentro

Em 1944 foi reintegrada ao serviço público e iniciou seu trabalho no Centro Psiquiátrico Nacional Pedro II, no Engenho de Dentro, no Rio de Janeiro, onde retomou sua luta contra as técnicas psiquiátricas que considerava agressivas aos pacientes.

Por sua discordância com os métodos adotados nas enfermarias, recusando-se a aplicar eletrochoques em pacientes, Nise da Silveira foi transferida para o trabalho com terapia ocupacional, atividade então menosprezada pelos médicos. Assim, em 1946 fundou naquela instituição a “Seção de Terapêutica Ocupacional”.

No lugar das tradicionais tarefas de limpeza e manutenção que os pacientes exerciam sob o título de terapia ocupacional, ela criou ateliês de pintura e modelagem com a intenção de possibilitar aos doentes reatar seus vínculos com a realidade através da expressão simbólica e da criatividade, revolucionando a Psiquiatria então praticada no país.

O Museu de Imagens do Inconsciente

Em 1952, ela fundou o Museu de Imagens do Inconsciente, no Rio de Janeiro, um centro de estudo e pesquisa destinado à preservação dos trabalhos produzidos nos estúdios de modelagem e pintura que criou na instituição, valorizando-os como documentos que abriam novas possibilidades para uma compreensão mais profunda do universo interior do esquizofrênico.

Entre outros artistas-pacientes que criaram obras incorporadas na coleção dessa instituição, podem ser citados Adelina Gomes, Carlos Pertuis, Emygdio de Barros e Octávio Inácio.

Esse valioso acervo alimentou a escrita de seu livro “Imagens do Inconsciente”, filmes e exposições, participando de exposições significativas, como a “Mostra Brasil 500 Anos“.

Entre 1983 e 1985 o cineasta Leon Hirszman realizou o filme “Imagens do Inconsciente”, trilogia mostrando obras realizadas pelos internos a partir de um roteiro criado por Nise da Silveira.

A Casa das Palmeiras

Poucos anos depois da fundação do museu, em 1956, Nise desenvolveu outro projeto também revolucionário para sua época: criou a Casa das Palmeiras, uma clínica voltada à reabilitação de antigos pacientes de instituições psiquiátricas.

Nesse local podiam diariamente expressar sua criatividade, sendo tratados como pacientes externos numa etapa intermediária entre a rotina hospitalar e sua reintegração à vida em sociedade.

O auxílio dos animais aos pacientes

Foi uma pioneira na pesquisa das relações emocionais entre pacientes e animais, que costumava chamar de co-terapeutas.

Percebeu essa possibilidade de tratamento ao observar como melhorou um paciente a quem delegara os cuidados de uma cadela abandonada no hospital, tendo a responsabilidade de tratar deste animal como um ponto de referência afetiva estável em sua vida.

Ela expôs parte deste processo em seu livro “Gatos, A Emoção de Lidar”, publicado em 1998.

Pioneira da psicologia junguiana no Brasil

Por intermédio do conjunto de seu trabalho, Nise da Silveira introduziu e divulgou no Brasil a psicologia junguiana.

Interessada em seu estudo sobre os mandalas, tema recorrente nas pinturas de seus pacientes, ela escreveu em 1954 a Carl Gustav Jung, iniciando uma proveitosa troca de correspondência.

Jung a estimulou a apresentar uma mostra das obras de seus pacientes, que recebeu o nome “A Arte e a Esquizofrenia”, ocupando cinco salas no “II Congresso Internacional de Psiquiatria”, realizado em 1957, em Zurique. Ao visitar com ela a exposição, ele orientou-a a estudar mitologia como uma chave para a compreensão dos trabalhos criados pelos internos.

Nise da Silveira estudou no “Instituto Carl Gustav Jung” em dois períodos: de 1957 a 1958, e de 1961 a 1962. Lá recebeu supervisão em psicanálise de Marie-Louise von Franz, assistente de Jung.

Retornando ao Brasil após seu primeiro período de estudos junguianos, formou em sua residência o “Grupo de Estudos Carl Jung“, que presidiu até 1968.

Escreveu, dentre outros, o livro “Jung: vida e obra”, publicado em primeira edição em 1968.

Reconhecimento internacional

Foi membro fundadora da Sociedade Internacional de Expressão Psicopatológica (“Societé Internationale de Psychopathologie de l’Expression”), sediada em Paris.

Sua pesquisa em terapia ocupacional e o entendimento do processo psiquiátrico por meio das imagens do inconsciente deram origem a diversas exibições, filmes, documentários, audiovisuais, cursos, simpósios, publicações e conferências.

Em reconhecimento a seu trabalho, Nise foi agraciada com diversas condecorações, títulos e prêmios em diferentes áreas do conhecimento, entre outras:

  • “Ordem do Rio Branco” no Grau de Oficial, pelo Ministério das Relações Exteriores (1987)
  • “Prêmio Personalidade do Ano de 1992”, da Associação Brasileira de Críticos de Arte
  • “Medalha Chico Mendes”, do grupo Tortura Nunca Mais (1993)
  • “Ordem Nacional do Mérito Educativo”, pelo Ministério da Educação e do Desporto (1993)

Seu trabalho e ideias inspiraram a criação de museus, centros culturais e instituições terapêuticas, similares às que criou, em diversos estados do Brasil e no exterior, por exemplo:

  • o “Museu Bispo do Rosário“, da Colônia Juliano Moreira (Rio de Janeiro)
  • o “Centro de Estudos Nise da Silveira” (Juiz de ForaMinas Gerais)
  • o “Espaço Nise da Silveira” do Núcleo de Atenção Psicossocial (Recife)
  • o “Núcleo de Atividades Expressivas Nise da Silveira”, do Hospital Psiquiátrico São Pedro (Porto AlegreRio Grande do Sul)
  • a “Associação de Convivência Estudo e Pesquisa Nise da Silveira” (SalvadorBahia)
  • o “Centro de Estudos Imagens do Inconsciente”, da Universidade do Porto (Portugal)
  • a “Association Nise da Silveira – Images de l’Inconscient” (ParisFrança)
  • o “Museo Attivo delle Forme Inconsapevoli” (hoje renomeado “Museattivo Claudio Costa”, GenovaItália)

O antigo “Centro Psiquiátrico Nacional” do Rio de Janeiro recebeu em sua homenagem o nome de “Instituto Municipal Nise da Silveira”.

Em 2015, foi incluída na lista das Grandes mulheres que marcaram a história do Rio”. [10]

Cinema

Em 2016, foi lançado o filme brasileiro de longa metragem intitulado Nise: O Coração da Loucura, dirigido por Roberto Berliner. O filme foi resultado de 13 anos de ampla pesquisa, e se baseou em um momento da vida de Nise da Silveira.[11][12]

Obras publicadas

  • SILVEIRA, Nise da. Jung: vida e obra. Rio de Janeiro: José Álvaro Ed. 1968.
  • SILVEIRA, Nise da. Imagens do inconsciente. Rio de Janeiro: Alhambra, 1981.
  • SILVEIRA, Nise da. Casa das Palmeiras. A emoção de lidar. Uma experiência em psiquiatria. Rio de Janeiro: Alhambra. 1986.
  • SILVEIRA, Nise da. O mundo das imagens.São Paulo: Ática, 1992.
  • SILVEIRA, Nise da. Nise da Silveira. Brasil, COGEAE/PUC-SP 1992.
  • SILVEIRA, Nise da. Cartas a Spinoza. Rio de Janeiro: Francisco Alves. 1995.
  • SILVEIRA, Nise da. Gatos – A Emoção de Lidar. Rio de Janeiro: Léo Christiano Editorial, 1998.

Morte

Devido à idade avançada, foi acometida por pneumonia, falecendo de insuficiência respiratória aguda, no Hospital Miguel Couto, Zona Sul do Rio.

Referências bibliográficas

Referências

  1.  Conheça mulheres que se tornaram grandes cientistas – Nise da Silveira Portal BOL – acessado em 8 de março de 2015
  2.  CNPq (ed.). «Pioneiras da Ciência no Brasil». CNPq. Consultado em 27 de novembro de 2016
  3.  «Você precisa conhecer a história de Nise da Silveira»
  4. ↑ Ir para:a b «Os 10 anos da morte de Nise da Silveira» (html). Consultado em 15 de janeiro de 2010
  5.  «Colégio de freiras, francês e disciplina. No ponto de exame, ela recitou Le Cid, de Corneille» (pdf). Consultado em 15 de janeiro de 2010[ligação inativa]
  6.  AVELAR, A. de S. ; FARIA, D. B. A. ; FARIA, M. H. de. (Orgs.) Contribuições à história intelectual do Brasil republicano. Ouro Preto: Editora UFOP, 2012.
  7.  Nise da SilveiraPsicologia: Ciência e Profissão, vol. 22 nº 1. Brasília, março de 2002 ISSN 1414-9893
  8.  «Nise da Silveira: cartas a Spinoza (edição blog)». Consultado em 17 de dezembro de 2016. Arquivado do original em 20 de dezembro de 2016
  9.  Apaixonados pelo Infinito: Nise da Silveira, Contemporânea de Spinoza. Por Walter Melo. Pesquisas e Práticas Psicossociais, 5(2), São João del-Rei, agosto-dezembro 2010.
  10.  «Confira lista de grandes mulheres que marcaram a história do Rio; veja 10»Rio 450 anos. 8 de março de 2015
  11.  «”Nise – O Coração da Loucura” retrata a psiquiatra que descobriu gênios»Gazeta das pessoas. Consultado em 27 de julho de 2016
  12.  Nise da Silveira (em inglês) no Internet Movie Database

Fonte:  https://pt.wikipedia.org/wiki/Nise_da_Silveira

Geolocalização e geocódigos em Python


1. Obtenha o local atual

Usaremos o pacote Geocoder para obter a localização atual, pois ela possui uma interface simples para o processamento de endereços IP.

import geocoder
g = geocoder.ip('me')
g.latlng
Out[1]: [48.4593, 35.0386]
g.address
Out[2]: 'Dnipro, Dnipropetrovsk, UA'geocoder de importação

g = geocoder . ip ( 'eu' )
g . latlng
Fora [ 1 ]: [ 48.4593 , 35.0386 ]
g . endereço
Fora [ 2 ]: 'Dnipro, Dnipropetrovsk, UA'

 


2. Localização por Geocódigo

Para mim, o Geocoder é um pouco confuso para trabalhar com endereços. Em vez disso, tentaremos a sorte com a biblioteca GeoPy, que possui um número impressionante de serviços de geocodificação e APIs.

Para mim, o Geocoder é um pouco confuso para trabalhar com endereços. Em vez disso, tentaremos a sorte com a biblioteca GeoPy, que possui um número impressionante de serviços de geocodificação e APIs.

from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="user",timeout=10)
location = geolocator.geocode("Dnipro, Dnipropetrovsk, UA")
(location.latitude, location.longitude)
Out[3]: (48.4680221, 35.0417711)

 


3. Geocódigo por local

Você também pode tentar o serviço ao contrário – obtenha o geotag vinculado por localização. Nossa sorte que o GeoPy fornece exatamente esse recurso.

from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="user",timeout=10)
location = geolocator.geocode("Dnipro, Dnipropetrovsk, UA")
(location.latitude, location.longitude)
Out[3]: (48.4680221, 35.0417711)


4. Meça a distância

Se o seu serviço estiver orientado para viagens, o conhecimento das coordenadas da localização não será suficiente. Estamos perdendo a distância entre eles.

loc_paris = geolocator.geocode('Eiffel tower, Paris, France')
loc_paris.address
Out[5]: 'Tour Eiffel, 5, Avenue Anatole France, Quartier du Gros-Caillou, Paris 7e Arrondissement, Paris, Île-de-France, France métropolitaine, 75007, France'

loc_dnipro = geolocator.geocode ("Dnipro, Dnipropetrovsk, UA")

from geopy import distance
coords_1 = (loc_paris.latitude, loc_paris.longitude)
coords_2 = (loc_dnipro.latitude, loc_dnipro.longitude)
distance.distance(coords_1, coords_2).km
Out[6]: 2393.931548459712

Fora [7]: 1487.520100400978

Conclusão

Esta foi uma breve introdução, mas você pode mergulhar na documentação dos dois pacotes e descobrir mais. Você pode encontrar todo o caderno de trabalho no meu GitHub:

Fonte: https://medium.com/better-programming/geolocation-and-geocodes-in-python-e71e056ffaea

 

 

 

Dados Raster

Dados rastermatriciais ou bitmap (que significa mapa de bits em inglês) são imagens que contêm a descrição de cada pixel, em oposição aos gráficos vetoriais.

O tratamento de imagens deste tipo requer ferramentas especializadas, geralmente utilizadas em fotografia, pois envolvem cálculos muito complexos, como interpolaçãoálgebra matricial, etc.

Um bitmap pode ser monocromático, em escala de cinza ou colorido. Normalmente os pixels são formados no padrão RGB, do inglês Red, Green, Blue, que utiliza três números inteiros para representar as cores vermelhoverde e azul ou RGBA, quando o formato possui transparência (sendo A o nível de alfa de cada pixel). Para mídias impressas as imagens bitmap ou raster utilizam o modo de cor CMYK (CianoMagentaAmarelo e Preto).

Necessidade de compactação

A cada ponto da imagem exibida na tela ou papel corresponde um pixel desta grade, de forma que a maioria das imagens requer um número muito grande de pixels para ser representada completamente. Por exemplo, uma imagem comum de 800 pixels de largura por 600 de altura necessita de 3 bytes para representar cada pixel (um para cada cor primária RGB) e mais 54 bytes de cabeçalho. Isso totaliza 1.440.054 bytes. Embora a representação de imagens na memória RAM seja feita geralmente em bitmaps, quando se fala em um grande número de imagens armazenadas em discos magnéticos e transmissão de dados via redes surge a necessidade de compressão desses arquivos, para reduzir o espaço ocupado e o tempo de transmissão.

compactação de dados pode ser com perda ou sem perda. Os principais formatos adotados para a compressão de dados na internet são o Compuserve GIF, o JFIF(conhecido por JPEG), e o mais atual e livre o PNG.

 

Fonte: https://pt.wikipedia.org/wiki/Raster

Certificação CTAL

Para participar de um exame do nível avançado, o ISTQB determina que os candidatos possuam experiência prática na área. Assim, para ser considerado apto a realizar estes exames, é necessário que o candidato:

  1. Possua uma Certificação ISTQB Certified Tester, Foundation Level (CTFL) ou seu similar emitido pelo ISEB.
  2. Comprove suas experiências em período integral (8hs diárias) em pelo menos um dos itens abaixo:
    • 2 anos de experiência prática em Teste de Software ou Qualidade em TI.
    • 2 anos dedicados à Pesquisa Acadêmica relacionadas à Qualidade de TI no nível de Pós Graduação, ou como instrutor de cursos ou disciplinas relacionadas à Qualidade de TI.
    • 3 anos de experiência prática em Desenvolvimento de Sistemas, Análise de Sistemas ou Engenharia de Software.

A Qualificação CTAL não expira, sendo necessário obtê-la apenas uma única vez para realizar qualquer exame do nível avançado.

Processo de Qualificação

1) Declaração

Para ser avaliado o candidato deve apresentar uma declaração das empresas ou instituições que atuou, comprovando seu tempo de serviço e as atividades exercidas na função ou cargo ocupado. O candidato deve apresentar um número suficiente de declarações que cubram os requisitos para a Qualificação. Por exemplo, caso o candidato tenha 1 ano e 6 meses na empresa A, e 6 meses na empresa B, ambas atuando em funções exercidas na área de teste de software, ele deve apresentar duas declarações (uma de cada empresa).

Esta declaração deve possuir 6 itens importantes (veja na imagem abaixo), onde na ausência de qualquer um, a qualificação será recusada em primeira análise, e o pagamento da taxa devolvido.

istqb

Declaracao-modelo

Declaracao-exemplo

Fonte:  https://www.bstqb.org.br/qualificacao

Como homologar sua Automação Comercial com o TEF PayGo?

Clique aqui para acessar o passo-a-passo da homologação do TEF PayGo. É simples, rápido e gratuito.

Para verificar a integração Android e Linux, entre em contato conosco por 0800 737 2255, dev@paygo.com.br ou preencha o formulário abaixo

 

Fonte: https://www.paygo.com.br/homologue-2/

SIMULAÇÃO DE TRANSPORTE DE CALOR ENTRE MATERIAIS NANOESTRUTURADOS

 

WENTZ, Victor Hugo. Engenharia Física – ILCVN- UNILA E-mail: victor . wentz @ aluno . unila . edu . br LAPAS, Luciano Calheiros. Engenharia ´Física – ILCVN – UNILA E-mail: luciano . lapas @ unila . edu . br 1

Introdução O uso de nanopartículas nas tecnologia atuais vem crescendo muito com o avanço nos estudos, como, p.ex., no uso das mesmas para o aumento da eficiência energética em uma células solares. O objetivo deste trabalho é fazer a implementação a partir de cálculo numérico que compute a transferência de energia entre duas nanopartículas e a interação entre elas. Essa interação se da pela equação abaixo.

eq.1 onde utilizamos o potencial de Lennard-Jones.

2 Metodologia Para a realização do projeto foi criado um modelo que consistia na criação de 2 cubos de mesmo tamanho, submetidos a diferentes temperaturas e separados por uma distância arbitrária. Em cada cubo coloca-se uma partículas em posições definidas e, a partir da dinâmica de interações, são analisadas as transferências de energia entre elas. O cubo da esquerda é mantido a uma temperatura de 300 K e o cubo da direita a uma temperatura de 150 K. O método utilizado para estudo da velocidade e posição é por meio do método de Euler. Para a implementação do simulador foi utilizado a linguagem de programação Python. O simulador é dividido em várias funções: função para força aleatória, força de LennardJones e depois essas funções são chamadas dentro da função que calcula a trajetória e velocidade das partículas. 3 Fundamentação teórica A transferência de calor ocorre quando 2 corpos submetidos a diferentes temperaturas entram em contato ou estão em um mesmo local, próximos um do outro, fazendo com que a energia térmica de um corpo seja transferido para outro. Em nanoescala esse processo não é tão simples, ele sofre influência de várias forças. Na Eq. (1). temos a força de Lennard-Jones.

E também temos uma força aleatória cujo módulo é estabelecido em

Onde K é a constante de Boltzmann. Utilizando o método de Euler se faz uma aproximação da trajetória e da velocidade das partículas, obtendo a potência transferida entre as nanopartículas. Quando se obtém as potências de cada nanopartícula, podemos obter a energia transferida entre elas. 4 Resultados Após a execução das interações, obtivemos os resultados numéricos para a velocidade e a posição utilizando o método de Euler. São observados os comportamentos esperados em experimentos recentemente realizados, verificado a enfase à transferência de radiação térmica entre as estruturas. 5 Conclusão Os resultados estão de acordo com os resultados esperados para este projeto, possibilitando a implementação computacional de resultados experimentais de grande utilidade para a área.

6 Referências 12. [1] Pérez-Madrid, A. and Rubí, J. M. and Lapas, L. C. Phys. Rev. Lett. 103, 048301(2009). [2] A. Pérez-Madrid and L. C. Lapas and J. M. Rubíı. PLOS One 8, e58770 (2013). [3] Rousseau, E. and Siria, A. and Jourdan, G. and Volz, S. and Comin, F. and Chevrier, J. and Greffet, J.-J. Nature Photon. 3, 514 (2009)

 

Fonte:

https://dspace.unila.edu.br/bitstream/handle/123456789/1344/EICTI%202016_262-263.pdf?sequence=1&isAllowed=y

VPE – ( Validador de Pagamentos Eletrônicos ) utilizando o Integrador Fiscal – CE

Homologando o Módulo VPE – CE

Ola, Nesse tópico vamos detalhar os passos para realizar testes e homologação utilizando o Módulo VPE (Validador de Pagamentos Eletrônicos) com o Integrador Fiscal no estado do CE.

Embora a SEFAZ CE permitiu a emissão de Cupom Fiscal Eletrônico utilizando apenas o driver MFe (sem a necessidade do uso do Aplicativo Integrador Fiscal), para a integração dos dados de pagamento com cartão – VPE, ainda é necessário a utilização do Integrador Fiscal do Ceará.

Para esse procedimento, segue abaixo como utilizar o Componente ACBrIntegrador para realizar o envio dos dados de pagamento por meio do Integrador Fiscal. Neste caso, estamos utilizando o Demo “SATTest” do Projeto ACBr para os testes, você poderá verificar os fontes desse demo no repositório do ACBr : (..\ACBr\Exemplos\ACBrSAT\ ) ou baixar o demo em: SATTest

Instalar Integrador Fiscal

O Primeiro passo é Instalar o Aplicativo Integrador Fiscal, segue abaixo o tópico sobre como Instalar e configurar o Integrador Fiscal: Instalar Integrador Fiscal

Utilizando o SATTest 

No exemplo do SATTest abaixo, estamos utilizando a conexão direta com a dll do driver MFe, mas a comunicação entre o ACBrIntegrador – (VPE) e o Integrador Fiscal vai funcionar independente desta configuração, basta apenas que o Integrador Fiscal esteja em execução e devidamente configurado na máquina.

Para mais Informações sobre configuração do Driver MFe, veja em: Configurar Driver MFe

Para integração ACBrIntegrador e VPE vá para aba: MFe e veja as quatro opções disponíveis para o Módulo VPE – (“Enviar Pagamento”, “Enviar Status Pagamento”, “Verificar Status Validador”, “Resposta Fiscal”)

Existem duas situações para Integração do Módulo VPE, sendo distintas entre: POS e TEF:

 

Utilizando Integração VPE com Pagamento P.O.S. 

Obs Importante: 

A SEFAZ CE não disponibilizou um Serviço P.O.S. compatível com Integrador Fiscal conforme estava previsto inicialmente. Então a opção “Verificar Status Validador” está disponível apenas para ambiente de homologação, para isso é utilizado o Simulador P.O.S. Ceara: http://simuladorposceara.azurewebsites.net/. Portanto o Serviço “Verificar Status Validador” não é utilizado em Produção.

Passo 1:  EnviarPagamento

Informações a ser enviada neste método:

PagamentoMFe := TEnviarPagamento.Create;
  try
    with PagamentoMFe do
    begin
      Clear;
      ChaveAcessoValidador := '25CFE38D-3B92-46C0-91CA-CFF751A82D3D';                          
      ChaveRequisicao := '26359854-5698-1365-9856-965478231456';                               
      Estabelecimento := '10';                                                                 
      SerialPOS := InputBox('SerialPOS','Informe o Serial do POS','ACBr-'+RandomName(8));      
      CNPJ := edtEmitCNPJ.Text;                                                                
      IcmsBase := 0.23;                                                                        
      ValorTotalVenda := 1530;                                                                 
      HabilitarMultiplosPagamentos := True;                                                    
      HabilitarControleAntiFraude := False;                                                    
      CodigoMoeda := 'BRL';                                                                    
      EmitirCupomNFCE := False;                                                              
      OrigemPagamento := 'Mesa 1234';                                                        
    end;

    ...
  finally
     ...
  end;

Definição sobre Principais Campos:

Chave de Acesso Validador – Esta chave é fixa, está Pré-Definida no Manual Do Integrador Fiscal.

Chave de Requisição – Esta chave deve ser única para cada requisição POS, deve-se gerar um GUID para cada Envio de Pagamento. Esta especificação está descrita no Manual do Integrador.

Estabelecimento –   Como não existe este equipamento POS Integrado conforme previsão inicial, está sendo informado um valor fixo.

SerialPOS –  Como não existe este equipamento POS Integrado conforme previsão inicial, está sendo informado o Numero serial do Equipamento POS utilizado (Independente do equipamento)

(Apenas para efeito de testes no SATTest, estamos utilizando um valor randômico para gerar o Número do Serial).

 

Após o Envio do Pagamento será retornado o “ID do Pagamento”

obs: O ID do pagamento deve ser gravado pela sua aplicação para Identificação do Pagamento e Requisições Posteriores, pode ser obtido pelo método: (RespostaVerificarStatusValidador.CodigoAutorizacao)

Passo 2:  VerificarStatusValidador  (Utilizado apenas em Ambiente de Homologação)

Para Testes em Homologação deve-se utilizar o Site Simulador POS Ceará http://simuladorposceara.azurewebsites.net/ e informar o SerialPOS utilizado no envio, para Simular o Pagamento Efetuado

Após a Confirmação de Pagamento utilizando o Emulador,  deve realizar a chamada do método: VerificarStatusValidador informando o ID Pagamento:

with VerificarStatusValidador do
begin
  Clear;
  ChaveAcessoValidador := '25CFE38D-3B92-46C0-91CA-CFF751A82D3D';                          
  IDFila := StrToIntDef(InputBox('IDPagmento','Informe o ID do Pagamento',''),0);          
  CNPJ:= edtEmitCNPJ.Text;                                                                
end;

Definição sobre os Campos:

Chave de Acesso Validador – Esta chave é fixa, está Pré-Definida no Manual Do Integrador Fiscal.

ID FIla – Este campo se trata do “ID Pagamento” retornado no primeiro método

CNPJ –   CNPJ do Emitente

 

Será obtido como retorno o XML com a simulação da Autorização de Pagamento:

Lembrando que em Produção não é possível realizar o Passo 2, pula direto para o passo 3:

Passo 3:  RespostaFiscal 

Após o Envio do XML de Venda para o MFe ou Integrador (no caso de NFC-e), realiza-se o passo 3, apenas para Vincular o Pagamento com Cartão a um Documento Fiscal, através do método: RespostaFiscal

RespostaFiscal := TRespostaFiscal.Create;
    try
      with RespostaFiscal do
      begin
        Clear;
        ChaveAcessoValidador := '25CFE38D-3B92-46C0-91CA-CFF751A82D3D';                           
        IDFila := StrToIntDef(InputBox('IDPagmento','Informe o ID do Pagamento',''),0);           
        ChaveAcesso := '35170408723218000186599000113100000279731880';                           
        Nsu := '1674068';                                                                        
        NumerodeAprovacao := '123456';                                                             
        Bandeira := 'VISA';                                                                       
        Adquirente := 'STONE';                                                                    
        if Assigned(ACBrSAT1.CFe) and (ACBrSAT1.Extrato= ACBrSATExtratoESCPOS1) then
          ImpressaoFiscal := '<![CDATA['+ACBrSATExtratoESCPOS1.GerarImpressaoFiscalMFe+']]>';     
        NumeroDocumento := '1674068';                                                            
        CNPJ:= edtEmitCNPJ.Text;                                                                  
      end;
      
    finally
      RespostaFiscal.Free;
    end;

Definição sobre Principais Campos:

Chave de Acesso Validador – Esta chave é fixa, está Pré-Definida no Manual Do Integrador Fiscal.

ID FIla – Este campo se trata do “ID Pagamento” retornado no primeiro método

ChaveAcesso –   Refere-se a Chave do CFe de Venda gerado pelo MFe ou Integrador Fiscal (no caso de NFC-e)

NSU –   Fornecido pela Adquirente (Autorizadora de Pagamento) – Como não existe este equipamento POS Integrado conforme previsão inicial, está sendo informado um valor fixo.

NumeroAprovacao –   Código de Autorização de Pagamento Retornado pela Adquirente – Como não existe este equipamento POS Integrado conforme previsão inicial, está sendo informado um valor fixo.

ImpressaoFiscal –   A Intensão futura será passar o Extrato do CFe para impressão no aparelho POS (A Função GerarImpressaoFiscalMFe já gera o Modelo do Cupom a ser impresso)

NumeroDocumento –   Número do Cupom Fiscal Autorizado.

Será obtido o XML Retorno com o Código de Processamento da Resposta Fiscal.

Encerra-se o Processo VPE – utilizando o P.O.S.

 

 

Utilizando Integração VPE com Pagamento TEF

Passo 1:  EnviarStatusPagamento

Informações a ser enviada neste método:

StatusPagamentoMFe := TStatusPagamento.Create;
  try
    with StatusPagamentoMFe do
    begin
      Clear;
      ChaveAcessoValidador := '25CFE38D-3B92-46C0-91CA-CFF751A82D3D';     
      CodigoAutorizacao := '20551';                                       
      Bin := '123456';                                                    
      DonoCartao := 'TESTE';                                              
      DataExpiracao := '01/01';                                           
      InstituicaoFinanceira:= 'STONE';                                    
      Parcelas := 1;                                                      
      CodigoPagamento := '12846';                                         
      ValorPagamento := 1530;                                             
      IDFila := 1674068;                                                  
      Tipo := '1';                                                        
      UltimosQuatroDigitos := 1234;                                       
    end;
   
  finally
    StatusPagamentoMFe.Free;
  end;

Definição sobre Principais Campos:

Chave de Acesso Validador – Esta chave é fixa, está Pré-Definida no Manual Do Integrador Fiscal.

Obs: Para quem utiliza o Componente ACBrTEFD os dados do cartão e de Confirmação de Pagamento, utilizados no pagamento TEF podem ser obtidos
acessando a propriedade ACBrTEFDRespNFCeSAT da Classe de retorno TACBrTEFDResp do Componente ACBrTEFD, automatizando assim o preenchimento destes dados. 

Será obtido o XML Retorno com o Código de Processamento do Status de Pagamento.

 

Passo 2:  RespostaFiscal 

Após o Envio do XML de Venda para o MFe (ou Integrador no caso de NFC-e), realiza o passo 2, apenas para Vincular um Pagamento com Cartão ao Documento Fiscal, através do método: RespostaFiscal

RespostaFiscal := TRespostaFiscal.Create;
    try
      with RespostaFiscal do
      begin
        Clear;
        ChaveAcessoValidador := '25CFE38D-3B92-46C0-91CA-CFF751A82D3D';                           
        IDFila := StrToIntDef(InputBox('IDPagmento','Informe o ID do Pagamento',''),0);           
        ChaveAcesso := '35170408723218000186599000113100000279731880';                           
        Nsu := '1674068';                                                                        
        NumerodeAprovacao := '123456';                                                             
        Bandeira := 'VISA';                                                                       
        Adquirente := 'STONE';                                                                    
        if Assigned(ACBrSAT1.CFe) and (ACBrSAT1.Extrato= ACBrSATExtratoESCPOS1) then
          ImpressaoFiscal := '<![CDATA['+ACBrSATExtratoESCPOS1.GerarImpressaoFiscalMFe+']]>';     
        NumeroDocumento := '1674068';                                                            
        CNPJ:= edtEmitCNPJ.Text;                                                                  
      end;
      
    finally
      RespostaFiscal.Free;
    end;

Definição sobre Principais Campos:

Chave de Acesso Validador – Esta chave é fixa, está Pré-Definida no Manual Do Integrador Fiscal.

ID FIla – Este campo se trata do “ID Pagamento” retornado no primeiro método

ChaveAcesso –   Refere-se a Chave do CFe de Venda gerado pelo MFe ou Integrador Fiscal (no caso de NFC-e)

NSU –   Fornecido pela Adquirente (Autorizadora de Pagamento) – Como não existe este equipamento POS Integrado conforme previsão inicial, está sendo informado um valor fixo.

NumeroAprovacao –   Código de Autorização de Pagamento Retornado pela Adquirente – Como não existe este equipamento POS Integrado conforme previsão inicial, está sendo informado um valor fixo.

ImpressaoFiscal –   A Intensão futura é utilizar no Aparelho POS

NumeroDocumento –   Número do Cupom Fiscal Autorizado.

Será obtido o XML Retorno com o Código de Processamento da Resposta Fiscal.

Encerra o Processo VPE – utilizando o TEF

 

 

Veja Mais detalhes sobre o Fluxo de Venda utilizando POS e TEF em:

https://servicos.sefaz.ce.gov.br/internet/download/projetomfe/FluxoVendaPDVUtilizandoPOS.pdf

https://servicos.sefaz.ce.gov.br/internet/download/projetomfe/FluxoVendaPDVUtilizandoTEF.pdf

Manual Integrador:

http://cfe.sefaz.ce.gov.br/mfe/informacoes/downloads#/

 

Fonte: https://www.projetoacbr.com.br/forum/topic/51588-vpe-validador-de-pagamentos-eletr%C3%B4nicos-utilizando-o-integrador-fiscal-ce/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CHECK-LIST DE HOMOLOGAÇÃO CF-e

HOMOLOGAÇÃO

1. PREPARAR AMBIENTE:

1.1 – Se certificar de que tanto a aplicação comercial quanto o integrador estejam fechados.

1.2 – Abrir o integrador

1.3 – Abrir a aplicação comercial pelo integrador

2. VERIFICAÇÃO DADOS POS:

2.1 – Cadastro de POS

Dados do POS:

ID: Valor fornecido pelo usuário, pode ser um número sequencial.

Serial do POS: No ambiente de produção, o valor inserido é o número de série do equipamento.

Descrição: Valor fornecido pelo usuário, pode ser uma forma de identificar o POS.

2.2 – VERIFICAÇÃO CHAVE DE ACESSO AO VALIDADOR.

Esse valor pode ser encontrado no manual do integrador fiscal, página 9. OBSERVAÇÃO: A chave de acesso ao validador é igual nos dois ambientes tanto na homologação quanto na produção.

Chave de acesso Validador: 25CFE38D-3B92-46C0-91CA-CFF751A82D3D

2.3 – VERIFICAÇÃO CHAVE DE REQUISIÇÃO

OBSERVAÇÃO: A chave de requisição é um código gerado a partir do CNPJ do contribuinte mais o CNPJ da adquirente.

3. TESTE DE VENDAS:

3.1 – Fazer uma venda a dinheiro

3.2 – Fazer uma nova venda (a venda deve ser finalizada com duas formas de pagamento, dinheiro e cartão).

3.3 – O AC deve solicitar COD DE AUT, NSU e BANDEIRA, antes de finalizar o cupom.

3.4 – Realizar uma venda com o integrador desligado – Nesse caso aplicação não deve emitir o cupom.

3.6 – Fazer uma nova venda a cartão, logo depois cancelá-la.

4. VERIFICAÇÃO DO BANCO DE DADOS

4.1 – Verificar no banco de dados as seguintes tabelas: ID_pagamentos e ID_respostafiscal

5. ENVIO DE DOCUMENTOS FISCAIS

5.1 – Enviar todos os XML’s gerados no momento da homologação para o e-mail: suporte.mfe@sefaz.ce.gov.br com o assunto “DADOS HOMOLOGAÇÃO + NOME SOFTWARE HOUSE”.

OBS: PARA SER FEITO A HOMOLOGAÇÃO É NECESSÁRIO A DISPONIBILIZAÇÃO DO APLICATIVO DE ACESSO REMOTO ACESEFA.

NO DIA DO AGENDAMENTO, ENTRAR EM CONTATO ATRAVÉS DOS SEGUINTES RAMAIS:

(85) 3108-0283

(85) 3108-0284

(85) 3108-0215

(85) 3108-0216

(85) 3108-0784

(85) 3108-0797

Caso tenha alguma dúvida enviar um e-mail para suporte.mfe@sefaz.ce.gov.br

 

Fonte:

https://www.projetoacbr.com.br/forum/topic/55266-roteiro-e-ou-manual-para-homologa%C3%A7%C3%A3o/

 

https://www.projetoacbr.com.br/forum/topic/51588-vpe-validador-de-pagamentos-eletr%C3%B4nicos-utilizando-o-integrador-fiscal-ce/

 

Linguagem Elixir

Elixir é uma linguagem dinâmica e funcional projetada para a criação de aplicativos escaláveis ​​e de manutenção.

O Elixir aproveita a Erlang VM, conhecida por executar sistemas de baixa latência, distribuídos e tolerantes a falhas, além de ser usada com sucesso no desenvolvimento da Web e no domínio de software incorporado.

Para saber mais sobre o Elixir, consulte nosso guia de introdução e nossa página de aprendizado para outros recursos . Ou continue lendo para obter uma visão geral da plataforma, idioma e ferramentas.

Recursos da plataforma

Escalabilidade

Todo o código Elixir é executado dentro de threads de execução leves (chamados processos) que são isolados e trocam informações por meio de mensagens:

current_process = self()

# Spawn an Elixir process (not an operating system one!)
spawn_link(fn ->
  send(current_process, {:msg, "hello world"})
end)

# Block until the message is received
receive do
  {:msg, contents} -> IO.puts(contents)
end

Devido à sua natureza leve, não é incomum ter centenas de milhares de processos em execução simultaneamente na mesma máquina. O isolamento permite que os processos sejam coletados de maneira independente, reduzindo as pausas em todo o sistema e usando todos os recursos da máquina da maneira mais eficiente possível (escala vertical).

Os processos também podem se comunicar com outros processos em execução em máquinas diferentes na mesma rede. Isso fornece a base para a distribuição, permitindo que os desenvolvedores coordenem o trabalho em vários nós (escala horizontal).

Tolerância ao erro

A verdade inevitável sobre o software em execução na produção é que as coisas vão dar errado . Ainda mais quando levamos em consideração a rede, os sistemas de arquivos e outros recursos de terceiros.

Para lidar com falhas, o Elixir fornece supervisores que descrevem como reiniciar partes do seu sistema quando as coisas dão errado, voltando a um estado inicial conhecido que é garantido que funcione:

children = [
  TCP.Pool,
  {TCP.Acceptor, port: 4040}
]

Supervisor.start_link(children, strategy: :one_for_one)

A combinação de escalabilidade, tolerância a falhas e programação orientada a eventos por meio da passagem de mensagens faz do Elixir uma excelente opção para arquitetura e programação reativa.

Caracteristicas do idioma

Programação funcional

A programação funcional promove um estilo de codificação que ajuda os desenvolvedores a escrever um código curto, conciso e sustentável. Por exemplo, a correspondência de padrões permite que os desenvolvedores destruam facilmente os dados e acessem seu conteúdo:

%User{name: name, age: age} = User.get("John Doe")
name #=> "John Doe"

Quando combinada com guardas, a correspondência de padrões nos permite combinar e declarar condições específicas para que algum código seja executado:

def drive(%User{age: age}) when age >= 16 do
  # Code that drives a car
end

drive(User.get("John Doe"))
#=> Fails if the user is under 16

O Elixir depende muito desses recursos para garantir que seu software esteja funcionando sob as restrições esperadas. E quando não estiver, não se preocupe, os supervisores estão de costas!

Extensibilidade e DSLs

O Elixir foi projetado para ser extensível, permitindo que os desenvolvedores estendam naturalmente a linguagem para domínios específicos, a fim de aumentar sua produtividade.

Como exemplo, vamos escrever um caso de teste simples usando a estrutura de teste do Elixir chamada ExUnit :

defmodule MathTest do
  use ExUnit.Case, async: true

  test "can add two numbers" do
    assert 1 + 1 == 2
  end
end

async: trueopção permite que tests sejam executados em paralelo, usando o maior número possível de núcleos de CPU, enquanto a assertfuncionalidade pode introspectar seu código, fornecendo ótimos relatórios em caso de falhas. Esses recursos são criados usando as macros do Elixir, possibilitando adicionar novas construções como se fizessem parte da própria linguagem.

Recursos de ferramentas

Um ecossistema em crescimento

O Elixir é fornecido com um ótimo conjunto de ferramentas para facilitar o desenvolvimento. O Mix é uma ferramenta de compilação que permite criar facilmente projetos, gerenciar tarefas, executar testes e muito mais:

$ mix new my_app
$ cd my_app
$ mix test
.

Finished in 0.04 seconds (0.04s on load, 0.00s on tests)
1 tests, 0 failures

O Mix também é capaz de gerenciar dependências e se integra ao gerenciador de pacotes Hex , que executa a resolução de dependências, busca pacotes remotos e hospeda documentação para todo o ecossistema.

Desenvolvimento interativo

Ferramentas como o IEx (shell interativo do Elixir) são capazes de alavancar muitos aspectos do idioma e da plataforma para fornecer ferramentas de depuração automáticas, recarga de código, recarga de código e documentação bem formatada:

$ iex
Interactive Elixir - press Ctrl+C to exit (type h() ENTER for help)
iex> h String.trim           # Prints the documentation for function
iex> i "Hello, World"        # Prints information about the given data type
iex> break! String.trim/1    # Sets a breakpoint in the String.trim/1 function
iex> recompile               # Recompiles the current project on the fly

Erlang compatível

O Elixir é executado na VM Erlang, oferecendo aos desenvolvedores acesso completo ao ecossistema da Erlang, usado por empresas como Heroku , WhatsApp , Klarna e muito mais para criar aplicativos distribuídos e tolerantes a falhas. Um programador Elixir pode chamar qualquer função Erlang sem custo de tempo de execução:

iex> :crypto.hash(:md5, "Using crypto from Erlang OTP")
<<192, 223, 75, 115, ...>>

Para saber mais sobre o Elixir, consulte o nosso guia de primeiros passos . Também temos documentação online disponível e um Crash Course para desenvolvedores de Erlang .

Fonte: https://elixir-lang.org/

Use o Firebase Cloud Functions para buscar uma imagem e transformá-la em base64

Publicado pela primeira vez: 14 de novembro de 2019
Atualizado em: 14 de novembro de 2019

Você já manipulou imagens em um servidor?

Esse era um requisito que eu tinha um tempo atrás que não sabia como resolver no momento.

Estávamos trabalhando jsPDFpara criar PDFs de relatórios em um de nossos aplicativos Ionic, mas tivemos um problema: todas as nossas imagens eram armazenadas on-line e você não pode passar um URL jsPDFpara as imagens.

Leva apenas base64, URI de dados e acho que o objeto blob.

Nossa primeira tentativa foi fazer o lado do cliente de transformação base64 e enviar todas essas cadeias para criar o PDF. A questão era que, se tivéssemos mais de 10 imagens, elas começavam a ficar lentas.

Por isso, decidimos mudar esse servidor e criamos uma função de nuvem que a tratava para nós.

Para isso, precisamos de uma função de nuvem que:

  • Escuta o banco de dados quando adicionamos o URL das imagens regulares.
  • Redimensiona essa imagem para não armazenar algo pesado.
  • Transforma para base64.
  • Armazena a sequência base64 no banco de dados.

Com isso em mente, vamos para a codificação, este artigo supõe que você já tenha um projeto e tenha o Cloud Functions inicializado; caso contrário, passe por este artigo primeiro .

Instalando os pacotes que precisamos

A primeira coisa que faremos é instalar os pacotes de que precisamos; no nosso caso, são dois, usamos o requestpacote para buscar a URL da imagem e o sharppacote para redimensioná-la.

npm install request sharp

E, em seguida, importe-os na parte superior do arquivo de funções

var request = require('request').defaults({
  encoding: null
});
const sharp = require('sharp');

Estamos usando encoding: nullpara dizer à solicitação que você deseja um buffer, não uma string. Precisamos desse buffer para criar a string base64.

Criar a função de nuvem

Queremos primeiro criar a função que atende ao banco de dados, com algumas verificações no local. No nosso caso, tínhamos uma coleção de projetos e cada documento tinha uma foto antes e depois necessária para o relatório:

exports.convertImageToPDF = functions.firestore
  .document('projects/{projectId}')
  .onWrite(async (change, context) => {
    // We get the project's ID from the context param.
    // We get the actual project data from the change param, we want to
    // use the .after to signal is the new data we're listening to.
    const projectId = context.params.projectId;
    const currentProject = change.after.data();
  });

Então, queremos verificar se estamos atualizando mais alguma coisa nesse projeto e já temos essa propriedade base64, queremos interromper a função.

exports.convertImageToPDF = functions.firestore
  .document('projects/{projectId}')
  .onWrite(async (change, context) => {
    const projectId = context.params.projectId;
    const currentProject = change.after.data();

    let beforePictureBase64 = currentProject.beforePictureBase64;
    let afterPictureBase64 = currentProject.afterPictureBase64;

    if (beforePictureBase64 && afterPictureBase64) {
      console('Both pictures are here');
      return;
    }
  });

Queremos perguntar, se não há imagem antes ou depois da imagem e convertê-las em base64.

Chamaremos uma função para fazer a transformação, cobriremos isso assim que terminarmos com a função de nuvem que fala com o banco de dados.

exports.convertImageToPDF = functions.firestore
  .document('projects/{projectId}')
  .onWrite(async (change, context) => {
    const projectId = context.params.projectId;
    const currentProject = change.after.data();

    let beforePictureBase64 = currentProject.beforePictureBase64;
    let afterPictureBase64 = currentProject.afterPictureBase64;

    if (beforePictureBase64 && afterPictureBase64) {
      console('Both pictures are here');
      return;
    }

    if (!beforePictureBase64) {
      // currentProject.beforePicture is the online URL of the before picture
      beforePictureBase64 = await toDataURL(currentProject.beforePicture);
    }

    if (!afterPictureBase64) {
      // Same as above but for the after picture
      afterPictureBase64 = await toDataURL(currentProject.afterPicture);
    }

    // If we get to this point and still we have no transformed images,
    // we want to stop the function.
    if (!beforePictureBase64 && !afterPictureBase64) {
      console.log('No pictures here');
      return;
    }

    // And then we want to store the base64 pictures in the same project.

    return admin
      .firestore()
      .doc(`projects/${projectId}`)
      .update({
        beforePictureBase64: beforePictureBase64 || null,
        afterPictureBase64: afterPictureBase64 || null
      });
  });

Agora, vamos falar sobre a toDataURL()função, já que toda a transformação da imagem está acontecendo lá.

Primeiro, precisamos da função de usar o URL on-line como parâmetro e retornar uma Promessa, pois faremos coisas assíncronas.

function toDataURL(url) {
  return new Promise((resolve, reject) => {});
}

Então, vamos usar o requestmódulo para buscar a imagem, se não houver erro e tudo correr bem, fazemos a manipulação da imagem, se algo estiver errado, lançamos o erro.

function toDataURL(url) {
  return new Promise((resolve, reject) => {
    request.get(url, function(error, response, body) {
      if (!error && response.statusCode === 200) {
        // Do the transformation
      } else {
        throw error;
      }
    });
  });
}

Então, redimensionaremos a imagem original, lembre-se: um documento do Firestore tem um limite rígido de 1 MB e uma imagem base64 geralmente é 30% mais pesada que a original.

function toDataURL(url) {
  return new Promise((resolve, reject) => {
    request.get(url, function(error, response, body) {
      if (!error && response.statusCode === 200) {
        return sharp(body)
          .resize(100, 100)
          .toBuffer()
          .then(resizedImage => {
            // Transform to base64
          })
          .catch(err => {
            throw err;
          });
      } else {
        throw error;
      }
    });
  });
}

Estamos usando o sharpmódulo para redimensioná-lo, passando a altura e a largura que queremos para a imagem e, em seguida, certificando-nos de que a resposta também seja um buffer.

E, finalmente, estamos formando nossa string base64:

function toDataURL(url) {
  return new Promise((resolve, reject) => {
    request.get(url, function(error, response, body) {
      if (!error && response.statusCode === 200) {
        return sharp(body)
          .resize(100, 100)
          .toBuffer()
          .then(resizedImage => {
            data =
              'data:' +
              response.headers['content-type'] +
              ';base64,' +
              new Buffer(resizedImage).toString('base64');

            resolve(data);
            return data;
          })
          .catch(err => {
            throw err;
          });
      } else {
        throw error;
      }
    });
  });
}

E é isso, a toDataURL(url)função retornará uma string base64 válida que podemos armazenar no Firestore e usar para a manipulação do pdf 🙂

Deixe-me saber se você tiver algum problema com este, foi uma grande dor para nós, tentamos várias coisas diferentes antes de chegar a isso.

Fonte: https://javebratt.com/cloud-function-image-base64/