U-BLOX NINA W106 SENDO PROGRAMADO .NET nanoFramework - WIFI II
Testado no VISUAL STUDIO 2015 e 2019
O objetivo deste BLOG é demonstrar como é possível utilizar o .NET nanoFramework para programar o módulo U-BLOX NINA W106. Foi utilizado o EVK-NINA-W1 para o teste e exemplo consiste em acessar um access point e ao obter o IP, fazer então fazer acesso ao servidor da universidade e exibir conteúdo que se encontra em:
WIFI
A rede é uma parte essencial do nosso trabalho e vida. Quase todas casas está conectadas a rede que tenha Internet e a maioria das empresas pode não funcionar sem uma rede interna (LAN ou WIFI) que é conectado com uma rede externa. Todas as redes tem uma forma de comunicação, eles todos usam o protocolo TCP/IP. Há atualmente vários protocolos que manuseiam diferentes atividades na rede, como DNS, DHCP, IP, ICMP, TCP, UDP, PPP e muito mais.
NETMF suporta redes TCP/IP através dos sockets padrões do .NET. Um socket é uma conexão virtual entre 2 dispositivos em uma rede.
"Ao contrário do Arduino (por exemplo) você pode fazer debug a sério do código que está executando. Sem necessitar de ligações ou hardware complexo com o JTAG no caso de programação C pura."
.NET nanoFramework é uma plataforma livre e de código aberto que permite a escrita de aplicativos de código gerenciados para dispositivos incorporados restritos. É adequado para muitos tipos de projetos, incluindo sensores de IoT, wearables, prova acadêmica de conceito, robótica, criações de hobistas/fabricantes ou até mesmo equipamentos industriais complexos. Isso torna o desenvolvimento dessas plataformas mais fácil, rápido e menos caro, dando aos desenvolvedores incorporados acesso a tecnologias e ferramentas modernas usadas pelos desenvolvedores de aplicativos desktop.
Os desenvolvedores podem aproveitar o poderoso e familiar Microsoft Visual Studio IDE e seu conhecimento .NET C# para escrever rapidamente código sem ter que se preocupar com os meandros de hardware de baixo nível de um microcontrolador. Os desenvolvedores do Desktop .NET se sentirão "em casa" e poderão usar suas habilidades no desenvolvimento de sistemas embarcados, ampliando o pool de desenvolvedores embarcados qualificados.
Ele inclui uma versão reduzida do CLR (Common Language Runtime, tempo de execução da linguagem comum .NET) e possui um subconjunto das bibliotecas de classe base .NET, juntamente com as APIs mais comuns incluídas na Universal Windows Platform (UWP) permitindo o reaproveitamento de códigos de aplicativos de desktop, aplicativos IoT Core, milhares de exemplos de código e projetos de código aberto.
Usando o Microsoft Visual Studio, um desenvolvedor pode implantar e depurar o código diretamente em hardware real.
O projeto conta com o apoio da Fundação .NET.
Roteiro baseado
Instalando nanoFirmwareFlasher para copiar bootloader
GitHub - nanoframework/nanoFirmwareFlasher: 🛠 nano firmware flasher (nanoFramework toolbox)
É uma ferramenta global .NET Core CLI que permite atualizar um alvo nanoFramework com
nanoBooter, nanoCLR, aplicativo gerenciado ou arquivos de backup. Faz parte da caixa de
ferramentas nanoFramework, juntamente com outras várias ferramentas que são necessárias
no desenvolvimento, uso ou gerenciamento de repositório do nanoFramework. Um vez instalado é
necessário atualizar o UBLOX NINA W106.
Necessita .NET 5.0 Desktop Runtime (v5.0.3) e Download .NET Core 3.1 Runtime
Gravação do Bootloader
Sinal que está Rodando!
Baixe e instale o Visual Studio Community 2017/2019
Habilite o Workload do Desktop com .NET
Workload .NET
Instalando Visual Studio 2017
Habilite a Extension do .NET nanoFramework e instale
Para o 2017 aparecerá VS2017
Crie um Projeto Blank com .NET nanoFramework (Blank Application nanoFramework)
Abra um repositório GIT para exemplos .NET
https://github.com/nanoframework/Samples.git
Vários exemplos em .NET nanoFramework
Abrindo o exemplo Blinky
Altere o código para
//
// Copyright (c) .NET Foundation and Contributors
// See LICENSE file in the project root for full license information.
//
using nanoFramework.Networking;
using System;
using System.Diagnostics;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
namespace SecureClient
{
public class Program
{
public static void Main()
{
NetworkHelpers.SetupAndConnectNetwork(false);
Debug.WriteLine("Waiting for network up and IP address...");
NetworkHelpers.IpAddressAvailable.WaitOne();
// get host entry for How's my SSL test site
IPHostEntry hostEntry = Dns.GetHostEntry("www.inf.furb.br");
// need an IPEndPoint from that one above
IPEndPoint ep = new IPEndPoint(hostEntry.AddressList[0], 80);
Debug.WriteLine("Opening socket...");
using (Socket mySocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
try
{
Debug.WriteLine("Connecting...");
// connect socket
mySocket.Connect(ep);
byte[] buffer = Encoding.UTF8.GetBytes("GET /~maw/arduino/http.txt HTTP/1.0\r\n\r\n");
mySocket.Send(buffer);
Debug.WriteLine($"Wrote {buffer.Length} bytes");
// setup buffer to read data from socket
buffer = new byte[1024];
// trying to read from socket
int bytes = mySocket.Receive(buffer);
Debug.WriteLine($"Read {bytes} bytes");
if (bytes > 0)
{
// we have data!
// output as string
Debug.WriteLine(new String(Encoding.UTF8.GetChars(buffer)));
}
}
catch (SocketException ex)
{
Debug.WriteLine($"** Socket exception occurred: {ex.Message} error code {ex.ErrorCode}!**");
}
catch (Exception ex)
{
Debug.WriteLine($"** Exception occurred: {ex.Message}!**");
}
finally
{
Debug.WriteLine("Closing socket");
mySocket.Close();
}
}
Thread.Sleep(Timeout.Infinite);
}
}
}
Configurando SSID e PASSWORD
Atualize versões dos pacotes
Compile o código
Encontrando o U-BLOX NINA W106 (Device Explorer)Fazendo ping se está ativo
Transferindo o programa (Deploy)
Pacotes .NET nanoFramework
LINKS
API docs: https://docs.nanoframework.net/api/Windows.Devices.Adc.html
Browse our samples repository: https://github.com/nanoframework/samples
Check our documentation online: https://docs.nanoframework.net/
Join our lively Discord community: https://discord.gg/gCyBu8T
Report issues: https://github.com/nanoframework/Home/issues
Follow us on Twitter: https://twitter.com/nanoframework
Follow our YouTube channel: https://www.youtube.com/c/nanoFramework
Questões: suporte@smartcore.com.br
Agradecimentos:
JOSÉ SIMÕES
Husband, father, developer, maker, CEO at @Eclo, founder of @nanoframework. MVP. Developer: .NET C# , C/C++, IoT, Azure, Lego
Sobre a SMARTCORE
A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br
Nenhum comentário:
Postar um comentário