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

A Terceira Lâmina

Na voz de um cantador ecoa a tradição e a cultura popular do nordeste brasileiro, onde a poesia se entrelaça com a melodia, criando um universo rico em expressão e sentimento. Como ressalta Braga (2013), o cantador nordestino, seja ele repentista, embolador ou cordelista, utiliza-se da oralidade para transmitir suas histórias e reflexões, preservando assim a identidade cultural da região.

A musicalidade presente na voz do cantador é uma manifestação artística que atravessa gerações, como destacado por Cavalcanti (2005), sendo passada de pai para filho e perpetuando as tradições do sertão. Nesse contexto, a poesia se torna um instrumento de resistência e resiliência, retratando a realidade social e política do povo nordestino.

É importante ressaltar que o cantador não apenas entoa versos, mas também improvisa, como apontado por Paiva (2017), criando rimas e métricas de forma espontânea, o que exige habilidade e domínio da linguagem poética. Essa capacidade de improvisação confere ao cantador uma aura de autenticidade e originalidade, tornando cada apresentação única e cativante.

Além disso, a voz do cantador está intrinsecamente ligada à música regional nordestina, como o forró, o baião e o xote, que enriquecem suas performances, como ressaltado por Silva (2008). Esses ritmos, aliados à poesia improvisada, criam um espetáculo vibrante e envolvente, capaz de emocionar e encantar plateias de todas as idades.

Assim, na voz de um cantador, encontramos não apenas entretenimento, mas também uma poderosa ferramenta de preservação cultural e de resistência, que mantém viva a rica tradição oral do nordeste brasileiro.

Ada Lovelace

Augusta Ada Byron King, Condessa de Lovelace (nascida Byron, 10 de dezembro de 1815 — 27 de novembro de 1852), atualmente conhecida como Ada Lovelace, foi uma matemática e escritora inglesa. Hoje é reconhecida principalmente por ter escrito o primeiro algoritmo para ser processado por uma máquina, a máquina analítica de Charles Babbage.[1][2] Durante o período em que esteve envolvida com o projeto de Babbage, ela desenvolveu os algoritmos que permitiriam à máquina computar os valores de funções matemáticas, além de publicar uma coleção de notas sobre a máquina analítica. Por esse trabalho é considerada a primeira programadora de toda a história.[3][4]

Lovelace nasceu em 10 de dezembro de 1815 e é a única filha legítima do poeta Lord Byron e sua esposa Anne Isabella “Anabella” Byron,[5] Lady Wentworth. Todos os outros filhos de Lorde Byron nasceram fora do casamento.[6] Byron foi escritor de uma das versões de Don Juan.[7] Se separou da esposa um mês depois do nascimento de Ada e deixou a Inglaterra para sempre, quatro meses depois. Acabou morrendo doente durante a Guerra da Independência Grega, quando Ada tinha oito anos de idade. A mãe de Ada promoveu o interesse de Ada em matemática e lógica, em um esforço para impedi-la de desenvolver o que ela via como a insanidade de Lord Byron. Mas Ada permaneceu interessada em seu pai e, a seu pedido, foi enterrada ao lado dele quando morreu.[8]

Na juventude, seus talentos matemáticos levaram-na a uma relação de trabalho e de amizade com o colega matemático britânico Charles Babbage e, em particular, o trabalho de Babbage sobre a Máquina Analítica. Entre 1842 e 1843, ela traduziu um artigo do engenheiro militar italiano Luigi Federico Menabrea sobre a máquina e complementou com um conjunto de sua própria autoria, que ela chamou de Anotações. Essas notas contêm um algoritmo criado para ser processado por máquinas, o que muitos consideram ser o primeiro programa de computador. Ela também desenvolveu uma visão sobre a capacidade dos computadores de irem além do mero cálculo ou processamento de números, enquanto outros, incluindo o próprio Babbage, focavam apenas nessas capacidades.[9] Sua mentalidade da “ciência poética”[10] a levou a fazer perguntas sobre a máquina analítica (como mostrado em suas notas) e a examinar como os indivíduos e a sociedade se relacionam com a tecnologia como uma ferramenta de colaboração.[11]

Casou-se, aos 20 anos com William Lord King. Este foi nomeado Conde de Lovelace em 1838, e Ada tornou-se Lady Lovelace. Ada morreu de câncer de útero, aos 36 anos de idade.[carece de fontes]

História

Infância

Ada Lovelace nasceu Augusta Ada Byron em 10 de dezembro de 1815, em Londres, na Inglaterra. Filha do poeta George Gordon Byron, 6º Barão Byron, e de Anne Isabella “Annabella” Milbanke, Baronesa Byron.[12] George Byron esperava ser pai de um menino e ficou desapontado quando sua esposa deu à luz uma menina.[13] Augusta recebeu esse nome por causa da meia-irmã de Byron, Augusta Leigh, e foi chamada de “Ada” pelo próprio George.[14][4]

Em 16 de Janeiro de 1816, Annabella, a pedido de George, se mudou para a casa de seus pais em Kirkby Mallory levando Ada com ela, que na época tinha apenas um mês de idade.[15] Embora a lei Inglesa desse ao pai a custódia total de seus filhos em caso de separação, Byron não fez nenhuma tentativa de reivindicar seus direitos, mas pediu para que sua irmã o mantivesse informado sobre o bem-estar de Ada.[16] Em 21 de abril, Byron assinou a escritura de separação, com muita relutância, e deixou a Inglaterra para sempre alguns dias depois.[17] Além de não aceitar bem a separação amarga, Annabella fez acusações sobre o comportamento imoral de Byron, durante toda sua vida.[18] Este conjunto de eventos deixaram Ada famosa na sociedade vitoriana. Byron não tinha um relacionamento com sua filha e nunca mais a viu. Ele morreu em 1824, quando ela tinha oito anos. Sua mãe era a única figura parental significativa em sua vida.[19] Ada não foi autorizada a ver qualquer retrato de seu pai até seu vigésimo aniversário.[20] Sua mãe se tornou Baronesa Wentworth em 1856.

Ada não era próxima de sua mãe e era deixada aos cuidados de sua avó materna Judith Hon, Lady Milbanke, que a mimava. Porém, devido aos costumes da época, Lady Byron teve de se comportar como uma mãe amorosa aos olhos da sociedade. Ela enviava cartas para Lady Milbanke onde falava sobre o bem-estar da menina, mas sempre com uma nota instruindo a avó a guardar as cartas para que a mesma pudesse usá-las para provar seu amor maternal. Em uma das cartas, Lady Byron se referiu à Ada como “aquilo”: “Falarei com aquilo para lhe satisfazer, e não para deleite próprio, e deverás ser grata quando aquilo estiver sobre tua guarda”.[21] Durante sua adolescência, Ada foi vigiada por conhecidos de Lady Byron, a fim de lhe reportar qualquer sinal de desvio moral, a menina os apelidou de “Fúrias” e dizia que inventavam histórias exageradas sobre sua pessoa.[21]

No início de sua infância, Ada se encontrava doente com frequência. Aos oito anos de idade, a menina sofria de fortes dores de cabeça que prejudicavam sua visão.[22] Em junho de 1829, Ada ficou paralisada após contrair sarampo, foi obrigada a ficar de repouso em sua cama por quase um ano, o que afetou sua capacidade de andar. Em 1831, a menina se locomovia com o uso de muletas. Mesmo após ter tido sequelas devido à doença, Ada conseguiu desenvolver suas habilidades matemáticas e tecnológicas.

Aos doze anos de idade, Ada decidiu que queria voar, desejo que lhe traria o apelido de “Senhora Fada” carinhosamente dado por Charles Babbage. Ela então focou-se metodicamente em seu plano, desenvolveu-o com cuidado, imaginação e amor. Em fevereiro de 1828, Ada deu seu primeiro passo e decidiu construir um par de asas, algo que demandou uma pesquisa de diversos materiais, como papéis, seda a prova d’agua, arames e penas. Ela também estudou a anatomia dos pássaros para encontrar a proporção exata entre o corpo e as asas dos animais. Ada decidiu escrever um livro chamado “Flyology”, podendo ser traduzido como o “Estudo do voo”, que foi ilustrado com suas ideias. Ela decidiu que precisaria de uma bússola para “atravessar o país pelo caminho mais curto” e vencer montanhas, rios e vales. Seu último passo seria juntar o vapor à “arte de voar”.[6]

No início de 1833, Ada teve um caso com seu tutor, e tentou fugir ao seu lado após ter sido descoberta, mas foi reconhecida pelos parentes do tutor, que contataram a sua mãe. Lady Byron, junto a seus amigos, conseguiram esconder o incidente antes que virasse um escândalo público.[21] Ada nunca conheceu sua meia irmã, Allegra, filha de Lord Byron e Claire Clairmont, a criança morreu aos cinco anos de idade em 1822. Ada teve contato com Elizabeth Medora Leigh, a filha da meia irmã de seu pai, Augusta Leigh, que a evitava o máximo possível ao ser introduzida a Corte.[23]

Vida adulta

Ada tornou-se amiga próxima de sua tutora Mary Somerville, que a apresentou para Charles Babbage em 1833. Ela respeitava e adorava Mary,[21] as duas trocaram cartas por muitos anos. Dentre outros conhecidos de Ada estavam os cientistas Andrew Crosse, Sir David BrewsterCharles WheatstoneMichael Faraday e o autor Charles Dickens. Aos dezessete anos foi apresentada à Corte e ficou conhecida por sua mente brilhante.[23] Em 1834 Ada já frequentava a Corte com frequência e passou a participar de vários de seus eventos. Dançava com frequência e encantava as pessoas com seu charme e era vista como uma moça delicada; já um amigo de seu pai, John Hobhouse, a descrevia como “uma jovem mulher volumosa de pele áspera, mas com traços semelhantes ao de um amigo, especialmente os lábios”.[23] Esta descrição foi seguida de um encontro em 24 de fevereiro de 1834, onde Ada deixou claro que não gostava de John, provavelmente devido a sua mãe, Lady Byron, que a influenciava a não gostar dos amigos de seu pai. Mesmo após esta má impressão, os dois viraram amigos mais tarde.[23]

Ada casou-se com William 8th Baron King, em julho de 1835, e tornou-se Lady King. Eles possuíam três casas: Ockham Park em Surrey; uma casa de campo escocesa no vilarejo de Loch Torridon em Ross-shire na Escócia; e uma casa em Londres. Os dois passaram a lua de mel em Worthy Manor em Ashleu Combe, próximo à Porlock Weir, Somerset. A mansão foi construída inicialmente para ser uma cabana de caça em 1799 e foi reformada por William especialmente para a lua de mel e mais tarde foi transformada em uma casa de veraneio e passou por novas melhorias. Em 1845, a casa principal da família ficava em Surrey, na Inglaterra, chamava-se East Horsley Towers e foi reconstruída pelo arquiteto Charles Barry durante o movimento neogótico.[24][25]

Eles tiveram três filhos: Byron, nascido em 12 de Maio de 1836; Anne Isabella, apelidada de Annabella, nascida em 22 de Setembro de 1837; e o caçula Ralph Gordon, nascido em 2 de Julho de 1839. Após o nascimento de Annabella, Ada sofreu de “uma enfadonha e dolorosa enfermidade, e levou meses para se curar”.[23] Ela era descendente dos extintos Barões de Lovelace e, em 1838, seu marido se tornou Conde de Lovelace e Visconde de Ockham,[26] tornando-a Condessa de Lovelace. Em 1843-1844, Lady Byron, mãe de Ada, indicou William Benjamin Carpenter para ser tutor de seus netos e tutor “moral” de Ada.[21] William apaixonou-se por ela e a encorajou a expressar quaisquer sentimentos reprimidos, dizendo que seu casamento significava que ele nunca poderia agir inapropriadamente, mas quando ficou claro que ele desejava ter um caso com Ada, ela rapidamente o cortou.[21]

Em 1841, a mãe de Ada, Lady Byron, revelou à moça e à Medora (filha de Augusta Leight, que era meia-irmã de Lord Byron) que o pai de Ada e Medora eram a mesma pessoa.[23] Em 27 de fevereiro daquele ano, Ada escreveu uma carta para sua mãe, dizendo “Não estou nem um pouco surpresa, na verdade a senhora apenas me confirmou uma dúvida que vem aterrorizando minha mente por anos, e que não tinha capacidade de lhe sugerir que suspeitava de tal fato”.[23] Ada não culpou seu pai pela relação incestuosa, pelo contrário, ela culpou Augusta: “Temo que ela é inerentemente mais perversa do que ele jamais foi”.[27] Na década de 1840, Ada envolveu-se em diversos escândalos, primeiro em relações extramatrimoniais[21] e segundo em jogos de azar. Ela supostamente perdeu mais de 3 mil libras ao apostar em cavalos.[28] As apostas incentivaram-na a criar uma associação com seus amigos que a levou a uma tentativa de criar um modelo matemático ambicioso que resultava em sucesso em apostas grandes em 1851. Ada falhou desastrosamente, perdeu milhares de libras para a associação e teve de contar o ocorrido ao marido.[21] Ela teve um relacionamento escondido com John Crosse, filho do cientista Andrew Crosse, em 1844 e diante. John destruiu maior parte das correspondências trocadas após a morte de Ada, como parte de um acordo legal. Ela deixou como herança para John as relíquias que seu pai lhe deu em vida.[21] Em seus dias finais, Ada temia a ideia de que John seria privado de visitá-la.[21]

Educação

Mesmo quando Ada ficava doente durante sua infância, a menina continuava a estudar.[22] Com o objetivo de acabar com quaisquer sinais de insanidade herdados de seu pai Lord Bryon, a mãe de Ada se certificou que a criança aprendesse matemática desde cedo. Ada foi educada em casa, aprendia matemática e ciências com William Frend, William King e Mary Somerville. Mais tarde seria tutorada pelo matemático e lógico Augustus De Morgan. Aos dezessete anos, em 1832, suas habilidades matemáticas começaram a emergir[23] e o interesse neste campo esteve presente durante sua vida adulta. Augustus sugeriu em uma carta endereçada à mãe de Ada, Lady Byron, que as habilidades matemáticas da jovem poderiam torna-la “uma investigadora matemática de primeira”.[22]

Ada acreditava que a intuição e a imaginação eram fundamentais para pôr em prática conceitos matemáticos e científicos de forma eficaz. Ela valorizava a metafísica tanto quanto a matemática, sendo ambas ferramentas para explorar “mundos invisíveis ao nosso redor”.[11]

Morte

Ada faleceu com a mesma idade que seu pai, aos 36 anos em 27 de novembro em decorrência de um câncer uterino, provavelmente agravado pela sangria realizada por médicos.[29] A doença perdurou por meses, nos quais Annabella assumiu controle sobre quem visitava Ada, excluindo todos seus amigos e confidentes. Sob influência de sua mãe, Ada teve uma transformação religiosa e foi persuadida a se arrepender de sua conduta e fazer de Annabella sua inventariante.[21] Ela perdeu o contato com o marido após confessar-lhe algo em 30 de agosto, o que o levou a abandonar seu leito.[21] Não se sabe o que ela disse. Ada foi enterrada, como desejava, ao lado de seu pai na Igreja de Santa Maria Madalena em Hucknall, Nottinghamshire. Uma placa escrita em latim em sua memória e em memória ao seu pai foi feita na capela ao lado de Horsley Towers.

Primeiro programa de computador

Em 1842, Charles Babbage foi convidado a ministrar um seminário na Universidade de Turim sobre sua máquina analítica. Luigi Menabrea, um jovem engenheiro italiano e futuro Primeiro-ministro da Itália, publicou a palestra de Babbage em francês e esta transcrição foi posteriormente publicada na Bibliothèque Universelle de Genève, em 1842.

Babbage pediu a Lovelace para traduzir o artigo de Menabrea para o inglês, adicionando depois a tradução com as anotações que ela mesma havia feito. Lovelace levou grande parte do ano nesta tarefa. Estas notas, que são mais extensas que o artigo de Menabrea, foram então publicados no The Ladies’ Diary e no Memorial Científico de Taylor sob as iniciais “AAL”.[4]

Em 1953, mais de cem anos depois de sua morte, as notas de Lovelace sobre a máquina analítica de Babbage foram republicadas. A máquina foi reconhecida como um primeiro modelo de computador e as notas de Lovelace como a descrição de um computador e um software.[1]

As notas de Lovelace foram classificadas alfabeticamente de A a G. Na nota G ela descreve o algoritmo para a máquina analítica computar a Sequência de Bernoulli. É considerado o primeiro algoritmo especificamente criado para ser implementado num computador, e Lovelace é recorrentemente citada como a primeira pessoa programadora por esta razão.[30] No entanto, a máquina analítica de Babbage jamais foi construída, tendo apenas a sua precursora a máquina diferencial sido montada em um trabalho que começou em 1984 por Allan G. Bromley professor da Universidade de Sydney junto com Doron Swade (The London Sience Museum), onde esses levaram 18 anos para finaliza-la.

Legado

A linguagem de programação Ada foi criada em homenagem à Ada Lovelace pelo Departamento de Defesa dos Estados Unidos. A documentação da linguagem foi aprovada em 10 de Dezembro de 1980.

Em 1981, a Associação de Mulheres na Computação criou o Prêmio Ada Lovelace.[31] Em 1998, A Associação Britânica de Computação criou a Medalha Lovelace[32] e em 2008 iniciou uma competição anual para alunas. A Associação Britânica de Computação é patrocinadora do Lovelace Colloquium,[33] que é uma conferência anual para mulheres estudantes de graduação. A Ada College é uma escola extra-curricular focada em tecnologia localizada em Tottenham Hale, Londres.

Em toda segunda terça-feira de outubro, desde 2009, é comemorado o Dia da Ada Lovelace,[34] que tem como objetivo “dar destaque à mulheres na ciência, tecnologia, engenharia e matemática” além de “criar novos modelos para meninas e mulheres”. Entre os eventos estão a Maratona de edição da Wikipédia, com o objetivo de aumentar a representação das mulheres na Wikipédia em termos de artigos e editores, para reduzir preconceitos de gênero. A Ada Initiative é uma organização sem fins lucrativos dedicada a aumentar o envolvimento das mulheres no Movimento pela cultura livre e em movimentos open source.[35] Em 2009, na ocasião da celebração do primeiro Ada Lovelace Day, a artista plástica Sydney Padua criou a história em quadrinhos “The Thrilling Adventures of Lovelace and Babbage”,[36] que ao mesmo tempo que contava a história de Charles Babbage e da condessa Ada Lovelace, também apresenta uma leitura descontraída dos dois. Em 2015 o quadrinho virou um livro, de mesmo nome.

A Ada Developers Academy[37] em Seattle é uma academia sem fins lucrativos com o objetivo de aumentar a diversidade na tecnologia, treinando mulheres cistrans e não-binários para se tornarem engenheiras de software.

Em 27 de julho de 2018, o senador americano Ron Wyden submeteu, a designação de 9 de outubro de 2018 como Dia Nacional Ada Lovelace: “Honrar a vida e as contribuições de Ada Lovelace como uma das principais mulheres em ciências e matemática”. A resolução (S.Res.592)[38] foi considerada e aprovada sem emendas e com um preâmbulo por consentimento unânime.

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

Denis Diderot

Biografia de Denis Diderot

Denis Diderot (1713-1784) foi um filósofo, escritor e tradutor francês, um dos grandes pensadores do Iluminismo francês e principal idealizador da Enciclopédia, um dos símbolos do Iluminismo, que preparou ideologicamente a Revolução Francesa.

Denis Diderot nasceu em Langres, na França, no dia 5 de outubro de 1713. Filho de um mestre de cutelaria recebeu boa educação. Estudou em colégio dos jesuítas, onde iniciou a carreira eclesiástica.

Em 1728, Diderot foi para Paris, e em 1732 recebeu o grau de mestre em Artes na Universidade de Paris. Ampliou sua formação estudando leis, literatura, filosofia e matemática.

Inicialmente, Diderot trabalhou como tradutor e escreveu sermões por encomenda. Frequentava os cafés parisienses onde conheceu pensadores iluministas como Étienne Condillac e Jean-Jacques Rousseau.

Contexto Histórico

Denis Diderot viveu na França do século XVIII, época em que o País atravessava transformações com a revolução intelectual denominada “Iluminismo” – movimento político-filosófico que se caracterizou pela defesa dos direitos e da liberdade dos cidadãos.

Os filósofos, entre eles, Voltaire, Montesquieu e Rousseau, exaltavam a razão, dizendo que ela guia o homem para a sabedoria e desprezavam toda e qualquer crença de forma religiosa.

O principal instrumento de divulgação das ideias iluministas foram os livros, que se multiplicaram nesse período.

Enciclopédia

A partir de 1745, Diderot começou a trabalhar ao lado do matemático Jean Le Rond d’Alembert, por encomenda do livreiro André LeBreton, na tradução da Cyclopaedia, do inglês Ephraim Chambers.

Ao realizar a tradução, Diderot teve a inspiração para criar uma grande “Enciclopédia” que fosse o veículo das novas ideias contra as forças, para ele reacionárias, da igreja e do estado, e que destacasse os princípios essenciais das artes e das ciências.

Diderot entregou-se à tarefa durante 16 anos, redigiu uma grande parte, mas sua tarefa foi, sobretudo, a de dirigir e supervisionar os trabalhos de 130 colaboradores, entre eles Montesquieu e Rousseau.

Apesar de enfrentar numerosas proibições e dificuldades, a “Enciclopédia” (Enciclopédia ou Dicionário Lógico das Ciências, Artes e Ofícios), composta de 17 volumes de textos e 11 volumes de desenhos, foi publicada entre 1751 e 1772.

A “Enciclopédia”, destinada a apresentar um panorama dos conhecimentos humanos naquele século, ávido de novidades, tornou-se um dos símbolos do Iluminismo e desempenhou papel destacado na criação do clima ideológico desencadeador da Revolução Francesa.

Pensamento de Diderot

Em 1746, Diderot publicou “Pensamento Filosófico”, uma formulação de objeções reacionárias contra a revelação sobrenatural. Em 1748, publicou “Cartas Sobre os Cegos Para Uso Dos Que Enxergam”. A tese do ensaio é a sujeição do homem aos seus cinco sentidos, o relativismo do conhecimento humano e a negação de qualquer fé transcendental.

Nas duas obras, Diderot expunha seu pensamento baseado no materialismo ateu que frisava o quanto o homem dependia de seus sentidos. As ordens religiosas se opuseram e Diderot foi preso, passando três meses na prisão.

 Denis Diderot escreveu ainda as obras:

  • As Joias Indiscretas (1748), livro de contos licenciosos.
  • A Religiosa (1760),obra anticlerical que denunciava a vida dos conventos da época.
  • O Sobrinho de Rameau (1762), obra escrita após uma crise religiosa.
  • Jacques, o Fatalista e Seu Mestre (1773), obra que revela seu esforço por conjugar a filosofia materialista com a crença na liberdade humana.

Denis Diderot viveu seus últimos anos ajudado economicamente pela imperatriz Catarina da Rússia, sua admiradora.Faleceu em Paris, França, no dia 31 de julho de 1784. Seus restos mortais encontram-se sepultados no Panteão de Paris.

Fonte: https://www.ebiografia.com.

Link: https://drive.google.com/file/d/1yocdTFmAp2s7aueh9Grv0b95HCrZERHv/view?usp=share_link

DevOps: o que é e como implementar a metodologia

O DevOps é uma cultura de trabalho que chama a atenção por um simples motivo: é extremamente eficiente. Não por menos, toda empresa de tecnologia atual se vende como adepta dessa abordagem. Mas o que é e qual sua importância?

Para responder a essas perguntas, é necessário mergulhar a fundo no conceito e na prática.

A verdade é que, para organizações tech que buscam se manter no topo da corrida contra a concorrência, é essencial adotar essa metodologia.

E você, preparado(a) para aprender mais? Preparamos um guia definitivo sobre o tema. Continue a leitura e sane todas as suas dúvidas!

O DevOps é uma abordagem moderna para o desenvolvimento de software. Ele procura facilitar as entregas, agregando mais agilidade e qualidade. Em seu cerne, trata-se da união de dois setores: desenvolvimento e operações — por isso, o termo, que é uma junção das palavras.

A cultura incorpora metodologia, ferramentas e práticas tanto do desenvolvimento quanto das operações de TI, permitindo que as equipes trabalhem juntas durante todo o ciclo de vida do software, desde o conceito até a implementação.

É uma maneira de quebrar as fronteiras departamentais por meio da construção de equipes colaborativas com membros de vários departamentos.

Ou seja, é possível controlar todo funil operacional, otimizando todas as fases de desenvolvimento: do brainstorming até os testes finais.

Assim, é possível reduzir os processos manuais, simplificar os ciclos de implementação e ajudar os desenvolvedores a focarem em atividades de alto valor em vez de tarefas rotineiras.

Para entender o que é essa cultura organizacional, é essencial olhar para o passado.

Tempos atrás — e em algumas empresas, até hoje — havia um embate entre os setores de desenvolvimento e operações. O conflito gerava discussões e desalinhamentos, o que criou um gap de produtividade empresarial.

No lado do setor de desenvolvimento, faltava agilidade e flexibilidade para construir bons códigos.

Já no lado de operações, o problema eram os servidores, que não conseguiam acompanhar os níveis de demanda.

O resultado você já sabe: a falta de continuidade nos projetos, que criava lacunas imensas entre as etapas de cada produto.

O ponto de virada foi a criação e implementação dessa cultura, que une os elos entre os dois setores e transforma os processos produtivos, tornando-os mais eficientes e totalmente escaláveis.

Vale ainda mencionar que o DevOps não é um mero método de trabalho, mas uma filosofia incorporada na cultura da empresa. Isso significa que apenas unir os dois setores não basta. 

É algo que transcende vários aspectos organizacionais, adotando uma abordagem mais moderna no desenvolvimento.

No DevOps, erros são valorizados, vistos como oportunidades de melhoria. A cultura que impera é de experimentação. Lembre-se: a colaboração é a chave para tudo.

E, claro, há especial atenção para automação de processos, como CI, CD e o deployment do produto.

Por que implementar uma cultura de DevOps na empresa?

Afinal, por que a sua empresa deveria se preocupar em implementar a cultura DevOps? O principal motivo já falamos na introdução: porque é eficaz!

A adoção permite a automação da abordagem, reduz erros humanos, aumenta o desempenho e torna os processos mais repetíveis. Ele também incentiva a colaboração entre departamentos, elimina silos de conhecimento e promove a comunicação próxima entre as equipes.

Não é surpresa que as empresas que abraçam uma cultura de inovação experimentem maiores taxas de crescimento e um maior time-to-market.

Ao mesmo tempo, ela ajuda a reduzir custos e melhorar o controle de qualidade — devido a testes automatizados constantes. Na prática, trata-se de uma metodologia ágil que pode ser implementada em qualquer tipo de organização.

De acordo com o estudo da Puppet, empresas adeptas da abordagem viram resultados como:

  • 24 vezes mais ativas na resolução de crashes;
  • 22% menos tempo desperdiçado em retrabalhos;
  • 50% menos tempo corrigindo questões de segurança.

Além disso, é uma questão de competitividade: se a sua empresa não o fizer, sua concorrente o fará.

E esse é um argumento de venda, que atrai clientes que buscam desenvolvedoras e fábricas de software capazes de entregar soluções em tempo e eficientes.

O ciclo de vida do DevOps

O ciclo de vida do DevOps diz respeito a um processo contínuo de desenvolvimento de software. Nele, estão reunidas as boas práticas para planejar, construir, integrar, fazer o deploy, monitorar, operar e aprimorar um produto digital.

É comum ilustrar esse processo contínuo como um círculo, como esse exemplo da Spiceworks:

Desenvolvimento contínuo

O ciclo começa com a fase de planejamento, na qual a equipe identifica os objetivos do projeto e define o produto a ser desenvolvido.

Integração contínua

Nesta fase, diferentes equipes de desenvolvimento desenvolvem seu trabalho em um repositório compartilhado. Assim, se houver algum problema ou erro durante o processo de integração, eles podem ser identificados e corrigidos rapidamente.

Testes contínuos

Neste ponto, a equipe começa a testar o produto, o que é feito com ferramentas de automação  que verificam se o código se comporta corretamente e atende a todos os requisitos.

Deployment contínuo

Quando tudo estiver testado e pronto, o código pode ser implantado em servidores de produção. Isso permite uma entrega rápida do produto e possibilita que os usuários comecem a usá-lo imediatamente.

Monitoramento contínuo

Após a implantação, o produto é monitorado para garantir que está funcionando como esperado e que atende às necessidades do usuário. Na prática, envolve a observação de métricas-chave como latência, disponibilidade, taxas de erro etc.

Feedback contínuo

Finalmente, o feedback dos usuários é coletado e usado para identificar áreas de melhoria. É algo que ajuda a equipe a refinar e melhorar o produto ao longo do tempo.

Operação contínua

A equipe também garante que o produto esteja disponível e funcionando corretamente, em regime contínuo.

Como adotar o DevOps em sua organização?

Para que a implementação da abordagem dê certo, é preciso que haja uma mudança na cultura organizacional da empresa.

Seguindo alguns passos, é possível adequar melhor a organização para que a metodologia seja bem-sucedida.

Conte com profissionais engajados

A equipe deve ter membros com habilidades específicas relacionadas ao processo de desenvolvimento de software, tais como desenvolvedores e administradores de sistemas.

Integre as equipes e os serviços

A abordagem funciona melhor quando todas as equipes envolvidas no processo colaboram e se comunicam eficientemente.

Para isso, invista em ferramentas que favoreçam a comunicação corporativa, bem como integrem profissionais e processos, de modo que nada se perca entre setores.

Padronize o ambiente de TI 

Para garantir que o ciclo DevOps funcione corretamente, é importante ter um ambiente de TI no qual todas as ferramentas estejam sincronizadas. Uma maneira de fazer isso é usar uma plataforma como serviço (PaaS).

Isso reduzirá o custo e a complexidade do gerenciamento de diferentes versões de ferramentas e software.

Use ferramentas e metodologias de gestão

Essa cultura requer ferramentas e metodologias específicas para gerenciar todo o processo de desenvolvimento de software. Exemplos incluem AgileLean, e Kanban.

Elas ajudam a equipe a rastrear tarefas, criar métricas e medidas de sucesso e garantir que os prazos sejam cumpridos.

Além disso, não se esqueça de investir em soluções como ERP, que mantêm o registro de todo backoffice e simplificam as demais funções paralelas ao time de desenvolvimento e operações.

Invista em automação

Um dos passos mais importantes para uma implementação bem-sucedida do DevOps é a automação. Há muitas ferramentas disponíveis para automatizar diferentes processos, tais como integração e testes contínuos, implantação, monitoramento e feedback.

Ao automatizar corretamente cada etapa do ciclo, você pode reduzir custos e economizar tempo.

Adote gradualmente

Dê tempo ao tempo e não apresse sua transformação a uma nova cultura. Esse é um movimento complexo, que exige tempo para que profissionais e a empresa como um todo se acostumem.

Que tal estabelecer um calendário de médio e longo prazo com datas justas para que o time corretamente tenha como se adaptar à nova abordagem?

Acompanhe os resultados

Finalmente, fique de olho nos resultados e garanta que o processo de desenvolvimento está atingindo seus objetivos.

Se houver problemas, é importante analisá-los e tomar medidas corretivas rapidamente. Ao fazer isso, você pode melhorar continuamente seu ciclo e obter o máximo dele.

O que faz um DevOps? Entenda mais sobre esse profissional

Na prática, o profissional de DevOps deve ter base técnica e acadêmica suficiente para atuar no desenvolvimento de sistemas, bem como na sua infraestrutura.

Especialistas no tema atuam como ponte na integração dos departamentos, padronizando processos e servindo de base para melhoria contínua dos resultados.

Esse profissional pode tanto focar no planejamento, desenvolvimento da aplicação, deployment ou operação. De forma estratégica, pode ser quem alinha equipes e gerencia ações.

De acordo com o site Quero Bolsa, o salário médio de quem atua na área é de cerca de R$9 mil em São Paulo.

No entanto, é possível dizer que os valores variam bastante a depender da senioridade da vaga e das atribuições do dev em questão — já que a flexibilidade de atuação é uma marca de quem atua na profissão.

TOTVS Developers

Você já conhece o TOTVS Developers?

Esse é um espaço perfeito para quem trabalha na área tech, com artigos e novidades sobre o mundo da tecnologia.

É o nosso blog técnico, mantido pelos próprios TOTVERS que atuam dia a dia com soluções inovadoras, dentro de uma cultura adepta das principais metodologias do mercado.

Vem conferir o TOTVS Developers!

Conclusão

Em resumo, o sucesso do DevOps requer a integração de pessoas, processos e tecnologia.

Investir nas ferramentas e metodologias corretas é essencial para garantir um fluxo de trabalho suave e obter o máximo dessa cultura inovadora.

Também é importante adotá-la gradualmente e acompanhar os resultados para que você possa melhorar continuamente o seu ciclo.

Finalmente, não se esqueça de que você precisa de alguém que tenha conhecimento e experiência para gerenciar todo o processo.

A TOTVS Developers é um grande recurso para aqueles que procuram aprender mais sobre o tema, entre outros assuntos do mundo da tecnologia. Conheça o blog técnico da TOTVS!

Fonte: https://www.totvs.com/blog/developers/metodologia-devops/

urlscan.io

urlscan. Io é um serviço gratuito para digitalizar e analisar sites. Quando uma URL é submetida a urlscan.io, um processo automatizado navegará até a URL como um usuário regular e registrará a atividade que essa navegação de página cria. Isso inclui os domínios e IPs contatados, os recursos (JavaScript, CSS, etc) solicitados a esses domínios, bem como informações adicionais sobre a própria página. urlscan.io tirará uma captura de tela da página, gravará o conteúdo DOM, variáveis globais JavaScript, cookies criados pela página e uma infinidade de outras observações. Se o site estiver mirando os usuários, uma das mais de 400 marcas rastreadas por urlscan.io, ele será destacado como potencialmente malicioso nos resultados da varredura.

urlscan.io em si é um serviço gratuito, mas também é oferecido produtos comerciais para usuários pesados e organizações que precisam de insights adicionais.

Missão

Nossa missão é permitir que qualquer pessoa analise sites desconhecidos e potencialmente maliciosos. Percebemos no início que, mesmo para desenvolvedores web endurecidos em batalha e pesquisadores de segurança, é uma experiência frustrante gravar interações de páginas e metadados adicionais de sites, na chance de encontrar a agulha no palheiro. Pior ainda, uma única observação muitas vezes não tem sentido sem o contexto necessário. Esse domínio é algo do qual os sites geralmente carregam JavaScript de terceiros? Algum outro site respeitável está falando com esse endereço IP estranho nas Ilhas Cayman?

Criamos urlscan.io no final de 2016 para resolver esses problemas. Nosso foco sempre foi dividir a grande quantidade de dados de uma navegação de página de site em pedaços digestíveis. Somos analistas em primeiro lugar, sempre nos esforçamos para entender e antecipar as informações que seriam úteis durante uma investigação e os atributos que permitem pivotar. Assim como você usaria uma caixa de areia de malware para analisar arquivos suspeitos, você pode usar urlscan.io para fazer a mesma coisa, mas com URLs.

Engenheiros fazem hidrogênio verde a partir do ar

A MANEIRA MAIS SUSTENTÁVEL de fazer combustível de hidrogênio é dividir a água usando eletricidade renovável — mas isso requer acesso à água doce. Agora, pesquisadores relataram uma maneira de fazer combustível de hidrogênio de apenas umidade no ar.

Seu eletrólito extrai umidade do ar e a divide através de eletrólise renovada para criar hidrogênio. É o primeiro eletrolílico a produzir hidrogênio de alta pureza (99%) do ar que tem apenas 4% de umidade, diz Gang Kevin Li, professor de engenharia química na Universidade de Melbourne, na Austrália. O sucesso poderia abrir a possibilidade de produzir hidrogênio em regiões semiáridas, que também têm alguns dos maiores potenciais solares e de energia eólica.

Testes do protótipo de eletrólito de ar direto ao longo de 12 dias consecutivos mostraram que ele poderia produzir quase 750 litros de hidrogênio por dia, em média por metro quadrado de eletrólito. Li e seus colegas relataram os detalhes na revista Nature Communications.

O hidrogênio oferece a perspectiva de energia limpa e livre de emissões, e a economia de hidrogênio ganhou força nos últimos anos devido ao aumento do financiamento e melhorias na tecnologia. Mas a maior parte do hidrogênio ao redor do mundo hoje ainda é produzido a partir de gás natural ou carvão. O hidrogênio verde da eletrólise ainda é uma tecnologia nascente devido à necessidade de eletrólitos em grande escala.

Muitas equipes estão trabalhando em formas alternativas de fazer hidrogênio verde. Dispositivos de divisão de água movidos a energia solar, por exemplo, usam fotocatalíssts, que absorvem a luz solar para dividir água em hidrogênio e oxigênio, mas têm uma baixa eficiência solar-hidrogênio de apenas 1%. Para superar a necessidade de água doce, houve tentativas de produzir hidrogênio a partir de águas salinas e salgadas, mas os dispositivos têm que lidar com a contaminação e o cloro como subproduto.

Li e seus colegas decidiram usar a umidade no ar como fonte de água. Globalmente, há cerca de 13 trilhões de toneladas de água no ar a qualquer momento, dizem eles, e mesmo ambientes secos, como a extensa região do Sahel na África, têm uma umidade relativa média de 20%.

Para aproveitar essa umidade, os pesquisadores encharcaram uma esponja ou espuma com um líquido de eletrólito absorvente de água, e sanduíche-o entre dois eletrodos. “A água extraída pelo eletrólito é espontaneamente transportada para os eletrodos por força capilar e eletrolisada em hidrogênio no cátodo e oxigênio no ânodo”, explica Li. “Todo o processo é passivo, e não há partes móveis ou mecânicas envolvidas.”

Os pesquisadores demonstraram o uso de painéis solares ou uma pequena turbina eólica para alimentar o módulo. Eles testaram o protótipo dentro e fora no verão quente e seco de Melbourne. A eficiência solar-hidrogênio do dispositivo é de mais de 15%, diz Li.

https://cdn.jwplayer.com/previews/8q1bDOsY

Para os testes ao ar livre, eles conectaram cinco eletrólitos em paralelo, que, alimentados pelo sol, produziam 745 L de hidrogênio por metro quadrado por dia, o suficiente para aquecer uma casa. Eles também deixaram o protótipo funcionar sozinho por oito meses para mostrar durabilidade.

O protótipo tem apenas alguns centímetros quadrados na área agora. Mas no próximo ano, com financiamento de investidores, a equipe planeja fazer eletrolílicos maiores, com áreas de eletrodos de 10 metros quadrados, diz Li. Eles também estão melhorando a receita de eletrólitos para aumentar ainda mais a eficiência energética e a produção, diz ele.

Tanto a eficiência quanto a saída não devem ser afetadas quando o dispositivo for dimensionado. Mas o principal desafio que a equipe enfrenta é encontrar os materiais certos para o eletrólito, diz ele. “Como podemos torná-lo mais barato e melhor?”

Fonte: https://spectrum.ieee.org/engineers-make-green-hydrogen-from-air

ACS ACR122U

Dispositivo de leitura NFC e cartão RFID com frequência de 13,56 MHz.

Compatível com chip mifare

  • Classic 1k/4k
  • Ultralight
  • Ultralight EV1
  • Ultralight C
  • Desfire EV1

Compatível com chip Degan:

NTag 203, 210, 212, 213, 215, 216

Características

  • USB 2.0 Full Speed Interface
  • CCID Compliance
  • Smart Card Reader:
    • Read/write speed up to 424 kbps
    • Built-in antenna for contactless tag access, with card reading distance of up to 50 mm (depending on tag type)
    • Supports ISO 14443 Type A and B cards, MIFARE, FeliCa, and all 4 types of NFC (ISO/IEC 18092) tags
    • Built-in anti-collision feature (only 1 tag is accessed at any time)
  • Application Programming Interface:
    • Supports PC/SC
    • Supports CT-API (through wrapper on top of PC/SC)
  • Peripherals:
    • User-controllable bi-color LED
    • User-controllable buzzer
  • Supports Android™ OS 3.1 and above

Especificações técnicas

ParameterKeterangan
Physical Characteristics
Dimensions (mm)98.0 mm (L) x 65.0 mm (W) x 12.8 mm (H)(H)
Weight (g)70 g
USB Interface
ProtocolUSB CCID
Power SourceFrom USB port
SpeedUSB Full Speed (12 Mbps)
Cable Length1.0 m, Fixed
Built-in Peripherals
LED1 bi-color: Red and Green
BuzzerMonotone
Contact Smart Card Interface
StandardISO/IEC 18092 NFC, ISO 14443 Type A & B, MIFARE®, FeliCa
ProtocolISO 14443-4 Compliant Card, T=CL
MIFARE® Classic Card, T=CL
ISO18092, NFC Tags
FeliCa
Certifications/Compliance
Certifications/ComplianceEN 60950/IEC 60950
ISO 18092
ISO 14443
USB Full Speed
PC/SC
CCID
VCCI (Japan)
KC (Korea)
Microsoft® WHQL
CE
FCC
RoHS 2
REACH
Device Driver Operating System Support
Device Driver Operating System SupportWindows®
Linux®
MAC OS®
Solaris
Android™

SDK

Download herehttps://cloud.electron.id/s/F5SzkebenQBj3fw

Fonte: https://www.electron.id/product/acs-acr122u/

https://www.wakdev.com/en/apps/nfc-tools-pc-mac.html

Bingo com Python

Se pensar primeiro é fundamental em programação, também sabemos que conhecer bem a linguagem em que vamos expressar a solução é igualmente importante. Numa das fichas recente de exercícios vinha a seguinte questão:

Os cartões para jogar BINGO têm 5 colunas, cada uma com 5 números. As colunas têm associado as letras B, para a primeira coluna, I para a segunda, N para a terceira, G para a quarta e O para a quinta. Nas primeira colunas os números podem ser entre 1 e 15, na segunda entre 16 e 30, na terceira entre 31 e 45, na quarta entre 46 e 60 e na quinta entre 61 e 75. Escreva um programa que permita gerar e guardar de modo apropriado um cartão de bingo. Escreva um segundo programa que permita visualizar um cartão de bingo. Vejamos a solução para a primeira questão:

import random
 def bingo():
    nome = 'BINGO'
    cartao = dict()
    for i,letra in enumerate(nome):
        lista = list(range(i*15 +1, i*15 + 16))
        numeros = random.sample(lista,5)
        numeros.sort()
        cartao[letra] = numeros
    return cartao

O que tem de especial a solução? Desde logo usamos um dicionário para guardar a representação de um cartão. A chave é uma das letras de ‘BINGO’ e o valor são os 5 números. Usamos o método sample do módulo random para gerar os 5 números. Este método garante que os números serão todos diferentes. Finalmente usamos o método enumerate para poder ter uma forma simples de gerar os diferentes intervalos dos números.

A segunda questão era a da visualização do cartão. Aqui vai a solução:

def mostra_bingo(cartao):
    numeros_colunas = list(cartao.values())
    numeros_linhas = list(zip(*numeros_colunas))
    print('%2s\t%2s\t%2s\t%2s\t%2s\t'% tuple('BINGO'))
print('_' * 35)
    for linha in numeros_linhas:
        print('%2s\t%s\t%s\t%s\t%s\t'% linha)

Qual era a dificuldade deste problema? O facto de termos de passar de listas de números associados a letras para uma visualização por colunas. Esta é uma situação onde a operação zip mostra todo o seu esplendor. O facto de fazermos:

numeros_linhas = list(zip(*numeros_colunas))

tem a seguinte explicação. Primeiro, zip é um iterador pelo que para obtermos todos os seus elementos de uma vez temos que usar list sobre o resultado de zip. Depois, o asterisco (*) resulta de zip se aplicar a uma sequência de argumentos e numeros_colunas ter apenas um. numeros_colunas é uma lista em que cada elemento é uma lista de 5 listas cada uma com 5 números. Com o asterisco passamos a ter as 5 listas como argumentos do zip.

B  I  N  G  O
_______________
2 17 33 49 61
5 18 34 50 62
8 26 35 56 66
11 27 37 57 72
13 28 40 60 74

Fonte: https://programacaocompython.blogspot.com/2017/12/bingo.html

Chocadeira com Arduino

Abaixo um projeto interessante para a confecção de uma chocadeira controlada por meio do arduino. O conteúdo e a fonte de busca estão citadas ao centro da postagem.

/*
   Nome do Projeto:  Chocadeira
   Nome do Aquivo:   Choca_DS18b20_V02.ino
   Dependencias:     OneWire.h          Biblioteca de 1Wire
                     LiquidCrystal.h    Biblioteca de LCD
   MCU:              ATmega
   Board:            Arduino Uno/Mega/Mini
   Compilador        N/A
   IDE:              Arduino IDE 1.0.6
   Hardware:         Arduino UNO/MEGA/Mini
   Escrito por:      Rui Viana
   Data:             27/06/2015
   Uso:              Didático
   Desenhos          Chocadeira.jpg
   Copyright @       N/A
   
   Este programa é software livre;
   E é distribuído na esperança que possa ser útil, mas SEM QUALQUER GARANTIA; mesmo sem a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM.
   A parte do tratamento de 1Wire deste código foi copiada do exemplo da biblioteca OneWire.h.
   
   REVISIONS: (latest entry first)  
   2015-06-26   -   Choca_DS18b20_V02.ino - First release
   2015-06-28   -   Choca_DS18b20_V02.ino - Adicao de LDC   
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Descricão:  
   
   Este código utiliza a biblioteca OneWire.h para ler sensores de temperatura.
   E a biblioteca LiquidCrystal.h para mostrar a temperatura no diplsy LCD
   Converte o valor lido para oC, e mostra em um diplay LCD.
   Compara o valor da leitura com o valor programado, e define se liga ou desliga o rele que alimenta as resistencias de aquecimento.
   Tem dois botoes, um para aumentar e outro para diminuir a programação da temperatura 
*/
//************  Variaveis e constantes  ************ 
  #include <OneWire.h>                          // Biblioteca de 1Wire
  #include <LiquidCrystal.h>                    // Inclui a biblioteca do LCD
  OneWire  ds(5);                               // Seleciona a porta do 1WirwBus on pin 10
  LiquidCrystal lcd( 7,  8,  9, 10, 11, 12);    // Pinos do LCD
  const int Rele = 13;                          // Pino de Saída
  const int Up = 2;                             // Pino do switch  de Up   
  const int Dn = 3;                             // Pino do switch  de Dn     
  float TempProg = 27;                          // Variavel com temperatura programada  
  long debouncing_time = 15;                    // Debouncing Time in Milliseconds
  volatile unsigned long last_micros;           // Variavel para deboucing
//***********************  Setup *******************  
  void setup()
  {
    lcd.begin(16, 2);                            // Inicia o LCD com dimensões 16x2(Colunas x Linhas)
    pinMode(Rele, OUTPUT);                       // Port como saída
    digitalWrite(Rele, LOW);                     // Desliga Rele   
    pinMode(Up, INPUT_PULLUP);                   // Port do switch Up como entrada e Pull-Up  
    pinMode(Dn, INPUT_PULLUP);                   // Port do switch Dn como entrada e Pull-Up         
    delay(1000);                                 // Aguarda 1 seg antes de acessar as informações do sensor
    attachInterrupt(1, PressUp, RISING);         // Interrupt de botão ao ficar HIGH o pino 3
    attachInterrupt(0, PressDn, RISING);         // Interrupt de botão ao ficar HIGH o pino 2

    lcd.clear();                                 // Limpa do buffer do LCD
    lcd.setCursor(3, 0);                         // Seleciona posição 0 da linha 0
    lcd.print("Chocadeira");                     // Imprime texto
    lcd.setCursor(11, 1);                        // Seleciona posição 0 da linha 0
    lcd.print(TempProg);                         // Imprime variavel
  }
//***************  Rotina PressUp ***************** 
  void PressUp()                                 // Rotina chamada pela interrupcao do botão de aumento
  {
    if((long)(micros() - last_micros) >= debouncing_time * 1000)   // Tempo de debouncing
    {
      TempProg = TempProg + 0.1;                  // Incrementa temperatura em 0,01 oC
      lcd.setCursor(11, 1);                       // Seleciona posição 0 da linha 0
      lcd.print(TempProg);                        // Imprime variavel
      last_micros = micros();                     // Tempo de debouncing 
    }
  }
//***************  Rotina PressDn ***************** 
  void PressDn()                                 // Rotina chamada pela interrupcao do botão de reducao 
  {
    if((long)(micros() - last_micros) >= debouncing_time * 1000)   // Tempo de debouncing 
    {
      TempProg = TempProg - 0.1;                  // Decrementa temperatura em 0,01 oC
      lcd.setCursor(11, 1);                       // Seleciona posição 0 da linha 0
      lcd.print(TempProg);                        // Imprime variavel      
      last_micros = micros();                     // Tempo de debouncing 
    }
  }
//***********************  Loop ******************** 
  void loop()
  {  
    byte i;                                    // Variavel de uso geral
    byte present = 0;                          // Variavel para present bit do 1Wire
    byte type_s;                               // Variavel para selecionar o tipo de Sensor
    byte data[12];                             // Matriz para guardar os dados lidos do sensor
    byte addr[8];                              // Matriz para guardar endereço lidos do sensor
    float celsius;                             // Variavel para guardar o valor das temperutras  
    if ( !ds.search(addr))                     // Search for the next device.
    {
      ds.reset_search();                       // Begin a new search.
      delay(250);
      return;
    }
    if (OneWire::crc8(addr, 7) != addr[7])     // Verifica o CRC
    {
      return;
    }
    switch (addr[0])                           // Le o byte 0 da ROM
    {
      case 0x10:                               // Se for 0x10
        type_s = 1;                            // Set tipo = 1
        break;
      case 0x28:                               // Se for 0x28
        type_s = 0;                            // Set tipo = 0
        break;
      default:
        return;
    }
    ds.reset();                                // Reset the 1-wire bus.
    ds.select(addr);                           // Select a device based on its address.
    ds.write(0x44,1);                          // start conversion, with parasite power on at the end
    delay(1000);                               // maybe 750ms is enough, maybe not
    present = ds.reset();                      // Reset the 1-wire bus. e agurada o Present Pulse
    ds.select(addr);                           // Select a device based on its address.    
    ds.write(0xBE);                            // Read Scratchpad
   
    for ( i = 0; i < 9; i++)                   // le os 8 bytes de dados
    {           
      data[i] = ds.read();                     // Read a byte
    }
    unsigned int raw = (data[1] << 8) | data[0]; // Função raw  Shift Data[1] 8 bits
                                               //   e faz or com data[0]
    if (type_s) 
    {
      raw = raw << 3;                          // 9 bit resolution default
      if (data[7] == 0x10) 
      {
        raw = (raw & 0xFFF0) + 12 - data[6];   // count remain gives full 12 bit resolution
      }
    }
    else 
    {
      byte cfg = (data[4] & 0x60);
      if (cfg == 0x00) raw = raw << 3;        // 9 bit resolution, 93.75 ms
      else if (cfg == 0x20) raw = raw << 2;   // 10 bit res, 187.5 ms
      else if (cfg == 0x40) raw = raw << 1;   // 11 bit res, 375 ms
      // default is 12 bit resolution, 750 ms conversion time
    }
    celsius = (float)raw / 16.0;
    if (celsius >= TempProg)
     digitalWrite(Rele, LOW);                // Desliga Rele como entrada e Pull-Up  
    else
      digitalWrite(Rele, HIGH);                // Liga Rele  como entrada e Pull-Up   
    lcd.setCursor(0, 1);                     // Seleciona posição 0 da linha 0                        
    lcd.print(celsius);                      // Imprime texto
    lcd.setCursor(6, 1);                     // Seleciona posição 0 da linha 0                        
    if (digitalRead(Rele) == 1)
      lcd.print("Lig ");                       // Imprime texto
    else
      lcd.print("Desl");                       // Imprime texto
    //Não diminuir o valor abaixo. O ideal é a leitura a cada 2 segundos
    delay(2000);
  }

Fontes de busca:
http://pastebin.com/y2gUEgRk
http://labdegaragem.com/forum/topics/chocadeira?id=6223006%3ATopic%3A453089&page=1#comments
https://pastebin.com/u/RuiViana