Month: June 2021
LoRa – Raspberry Pi – Single Channel Gateway – Cheap!
https://www.hackster.io/ChrisSamuelson/lora-raspberry-pi-single-channel-gateway-cheap-d57d36
A DIY Low-cost LoRa gateway
Pavane (Fauré) – Wikipedia
The Pavane in F-sharp minor, Op. 50, is a short work by the French composer Gabriel Fauré written in 1887. It was originally a piano piece, but is better known in Fauré’s version for orchestra and optional chorus. It was first performed in Paris in 1888, becoming one of the composer’s most popular works.
Source: Pavane (Fauré) – Wikipedia
Gabriel Fauré – Wikipedia
Source: Gabriel Fauré – Wikipedia
iC880A-SPI – LoRaWAN Concentrator 868 MHz | LoRa Concentrators | Wireless Modules | IMST GmbH
Vistumbler – Open Source WiFi scanner and channel scanner for windows
César Franck
https://en.wikipedia.org/wiki/C%C3%A9sar_Franck
Counterpoint – Wikipedia
Arduino-Sample-Codes/Sim7600_MQTT.ino
/* | |
Developed by Nandu, Anandu, Unnikrishnan | |
Company: Elementz Engineers Guild Pvt Ltd | |
*/ | |
#include<SoftwareSerial.h> | |
SoftwareSerial mySerial(3,2); | |
#define sw 5 | |
#define led 7 | |
int flag = 1; | |
int flag1 = 0; | |
int state=0; | |
String Publish = “led/publish“; //Publish Topic | |
String Subscribe = “led/subscribe“; //Subscribe Topic | |
void setup() | |
{ | |
Serial.begin(9600); | |
mySerial.begin(9600); | |
pinMode(sw, INPUT_PULLUP); | |
pinMode(led, OUTPUT); | |
digitalWrite(led, LOW); | |
//AT Commands for setting up the client id and Server | |
//Need to be executed once — Open serial terminal doe seeing the debug messages | |
Serial.println(“Connecting To Server……..“); | |
mySerial.println(“ATE0“); | |
delay(2000); | |
mySerial.println(“AT+CMQTTSTART“); //Establishing MQTT Connection | |
delay(2000); | |
mySerial.println(“AT+CMQTTACCQ=0,\”elementz/123\”“); //Client ID – change this for each client as this need to be unique | |
delay(2000); | |
mySerial.println(“AT+CMQTTCONNECT=0,\”tcp://test.mosquitto.org:1883\”,90,1“); //MQTT Server Name for connecting this client | |
delay(2000); | |
//SUBSCRIBE MESSAGE | |
//Need to be executed once | |
mySerial.println(“AT+CMQTTSUBTOPIC=0,9,1“); //AT Command for Setting up the Subscribe Topic Name | |
delay(2000); | |
mySerial.println(Subscribe); //Topic Name | |
delay(2000); | |
mySerial.println(“AT+CMQTTSUB=0,4,1,1“); //Length of message | |
delay(2000); | |
mySerial.println(“HAII“); //message | |
delay(2000); | |
Serial.println(“Done“); | |
} | |
void loop() | |
{ | |
String a; | |
if(state==0) | |
{ | |
if(digitalRead(sw) == 0 && flag1 == 0) | |
{ | |
//PUBLISH MESSAGE | |
flag1 = 1; | |
digitalWrite(led, HIGH); | |
Serial.println(“Publishing Message: LED ON“); | |
mySerial.println(“AT+CMQTTTOPIC=0,8“); //AT Command for Setting up the Publish Topic Name | |
delay(1000); | |
mySerial.println(Publish); //Topic Name | |
delay(1000); | |
mySerial.println(“AT+CMQTTPAYLOAD=0,1“); //Payload length | |
delay(1000); | |
mySerial.println(“a“); //Payload message | |
delay(1000); | |
mySerial.println(“AT+CMQTTPUB=0,1,60“); //Acknowledgment | |
delay(1000); | |
} | |
else if(digitalRead(sw) == 0 && flag1 == 1) | |
{ | |
flag1 = 0; | |
digitalWrite(led, LOW); | |
Serial.println(“Publishing Message: LED OFF“); | |
mySerial.println(“AT+CMQTTTOPIC=0,8“); //AT Command for Setting up the Publish Topic Name | |
delay(1000); | |
mySerial.println(Publish); //Topic Name | |
delay(1000); | |
mySerial.println(“AT+CMQTTPAYLOAD=0,1“); //Payload length | |
delay(1000); | |
mySerial.println(“b“); //Payload message | |
delay(1000); | |
mySerial.println(“AT+CMQTTPUB=0,1,60“); //Acknowledgment | |
delay(1000); | |
} | |
} | |
if(state==1) | |
{ | |
if(digitalRead(sw) == 0 && flag1 == 0) | |
{ | |
//PUBLISH MESSAGE | |
flag1 = 1; | |
digitalWrite(led, LOW); | |
Serial.println(“Publishing Message: LED OFF“); | |
mySerial.println(“AT+CMQTTTOPIC=0,8“); //AT Command for Setting up the Publish Topic Name | |
delay(1000); | |
mySerial.println(Publish); //Topic Name | |
delay(1000); | |
mySerial.println(“AT+CMQTTPAYLOAD=0,1“); //Payload length | |
delay(1000); | |
mySerial.println(“b“); //Payload message | |
delay(1000); | |
mySerial.println(“AT+CMQTTPUB=0,1,60“); //Acknowledgment | |
delay(1000); | |
} | |
else if(digitalRead(sw) == 0 && flag1 == 1) | |
{ | |
flag1 = 0; | |
digitalWrite(led,HIGH); | |
Serial.println(“Publishing Message: LED ON“); | |
mySerial.println(“AT+CMQTTTOPIC=0,8“); //AT Command for Setting up the Publish Topic Name | |
delay(1000); | |
mySerial.println(Publish); //Topic Name | |
delay(1000); | |
mySerial.println(“AT+CMQTTPAYLOAD=0,1“); //Payload length | |
delay(1000); | |
mySerial.println(“a“); //Payload message | |
delay(1000); | |
mySerial.println(“AT+CMQTTPUB=0,1,60“); //Acknowledgment | |
delay(1000); | |
} | |
} | |
//Receiving MODEM Response | |
while(mySerial.available()>0) | |
{ | |
delay(10); | |
a = mySerial.readString(); | |
if(flag==0) | |
{ | |
//Serial.println(a); | |
flag = 1; | |
} | |
//Serial.println(b); | |
if(a.indexOf(“PAYLOAD“) != –1) | |
{ | |
flag = 0; | |
int new1 = a.indexOf(“PAYLOAD“); | |
String neww = a.substring(new1); | |
int new2 = neww.indexOf(‘\n‘); | |
String new3 = neww.substring(new2+1); | |
int new4 = new3.indexOf(‘\n‘); | |
String new5 = new3.substring(0,new4); | |
Serial.println(“Topic: led/subscribe“); | |
Serial.print(“Message is: “); | |
Serial.println(new5); | |
new5.remove(new5.length()-1); | |
if(new5 == “a“) | |
{ | |
state=1; | |
Serial.println(“LED ON“); | |
digitalWrite(led, HIGH); | |
} | |
else if(new5 == “b“) | |
{ | |
state=0; | |
flag1=0; | |
Serial.println(“LED OFF“); | |
digitalWrite(led, LOW); | |
} | |
} | |
} | |
} |
Source: Arduino-Sample-Codes/Sim7600_MQTT.ino at master · elementzonline/Arduino-Sample-Codes · GitHub
Using MQTT AT commands with SIM7600 and Arduino for GSM IoT …
Source: Using MQTT AT commands with SIM7600 and Arduino for GSM IoT …
Kranz, Gene – Failure Is Not an Option: Mission Control From Mercury to Apollo 13 and Beyond
https://www.amazon.com/Failure-Not-Option-Mission-Control/dp/1439148813