Created
July 9, 2019 15:11
-
-
Save witnessmenow/07f933505da8cf145605856b026f90b1 to your computer and use it in GitHub Desktop.
EchoBot with WiFiNINA
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
This example creates a client object that connects and transfers | |
data using always SSL. | |
It is compatible with the methods normally related to plain | |
connections, like client.connect(host, port). | |
Written by Arturo Guadalupi | |
last revision November 2015 | |
*/ | |
#include <SPI.h> | |
#include <WiFiNINA.h> | |
#include <UniversalTelegramBot.h> | |
// Initialize Wifi connection to the router | |
char ssid[] = "SSID"; // your network SSID (name) | |
char pass[] = "PASSWORD"; // your network key | |
// Initialize Telegram BOT | |
#define BOTtoken "TOKEN" // your Bot Token (Get from Botfather) | |
int status = WL_IDLE_STATUS; | |
// if you don't want to use DNS (and reduce your sketch size) | |
// use the numeric IP instead of the name for the server: | |
//IPAddress server(74,125,232,128); // numeric IP for Google (no DNS) | |
char server[] = "www.google.com"; // name address for Google (using DNS) | |
// Initialize the Ethernet client library | |
// with the IP address and port of the server | |
// that you want to connect to (port 80 is default for HTTP): | |
WiFiSSLClient client; | |
UniversalTelegramBot bot(BOTtoken, client); | |
int Bot_mtbs = 1000; //mean time between scan messages | |
long Bot_lasttime; //last time messages' scan has been done | |
void setup() { | |
//Initialize serial and wait for port to open: | |
Serial.begin(9600); | |
while (!Serial) { | |
; // wait for serial port to connect. Needed for native USB port only | |
} | |
// check for the WiFi module: | |
if (WiFi.status() == WL_NO_MODULE) { | |
Serial.println("Communication with WiFi module failed!"); | |
// don't continue | |
while (true); | |
} | |
String fv = WiFi.firmwareVersion(); | |
if (fv < "1.0.0") { | |
Serial.println("Please upgrade the firmware"); | |
} | |
// attempt to connect to WiFi network: | |
while (status != WL_CONNECTED) { | |
Serial.print("Attempting to connect to SSID: "); | |
Serial.println(ssid); | |
// Connect to WPA/WPA2 network. Change this line if using open or WEP network: | |
status = WiFi.begin(ssid, pass); | |
// wait 10 seconds for connection: | |
delay(10000); | |
} | |
Serial.println("Connected to wifi"); | |
printWiFiStatus(); | |
} | |
void loop() { | |
if (millis() > Bot_lasttime + Bot_mtbs) { | |
int numNewMessages = bot.getUpdates(bot.last_message_received + 1); | |
while (numNewMessages) { | |
Serial.println("got response"); | |
for (int i = 0; i < numNewMessages; i++) { | |
bot.sendMessage(bot.messages[i].chat_id, bot.messages[i].text, ""); | |
} | |
numNewMessages = bot.getUpdates(bot.last_message_received + 1); | |
} | |
Bot_lasttime = millis(); | |
} | |
} | |
void printWiFiStatus() { | |
// print the SSID of the network you're attached to: | |
Serial.print("SSID: "); | |
Serial.println(WiFi.SSID()); | |
// print your board's IP address: | |
IPAddress ip = WiFi.localIP(); | |
Serial.print("IP Address: "); | |
Serial.println(ip); | |
// print the received signal strength: | |
long rssi = WiFi.RSSI(); | |
Serial.print("signal strength (RSSI):"); | |
Serial.print(rssi); | |
Serial.println(" dBm"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment