Symbianize Forum

Most of our features and services are available only to members, so we encourage you to login or register a new account. Registration is free, fast and simple. You only need to provide a valid email. Being a member you'll gain access to all member forums and features, post a message to ask question or provide answer, and share or find resources related to mobile phones, tablets, computers, game consoles, and multimedia.

All that and more, so what are you waiting for, click the register button and join us now! Ito ang website na ginawa ng pinoy para sa pinoy!

arduino mega 2560 piso wifi code on demand

open po ba mga suggestion nmin sir hehe pra mas gumanda pa tong ginwa mo po sir.

post lng ng post, kung di man ako makagawa ng suggestion nyo, meron dyan sa tabi tabi marunong mag code na pedeng mag contribute


tanong ko lng sa mga dumadaan sa thread, meron na ba sa inyo gumawa? I-post nyo naman.
 
Last edited:
wala pa ata siguro mga naghihintay pa nang order nang kit
 
sige sir salamat pm nalang ako sayo kung dumating na order kong e.shield... pwdeng pwdi po ang UNO yan gamit ko ... para sa mga baguhan gaya ko dl nyo to sa library ng arduino flasher tnx sayo sir TS....

https://github.com/pmjdebruijn/Arduino-Entropy-Library

https://github.com/alejho/Arduino-Telnet-Client

https://github.com/fdebra…/Arduino-LiquidCrystal-I2C-library


boss pa update ng pangatlong link dead link na po kasi

--- UPDATE

ok na po kay TS ako nka kuha ng last link thanks sa pag tulong TS!!!
 
Last edited:
nag order plng ako ng kit sir . patulong ako pag may error sir. thanks
 
updated code kung may interested pa ver1
#include <SPI.h>
#include <Wire.h>
#include <Entropy.h>
#include <Ethernet.h>
#include <TelnetClient.h>
#include <LiquidCrystal_I2C.h>
#define randomSeed(s) srandom(s)
int mins = 0;
int hours = 0;
int days = 0;
int newmins = 0;
int newhours = 0;
int buttonPress = 0;
const int ledpin = 5;
const int coinpin = 2;
const int buttonpin = 3;
const int disablepin = 4;
volatile float coins = 0;
unsigned long startMillis = 0;
unsigned long currentMillis = 0;
String script;
uint32_t seed_value;
char letters[36] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
LiquidCrystal_I2C lcd(0x27, 20, 4);
EthernetClient client;
telnetClient tc(client);
byte clientMAC[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress clientIp (192, 168, 88, 2);
//put here your router's ip address
IPAddress mikrotikRouterIp (192, 168, 88, 1);
void setup() {
pinMode(buttonpin, INPUT);
pinMode(ledpin, OUTPUT);
pinMode(disablepin, OUTPUT);
lcd.begin();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("initializing....");
lcd.setCursor(0, 2);
lcd.print(" by asantos1");
delay(3000);
digitalWrite(disablepin, HIGH);
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo and Due
}
Entropy.initialize();
attachInterrupt(digitalPinToInterrupt(coinpin), coinInterrupt, RISING);
pinMode(buttonpin, INPUT);
pinMode(ledpin, OUTPUT);
pinMode(disablepin, OUTPUT);
}
void coinInterrupt() {
coins ++;
startMillis = millis(); //initial start time
}
void loop() {
if (coins < 1) {
//Serial.println("Please Insert Coin");
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" Insert Coin ");
lcd.setCursor(0, 2);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(" ");
}
currentMillis = millis(); //get the current time
if ((coins > 0) && (currentMillis - startMillis >= 100)) {
if (coins < 5) {
mins = coins * 10; // 15min/peso
}
if (coins >= 5 && coins < 10) {
mins = coins * 20; // 20min/peso
}
if (coins >= 10 && coins < 15) {
mins = coins * 30; // 30min/peso
}
if (coins >= 15) {
mins = coins * 45; // 45min/peso
}
hours = floor(mins / 60);
days = floor(hours / 24);
newhours = hours - (days * 24);
newmins = mins - (hours * 60);
Serial.println(coins);
Serial.println(days);
Serial.println(newhours);
Serial.println(newmins);
lcd.setCursor(0, 0);
lcd.print(" Credit: ");
lcd.print(coins, 0);
lcd.print(".00 ");
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.print(days);
lcd.print(" day ");
lcd.print(newhours);
lcd.print(" hr ");
lcd.print(newmins);
lcd.print(" min");
}
currentMillis = millis(); //get the current time
if ((coins > 0) && (currentMillis - startMillis >= 10000)) {
lcd.setCursor(0, 2);
lcd.print(" Press Button to");
lcd.setCursor(0, 3);
lcd.print(" Generate Code");
}
currentMillis = millis(); //get the current time
if ((coins > 0) && (currentMillis - startMillis >= 12000)) {
digitalWrite(disablepin, LOW);
digitalWrite(ledpin, HIGH);
while (digitalRead(buttonpin) == LOW) {
//do nothing
}
digitalWrite(ledpin, LOW);
seed_value = Entropy.random();
//Serial.println(seed_value);
randomSeed(seed_value);
char c[2] = {letters[random(36)]};
char o[2] = {letters[random(36)]};
char d[2] = {letters[random(36)]};
char e[2] = {letters[random(36)]};
lcd.setCursor(0, 0);
lcd.print(" CODE GENERATED ");
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 2);
lcd.print(" ");
lcd.print(c);
lcd.print(" ");
lcd.print(o);
lcd.print(" ");
lcd.print(d);
lcd.print(" ");
lcd.print(e);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(" ");
script = "/ip hotspot user add name=";
script += c;
script += o;
script += d;
script += e;
script += " limit-uptime=";
script += mins;
script += " profile=hotspot";
int script_len = script.length() + 1;
char mscript[script_len];
script.toCharArray(mscript, script_len);
Ethernet.begin (clientMAC);
//want to use dhcp?
if (!Ethernet.begin (clientMAC)) {
Serial.println("\r\nDHCP error");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DCHP error");
while (1);
}
tc.setPromptChar('>');
//PUT HERE YOUR USERNAME/PASSWORD
if (tc.login(mikrotikRouterIp, "admin", "asantos1")) {
delay(1000);
tc.sendCommand(mscript);
delay(5000);
tc.disconnect();
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.print(c);
lcd.print(" ");
lcd.print(o);
lcd.print(" ");
lcd.print(d);
lcd.print(" ");
lcd.print(e);
lcd.print(" ");
lcd.setCursor(0, 2);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(" THANK YOU ");
delay(5000);
coins = 0;
digitalWrite(disablepin, HIGH);
}
}
}
 
updated code kung may interested pa ver1
#include <SPI.h>
#include <Wire.h>
#include <Entropy.h>
#include <Ethernet.h>
#include <TelnetClient.h>
#include <LiquidCrystal_I2C.h>
#define randomSeed(s) srandom(s)
int mins = 0;
int hours = 0;
int days = 0;
int newmins = 0;
int newhours = 0;
int buttonPress = 0;
const int ledpin = 5;
const int coinpin = 2;
const int buttonpin = 3;
const int disablepin = 4;
volatile float coins = 0;
unsigned long startMillis = 0;
unsigned long currentMillis = 0;
String script;
uint32_t seed_value;
char letters[36] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
LiquidCrystal_I2C lcd(0x27, 20, 4);
EthernetClient client;
telnetClient tc(client);
byte clientMAC[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress clientIp (192, 168, 88, 2);
//put here your router's ip address
IPAddress mikrotikRouterIp (192, 168, 88, 1);
void setup() {
pinMode(buttonpin, INPUT);
pinMode(ledpin, OUTPUT);
pinMode(disablepin, OUTPUT);
lcd.begin();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("initializing....");
lcd.setCursor(0, 2);
lcd.print(" by asantos1");
delay(3000);
digitalWrite(disablepin, HIGH);
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo and Due
}
Entropy.initialize();
attachInterrupt(digitalPinToInterrupt(coinpin), coinInterrupt, RISING);
pinMode(buttonpin, INPUT);
pinMode(ledpin, OUTPUT);
pinMode(disablepin, OUTPUT);
}
void coinInterrupt() {
coins ++;
startMillis = millis(); //initial start time
}
void loop() {
if (coins < 1) {
//Serial.println("Please Insert Coin");
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" Insert Coin ");
lcd.setCursor(0, 2);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(" ");
}
currentMillis = millis(); //get the current time
if ((coins > 0) && (currentMillis - startMillis >= 100)) {
if (coins < 5) {
mins = coins * 10; // 15min/peso
}
if (coins >= 5 && coins < 10) {
mins = coins * 20; // 20min/peso
}
if (coins >= 10 && coins < 15) {
mins = coins * 30; // 30min/peso
}
if (coins >= 15) {
mins = coins * 45; // 45min/peso
}
hours = floor(mins / 60);
days = floor(hours / 24);
newhours = hours - (days * 24);
newmins = mins - (hours * 60);
Serial.println(coins);
Serial.println(days);
Serial.println(newhours);
Serial.println(newmins);
lcd.setCursor(0, 0);
lcd.print(" Credit: ");
lcd.print(coins, 0);
lcd.print(".00 ");
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.print(days);
lcd.print(" day ");
lcd.print(newhours);
lcd.print(" hr ");
lcd.print(newmins);
lcd.print(" min");
}
currentMillis = millis(); //get the current time
if ((coins > 0) && (currentMillis - startMillis >= 10000)) {
lcd.setCursor(0, 2);
lcd.print(" Press Button to");
lcd.setCursor(0, 3);
lcd.print(" Generate Code");
}
currentMillis = millis(); //get the current time
if ((coins > 0) && (currentMillis - startMillis >= 12000)) {
digitalWrite(disablepin, LOW);
digitalWrite(ledpin, HIGH);
while (digitalRead(buttonpin) == LOW) {
//do nothing
}
digitalWrite(ledpin, LOW);
seed_value = Entropy.random();
//Serial.println(seed_value);
randomSeed(seed_value);
char c[2] = {letters[random(36)]};
char o[2] = {letters[random(36)]};
char d[2] = {letters[random(36)]};
char e[2] = {letters[random(36)]};
lcd.setCursor(0, 0);
lcd.print(" CODE GENERATED ");
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 2);
lcd.print(" ");
lcd.print(c);
lcd.print(" ");
lcd.print(o);
lcd.print(" ");
lcd.print(d);
lcd.print(" ");
lcd.print(e);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(" ");
script = "/ip hotspot user add name=";
script += c;
script += o;
script += d;
script += e;
script += " limit-uptime=";
script += mins;
script += " profile=hotspot";
int script_len = script.length() + 1;
char mscript[script_len];
script.toCharArray(mscript, script_len);
Ethernet.begin (clientMAC);
//want to use dhcp?
if (!Ethernet.begin (clientMAC)) {
Serial.println("\r\nDHCP error");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DCHP error");
while (1);
}
tc.setPromptChar('>');
//PUT HERE YOUR USERNAME/PASSWORD
if (tc.login(mikrotikRouterIp, "admin", "asantos1")) {
delay(1000);
tc.sendCommand(mscript);
delay(5000);
tc.disconnect();
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.print(c);
lcd.print(" ");
lcd.print(o);
lcd.print(" ");
lcd.print(d);
lcd.print(" ");
lcd.print(e);
lcd.print(" ");
lcd.setCursor(0, 2);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(" THANK YOU ");
delay(5000);
coins = 0;
digitalWrite(disablepin, HIGH);
}
}
}

ano po dito binago mo sir?
 
un pag send lng ng command and added profile=hotspot

master ask ko lang
medyo matagal mag generate ng code ?
kung titingnan sa logs ni MT .
ganun ba talaga ?

ganda ng code mo na to master ,
nag try na din ako na itemporary disconnect si MT tapos mag huhulog .
stack sya sa generate ng voucher
pero pag nag UP na si MT mag tutuloy na yung generate ng code nya
sobrang ganda ng setup nato . salamat ng marami .

nasubukan ko na din yung kay chelsea ,
walang delay sa telnet instant generate sana , kaya lang pag halimbawa nag reboot or nag power interrupt si MT
hindi na sya makakarecon kay MT
so need pa ireset si arduino/ E-shield para mag comunicate ulet sila ni MT

kaya mas nagustuhan ko tong code mo . salamat ng marami master
baka lang may ibang way pa para walang delay sa pag generate ng thru telnet ?
 
post lng ng post, kung di man ako makagawa ng suggestion nyo, meron dyan sa tabi tabi marunong mag code na pedeng mag contribute


tanong ko lng sa mga dumadaan sa thread, meron na ba sa inyo gumawa? I-post nyo naman.


Buo na yung sa akin Sir. salamat! isang problem nalang yung di ko ma solve.. yung sa telnet part na mag send si arduino ng codes. stuck na ako sa "Code Generated" then kapag tinitignan ko sa Serial monitor.. dun sa part ng telnet nag sesend sya ng username pag dating sa password eh timeout na..

PS. ibang shield gamit ko si.. enc28j60 hindi yung w5100 wiznet.. napapagana ko naman yung dhcp nya.. bali yung telnet nalang hindiView attachment 379508
 

Attachments

  • forsymb.png
    forsymb.png
    219.5 KB · Views: 55
Buo na yung sa akin Sir. salamat! isang problem nalang yung di ko ma solve.. yung sa telnet part na mag send si arduino ng codes. stuck na ako sa "Code Generated" then kapag tinitignan ko sa Serial monitor.. dun sa part ng telnet nag sesend sya ng username pag dating sa password eh timeout na..

PS. ibang shield gamit ko si.. enc28j60 hindi yung w5100 wiznet.. napapagana ko naman yung dhcp nya.. bali yung telnet nalang hindiView attachment 1306824

sa nabasa ko magkaiba ang processing ng enc28j60 sa w5100, check mo un link at google mo enc28j60 telnet for more info

https://github.com/alejho/Arduino-Telnet-Client/issues/1
 
Last edited:
sir pwede po ba yung mikrotik hap lite (rb941-2nd-tc) ang gagamitin??

saka pwede po pa diagram po ung ARDUINO MEGA 2560 saka ung ethernet shield??..

First timer lang po kasi ako sir ehh :) maraming salamat po .. sir :) :help:
 
sir pwede po ba yung mikrotik hap lite (rb941-2nd-tc) ang gagamitin??

saka pwede po pa diagram po ung ARDUINO MEGA 2560 saka ung ethernet shield??..

First timer lang po kasi ako sir ehh :) maraming salamat po .. sir :) :help:

pwede sa rb941, posted un wiring diagram, sa ethernet shield lng naman ang connections and the shield just goes on top of the arduino
 
master ask ko lang
medyo matagal mag generate ng code ?
kung titingnan sa logs ni MT .
ganun ba talaga ?

ganda ng code mo na to master ,
nag try na din ako na itemporary disconnect si MT tapos mag huhulog .
stack sya sa generate ng voucher
pero pag nag UP na si MT mag tutuloy na yung generate ng code nya
sobrang ganda ng setup nato . salamat ng marami .

nasubukan ko na din yung kay chelsea ,
walang delay sa telnet instant generate sana , kaya lang pag halimbawa nag reboot or nag power interrupt si MT
hindi na sya makakarecon kay MT
so need pa ireset si arduino/ E-shield para mag comunicate ulet sila ni MT

kaya mas nagustuhan ko tong code mo . salamat ng marami master
baka lang may ibang way pa para walang delay sa pag generate ng thru telnet ?

kaya meron delay sa pag generate kasi dun palang sya mag login sa telnet. then after mag release ng code mag disconnect ulit sa telnet.. kasama sa loop ng program kaya kahit disconnect mo kay MT eh kapag nag run yung program hahanapin nya muna yung connection sa telnet bago mag proceed..


unlike dun sa sinasabi mo na walang delay kasi nag login na yung arduino sa telnet 1st run ng program then bato nalang ng bato kay MT.. kaya kapag nag brown out need mo i-restart para mag run ulit sa void setup..

- - - Updated - - -

sa nabasa ko magkaiba ang processing ng enc28j60 sa w5100, check mo un link at google mo enc28j60 telnet for more info

https://github.com/alejho/Arduino-Telnet-Client/issues/1

Salamt Sir... yung e.shield ko pala meron prob.. hehe ngayon okay na.. naka deploy na yung akin sa labas ng bahay..
 
kaya meron delay sa pag generate kasi dun palang sya mag login sa telnet. then after mag release ng code mag disconnect ulit sa telnet.. kasama sa loop ng program kaya kahit disconnect mo kay MT eh kapag nag run yung program hahanapin nya muna yung connection sa telnet bago mag proceed..


unlike dun sa sinasabi mo na walang delay kasi nag login na yung arduino sa telnet 1st run ng program then bato nalang ng bato kay MT.. kaya kapag nag brown out need mo i-restart para mag run ulit sa void setup..

- - - Updated - - -



Salamt Sir... yung e.shield ko pala meron prob.. hehe ngayon okay na.. naka deploy na yung akin sa labas ng bahay..

good to hear working na un sayo
 
ty po sa code...

sa mga master jan
bka po meron mkkpag edit, Wemos version
or NodeMCU version...
ty :)
 
:):clap:

thank you sir sa code, ask ko lang sir paano po ba ang connection nito from huawei b310as to mickrotik rb750gr3 at sa internet shield hehe sensya na po baguhan lang po..

at yun wifi pala po sir saan naka connect,

salamat
 
Last edited:
Back
Top Bottom