este es el repositorio. ! https://github.com/things-nyc/arduino-lmic
Conceptos Básicos
Qué aprenderás sobre Internet of Things
Espectro electromagnético y qué es radiofrecuencia
Clasificacion de radiofrecuencia
Regulación de la radiofrecuencia
¿Qué son las Telecomunicaciones?
Halfduplex y Fullduplex
Clasificación de transmisiones: Upstream y Downstream
Link budget
Con ciertas caracterÃsticas, ¿HabrÃa conexión en el sistema?
Alto data rate
Wi-fi
Bluetooth
Redes celulares
LPWANs
NB-IoT
Consideraciones para implementación de NB-IoT
LoRaWAN
Reto 2
¿Qué usarÃas para monitorear la posición GPS de un vehÃculo? y ¿Qué usarÃas para monitorear datos en campo?
Diseño
Arquitectura de nodos
Introducción a la práctica
Instalación de framework ESP32 e instalación de framework SAMD21
Qué es una interrupción
Práctica de WiFi
Prueba de señal Wi-fi
Protocolo HTTP desde un microcontrolador
Conectando sensores y actuadores al microcontrolador
Preparación de aplicación para recibir datos
Programación por eventos de un microcontrolador
Configuración de eventos del microcontrolador
Conexión de aplicación
Práctica con LoRa
¿Cuál es el stack de LoRaWAN?
Creando tu propio gateway
Ensamblado de gateway
Pon a andar tu gateway de LoRa
Creando tu Stack de LoRa
Conecta tu nodo a internet
Integrando datos a un dashboard
Terminando de implementar nuestro stack de LoRa
BugFixing nuestro stack de LoRa
Ensamblando el nodo de LoRa
Probando LoRa en nuestro Dashboard
Prácticas con tarjetas MKR
Cierre del curso
Cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Eduardo Contreras
Aportes 7
Preguntas 1
este es el repositorio. ! https://github.com/things-nyc/arduino-lmic
#include <lmic.h>
#include <hal/hal.h>
#inlcude < SPI.h >
#include < DHT.h >
#define DHTPIN 23
#define DHTYPE DHT22
DHT dht( DHTPIN, DHTYPE );
void os_getArtEui ( u1_t* buf ) { }
void os_getDevEui ( u1_t* buf ) { }
void os_getDevKey ( u1_t* buf ) { }
const lmic_pinmap lmic_pins = {
.nss = 18,
.rxtx = LMIC_UNUSED_PIN,
.rst = 14,
.dio = { 26 , 33 , 32 }
}
void onEvent ( ev_t ev ) {
switch ( ev ) {
case EV_TXCOMPLETE:
break;
default:
Serial.println ( "Evento desconocido" );
break;
}
void setup ( ) {
// put your setup main code here, to run repeatedly:
}
void loop ( ) {
// put your main code here, to run repeatedly:
}
void enviar_datos ( uint8_t *mydata, unint16_t len) {
LMIC_setTxData2 ( 1,mydata,len,0);
}
void getInfoAndSend ( ) {
float temp = dht.readTemperature ( );
}
Quien no tenga un TTGo sino un devkit32 y un modulo de radio rf95 o hpd13a puede usar el siguiente codigo, debe mapear los pines MISO, MOSI, SCK, y todas las tierras del radio deben estar aterrizadas
#include <CayenneLPP.h>
#include<lmic.h>
#include<hal/hal.h>
#include <SPI.h>
#include<DHT.h>
#define DHTPIN 22
#define DHTYPE DHT11
#define LED_BUILTIN 2
DHT dht(DHTPIN,DHTYPE);
CayenneLPP lpp(51);
uint32_t DEV_ADDR = 0x26021285;
uint8_t NET_SESS_KEY[16] = { 0xFE, 0x99, 0x29, 0x91, 0xD2, 0x60, 0x99, 0x63, 0xCA, 0xC0, 0x67, 0xAB, 0xA7, 0xFF, 0xBD, 0x52 };
uint8_t APP_SESS_KEY[16] = { 0xD9, 0x8C, 0xC1, 0xA2, 0x8D, 0x43, 0xBD, 0x07, 0x61, 0xAE, 0xCF, 0x8D, 0x76, 0xB4, 0x48, 0x5C };
void os_getArtEui(u1_t* buf){}
void os_getDevEui(u1_t* buf){}
void os_getDevKey(u1_t* buf){}
const unsigned TX_INTERVAL = 10;
unsigned long previousMillis = 0;
const lmic_pinmap lmic_pins = {
.nss =5,
.rxtx = LMIC_UNUSED_PIN,
.rst =14,
.dio = {26,33,32}
};
void onEvent(ev_t ev)
{
switch(ev)
{
case EV_TXCOMPLETE:
Serial.println("[LMIC] Radio Tx Complete");
digitalWrite(LED_BUILTIN, LOW);
break;
default:
Serial.println("Evento Desconocido");
break;
}
}
void enviar_datos(uint8_t *mydata, uint16_t len)
{
if(LMIC.opmode & OP_TXRXPEND)
{
Serial.println("[LMIC] OP_TXRXPEND, not sending");
}
else
{
LMIC_setTxData2(1,mydata,len,0);
}
}
void getInfoAndSend()
{
digitalWrite(LED_BUILTIN, HIGH);
// Leer sensores y transmitir
float temp = dht.readTemperature();
lpp.addTemperature(1,temp);
enviar_datos(lpp.getBuffer(),lpp.getSize() );
}
void setup()
{
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
Serial.print("Led ON");
Serial.println();
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
Serial.print("Led OFF");
Serial.println();
Serial.println("[INFO] Iniciando");
dht.begin();
os_init();
LMIC_reset();
LMIC_setSession(0x1,DEV_ADDR, NET_SESS_KEY, APP_SESS_KEY);
// put your setup code here, to run once:
for(int chan=0; chan<72;++chan)
{
LMIC_disableChannel(chan);
}
// Escojemos 904.3 Mhz, 915 Mhz en la banda de 902 - 928 Mhz
LMIC_enableChannel(10);
LMIC_setLinkCheckMode(0);
LMIC_setDrTxpow(DR_SF7,20);
previousMillis = millis();
}
void loop()
{
// put your main code here, to run repeatedly:
if( millis() > previousMillis + (TX_INTERVAL*1000) )
{
getInfoAndSend();
previousMillis=millis();
}
os_runloop_once();
}```
#include <lmic.h>
#include <hal/hal.h>
#inlcude < SPI.h >
#include < DHT.h >
#define DHTPIN 23
#define DHTYPE DHT22
DHT dht( DHTPIN, DHTYPE );
void os_getArtEui ( u1_t* buf ) { }
void os_getDevEui ( u1_t* buf ) { }
void os_getDevKey ( u1_t* buf ) { }
const lmic_pinmap lmic_pins = {
.nss = 18,
.rxtx = LMIC_UNUSED_PIN,
.rst = 14,
.dio = { 26 , 33 , 32 }
}
void onEvent ( ev_t ev ) {
switch ( ev ) {
case EV_TXCOMPLETE:
break;
default:
Serial.println ( "Evento desconocido" );
break;
}
void setup ( ) {
// put your setup main code here, to run repeatedly:
}
void loop ( ) {
// put your main code here, to run repeatedly:
}
void enviar_datos ( uint8_t *mydata, unint16_t len) {
LMIC_setTxData2 ( 1,mydata,len,0);
}
void getInfoAndSend ( ) {
float temp = dht.readTemperature ( );
}
Cuantos son el numero Maximo de dispositivos soportados en simultaneo? gracias
Lo recomendable es instalar los diferentes softwares en la carpeta /opt
Buenas tardes, tengo problemas al visualizr este video
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?