Archive for October, 2010

A few days ago I talked about the new MTXTunnelv5.0. As I said then, this software (that can optionally be put together with MTX modems) can run a number of applications and not just a GPRS-RS232 gateway. Today I am going to talk about how to use MTXTunnelv5.0 to control relays via SMS (i.e. so you can turn on/off lights, boilers etc. via SMS).

As we want to switch relays, let’s assume that the MTXTunnel5.0 is being used with an MTXIND modem (from Matrix)  as it’s the only modem in the Matrix family that has relays. The MTXTunnelv5.0 isn’t really designed to switch relays, it does much more than that. The MTXTunnelv5.0 is able to run AT commands via SMS.

rele-sms-luces

What do you mean?

Well it means that we are going to see how to switch relays via SMS, but the same concept is used to switch a digital output, to read an analog/digital input, to read the device’s GSM coverage etc.

So you mean to say, all you have to do to switch a relay in a MTXIND GSM modem is send an SMS with an AT command?

That’s it. The MTXIND has 4 relays called RL1, RL2, RL3 and RL7. These relays are associated (respectively) to the GPIOs 1,2,3 and 7 in the module’s core i.e. in the internal TC65i module that runs the MTXIND.

For example, if we want to change something about the relay RL1 (associated with GPIO1), we would just have to send the AT command: AT^SSIO=0,0 to activate the relay and the AT^SSIO=0,1 command to deactivate the relay. When I say “we would just have to send the command”, I am referring to an SMS with the text: “AT^SSIO=0,0″ or “AT^SSIO=0,1″. This means that the MTXTunnelv5.0 configuration file would allow us to run the device’s relays via SMS, it could be like this:

MTX_PIN: 0000 - If the SIM card doesn’t have a PIN, leave 0000.

MTX_model: MTX MTX65IND - The model chosen is the MTX65IND due to relays

MTX_mode: none- We do not need GPRS-serial tunnels

SMS_allPhones: off – We only want authorized phones to send AT commands

SMS_validPhone1: 666 123 456 - Authorized phone # 1

SMS_ATEnabled: on - AT commands are accepted by SMS

Woah, that’s very complicated. I’m interested in this feature for some of my upcoming projects, but I can’t type an SMS with “AT^SSIO=0,0″, “AT^SSIO=0,1″ to my clients in order to switch a relay, it’s too confusing.

 You’re right it seemed like rigmarole to me too. Therefore I’ve introduced ALIAS.

ALIAS? What’s that?

Let’s look at an example, this would be the configuration file using ALIAS:

MTX_PIN: 0000 - If the SIM card does not have a PIN, leave 0000

MTX_model: MTX65IND – The MTX model chosen is MTX65IND due to its relays

MTX_mode: none – We don’t need GPRS-serial tunnels

SMS_allPhones: off - We only want authorized phones to send AT commands

SMS_validPhone1: 666 123 456 - Authorized phone # 1

SMS_ATEnabled: on – AT commands are accepted by SMS

SMS_alias1: ON1> AT ^ SSIO = 0.0 Activates R1 when it receives an SMS with ON1

SMS_alias2: OFF1> AT ^ SSIO = 0.1 Deactivates R1 when it receives an SMS with OFF1

SMS_alias3: ON2> AT ^ SSIO = 1.0 Activates R2 when it receives an SMS with ON2

SMS_alias4: OFF2> AT ^ SSIO = 1.1 Deactivates R2 when it receives an SMS with OFF2

SMS_alias5: ON3> AT ^ SSIO = 2.0 Activates R3 when it receives an SMS with ON3

SMS_alias6: OFF3> AT ^ SSIO = 2.1 Deactivates R3 when it receives an SMS with OFF3

SMS_alias7: ON4> AT ^ SSIO = 6.0 Activates R7 when it receives an SMS with ON4

SMS_alias8: OFF4> AT ^ SSIO = 6.1 Deactivates R7 when it receives an SMS with OFF4

With the previous configuration, we activate R1 with an SMS that says “ON1” and we deactivate it with “OFF1”. Or rather, when the modem receives an SMS saying “ON1”, it internally interprets it as “AT^SSIO=0,0″. If I wanted to activate R1 with the text “luz1on”, I would have to specify something like:

SMS_alias1: light1on>AT^SSIO=0,0

Now I like it more. But I would also like to have a confirmation that the relay has been switched, is that possible?

Sure, I would ask myself the same thing.

To do this all you have to do is add this line to the configuration file:

SMS_ATResponse: You receive the AT command’s response via SMS

This means that the modem sends the response from the AT command.

But wouldn’t it send a response that a non-technical user couldn’t understand? As it would be the modem’s response to an AT command…

Yes it would. This is ok for finding out coverage, reading digital/analog input values but perhaps it’s not the best idea for finding out if a command has ran successfully, like switching a relay. For the latter we can introduce the following lines to the configuration file:

SMS_aliasOk: Command Ok – this text is sent by SMS if the SMS command was carried out successfully.

SMS_aliasError: Command Error – this text is sent by SMS if the SMS command was NOT carried out successfully.

With this, if an SMS command is carried out (and carried out successfully), the phone that send the SMS command will receive an SMS saying “Command Ok”. If it carried out with errors it will receive and SMS saying “Command Error”. If it isn’t carried out at all, the phone won’t receive anything.

To sum up, the MTXTunnelv5.0 configuration file that can switch 4 relays looks like this:

MTX_PIN: 0000 – If the SIM card does not have a PIN, leave 0000

MTX_model: MTX65IND – The MTX model chosen is MTX65IND due to its relays

MTX_mode: none – We don’t need GPRS-serial tunnels

SMS_allPhones: off – We only want authorized phones to send AT commands

SMS_validPhone1: 666 123 456 – Authorized phone # 1

SMS_ATEnabled: on - AT commands are accepted by SMS

SMS_alias1: ON1> AT ^ SSIO = 0.0 Activates R1 when it receives an SMS with ON1

SMS_alias2: OFF1> AT ^ SSIO = 0.1 Deactivates R1 when it receives an SMS with OFF1

SMS_alias3: ON2> AT ^ SSIO = 1.0 Activates R2 when it receives an SMS with ON2

SMS_alias4: OFF2> AT ^ SSIO = 1.1 Deactivates R2 when it receives an SMS with OFF2

SMS_alias5: ON3> AT ^ SSIO = 2.0 Activates R3 when it receives an SMS with ON3

SMS_alias6: OFF3> AT ^ SSIO = 2.1 Deactivates R3 when it receives an SMS with OFF3

SMS_alias7: ON4> AT ^ SSIO = 6.0 Activates R7 when it receives an SMS with ON4

SMS_alias8: OFF4> AT ^ SSIO = 6.1 Deactivates R7 when it receives an SMS with OFF4

SMS_ATResponse: You receive the AT command’s response via SMS

SMS_aliasOk: Command Ok - this text is sent by SMS if the SMS command was carried out successfully.

SMS_aliasError: Command Error - this text is sent by SMS if the SMS command was NOT carried out successfully.

FYI.  For the clueless – The grey text is an explanation. Don’t put them in the real configuration file.

Easy and customizable isn’t it? I hope that it’s interesting to some of you. See you next time. ;)

 

Tags:

Comments 4 Comments »

The new MTXTunnel v5.0 is now available.

After a fairly long period of time it’s finally finished. The new version has a lot of changes compared to the previous version MTXTunnel v4.0 (to give you an idea the manual used to have 20 pages and now has 210 pages). A lot of the features have been suggested by people who currently use MTXTunnel v4.0 or previous versions, and I have included these suggestions in this new version. Things like being able to control 2 devices with a single MTX65i modem (one for each serial port), being able to use it in ultra low power scenarios, UDP/TCP communications, SSL security, DynDNS, embedded Webserver, Telnet, sending telemetries (GPIOs and ADCs…), sending GPS position etc. All of these things are included in the new version; I think that it’s quite complete.

As I said, the manual is quite extensive but I have added about 30 configuration examples for different scenarios. That way the majority of users find an example that relates to what they want to do or modify slightly, depending on their requirements. This means that you don’t have to read the entire manual.

Normally I add FAQs in the manuals to try answer any questions that may arise. The FAQs that are in the new MTXTunnel v5.0 manual are shown below. I hope you find them interesting. As always, if you have any suggestions let me know. If they are interesting they won’t fall on deaf ears, they will be included in later versions just like I have done with previous suggestions in this new version.

Here are the FAQs, they are quite long but they summarize all of the main, new things that you can do with your device. If you have five minutes to read them, you will see that MTXTunnel v5.0 can be useful in many future applications.

What is MTXTunnel?

MTXTunnel v5.0 is a software application that can be pre-installed by  Matrix (if requested) in one of the following MTX modems (MTX65i, MTX65IND, MTX65ULP y MTX65+G).

mtxtunnel5

What is MTXTunnel used for?

The MTXTunnel can be mainly used to create a transparent Gateway (or tunnel) from the SerialPort to the GPRS. If you already have a machine or device with a serial port, you could read/control it in the same way as if it were physically connected to your computer.

 

This is the scenario: serial equipment connected to a PC to read/write …

cable-serie

NOW with GPRS-Serial MTXTunnel gateway, the above scenario is showed in the following example. Now your PC has to establish a TCP/IP connection with MTXTunnel. Then, EVERYTHING you send to this TCP/IP connection will be sent to the equipment’s serial port by MTXTunnel. On the contrary, all of the information in the equipment’s serial port is sent to your server using the GPRS network.

pasarela-serie-gprs1

Is MTXTunnel needed at the PC server’s side?

It depends, but in general, it is not needed at the PC server’s side 99% of the time.

Not needed: If you already have your PC control software and already have the option to connect as TCP/IP or UDP, a modem with MTXTunnel is not needed. Just configure the IP and port of remote MTXTunnel and your PC will use the ready internet connection to send and receive data remotely.

Not needed: If your PC control software does not have the option of connecting using TCP/IP or UDP and the only option you have is to choose a COM port, the MTXTunnel+modem is also not needed. There are some freeware drivers for your operating system as Windows can emulate a COM port. Once this free driver is installed, a virtual COM (like COM100) will be installed in your PC and you must point to the IP and TCP port of the MTXTunnel remote. You must choose this virtual COM in your PC software. Please contact Matrix for more information about recommended virtual serial drivers.

Needed: If you need a “serial cable replacer” because for example you have to communicate 2 RS232 serial devices remotely and there is no intelligence or PC control software (you cannot install virtual COM port), you will need 2 MTXTunnels, one in each end. This is an example of this scenario:

cable-serie-replacer1

Who starts the connection?

MTXTunnel has the following modes TCP Server, TCP Client and UDP.

  • TCP Server mode. MTXTunnel is waiting for incoming connections. This is to say that the remote device (PC server) will start and establish the GRPS-Serial Gateway.
  • TCP Client mode. MTXTunnel will start the Gateway. It will connect to the configured IP + port of the server PC AND establish the GRPS-Serial Gateway automatically.
  • UDP mode. UDP is not oriented to connection protocol. MTXTunnel just waits for UDP packet and sends them to the serial port and vice versa. The data present at serial port is sent to a PC via UDP.

 

It is mandatory to be permanently connected to GPRS when already configured as TCP Server, TCP Client or UDP?

No. It’s not. If your application requires it to do so, MTXTunnel can be GPRS connected 100% of the time. Remember that network operators will bill the data volume, not time.

If you do not need MTXTunnel to be connected 100% of the time and you want the connection to be sporadic, MTXTunnel can be activated in these situations:

1. – Missed call from authorized phone number.

2. – Incoming SMS including the word “on” from an authorized phone number.

3. – By activating a digital input in MTXTunnel.

4. – When an analog input value is out of range.

5. – Depending on programmed date/hour (up to ten).

6. – When there is serial data (only TCP Server mode).

So… how long is MTXTunnel active for (GPRS connected)?

It’s configurable by the GPRS_timeout parameter. You can specify the time in minutes after which, if it doesn’t detect traffic at GPRS connection, MTXTunnel will close the session.

 

I want to use MTXTunnel as TCP Server so I can connect to them periodically from my PC. Will I need SIMs with IP fixed provisioned?

It is not mandatory. You have various ways to find out the remote IP if using normal dynamic IP addressing SIMs. You can either make a missed call or send an SMS with the word “on” to remote MTXTunnel equipments. MTXTunnel will reply with an SMS including the IP obtained at this moment in time.

ip-dinamica-sms1

New MTXTunnel V5.0 is DynDNS featured. DynDNS is a service allowing you to associate DNS name (like modem1.dyndns.org) to the IP obtained by MTXTunnel. For now, you can use this for free:  www.dyndns.org .

I found that in my case I’m going to use thousands of MTXTunnel devices. I cannot use missed calls or SMSs to work out IP addresses. I do not want to use DynDNS as it can be difficult to handle and even costly. What can I do?

The MTXTunnel will inform the server PC every time an IP address changes.  

You just need to enable a configuration parameter so each time MTXTunnel changes the IP it will send frame data to a server PC with the following information: IMEI, the newly obtained IP obtained and an optional user-configurable text.

rs232-gprs-dyndns1

Is it possible to send the new IP to a Web server? I’m more familiar with Web programming –ASP, PHP- rather than TCP-IP sockets. I’m thinking about using a Data Base. Is this possible?

Yes, it is. If you prefer, it’s possible for MTXTunnel to send the newly obtained IP address to a Web Server using http GET (URL + parameters).

MTXTunnel can be installed on several Cinterion-based modem terminals like MTX65i, MTX65IND, MTX65ULP y MTX65+G.  What are the differences between them? 

For main applications, the MTX65i is suitable.

If you need RS485 serial communication, remote activation of relays, or to be able to remotely read 4-20mA, the recommended modem is MTX65IND.

If power consumption is critical, use the MTX65ULP modem as it can be completely powered-off (consumption is around 2uA) except in the configured situations.

If you need some extra features like GPS positioning, you should choose the MTX-65+G.

You are talking about relays, analog inputs…  Is MTXTunnel not a Serial-GPRS Gateway?

At the same time, MTXTunnel is a serial-GPRS Gateway and can also control digital input/outputs, analog inputs, relays, GPS receiver, devices connected to SPI/I2C…

Example:

-MTXTunnel can remotely read a digital input or change a digital output.

-MTXTunnel can send (X seconds configurable) the GPS positioning to a PC or Web Server and can remotely read a sensor connected to SPI/I2C. MTXTunnel can automatically send, every X configured seconds, the status of all input/outputs or GPS position to a server PC or WebServer. SMS messages can also be used.

So for example, could I control the relay from the PC in my office by sending an AT command through a TCP/IP connection?

Yes but as well as sending an AT command via TCP/IP connection, there are other ways. You can also send them through the modem’s serial port or via SMS. You can also switch a relay or read an MTXTunnel digital/analog input status from your own web page (look at the API manual in this manual for annex example scenarios).

So, using MTX-IND, I can activate a relay using a SMS, but… it’s not practical because the AT command is not intuitive or easy to remember.

You do not have to send the exact AT command. This means that the SMS text does NOT have to be “AT^SSIO=0, 0” to activate Relay #1. You can configure it and use ALIAS text.

Example: “RELE1ON” is the text of the SMS to activate GPIO0 (Relay #1). MTXTunnel will interpret it to AT^SSIO=0, 0.

You can create up to 10 different ALIAS text strings.

MTX65i, MTX65IND and MTX65ULP modem terminals have 2 serial ports. Could I control 2 external devices with one terminal? 

Yes, you can.  MTXTunnel can control 2 RS232 external devices with just one SIM card. MTXTunnel will run 2 serial-GPRS running in parallel.

Just remember that the MTX65i and the MTX65ULP secondary port cannot use flow control because the do not have the CTS and RTS lines; they only have the TX and RX lines.

 

gprs-serie-2-dispositivos1

What about MTXTunnel installed on MTX65+G which has a GPS receiver inside? Can I use it for fleet management? 

It’s not intended for professional fleet management. MTXTunnel reads the GPS positioning using some of the MTXTunnel GSM/GPRS services: IP tunnel, WebServer, Telnet or SMS.

MTXTunnel can be configured to automatically send the GPS position every X seconds. However, MTXTunnel does not internally store the position in the Flash memory. This is a typical application if GPRS coverage is lost. So, this is for basic fleet management as professional ones normally stores position points like a data logger.

There is another version of MTXTunnel intended for professional track & trace using the MTX-65+G device. This version is called the MTXTunnel-GPS and has another license price, configuration parameters and also the general functionality is different. Please ask gsmsupport@matrix.es for more information.

What is WebServer used for?

MTXTunnel WebServer which is included can be used to read the digital input/outputs or analog inputs and to change digital outputs easily in a PC (connected to internet) using a common internet browser.

Not only this, you can see and modify the MTXTunnel remotely. Also you can execute AT remote commands, like network coverage (AT+CSQ), check incoming SMS…

What is Telnet used for? 

You can basically do the same with the Telnet service in MTXTunnel as you can with WebServer but it’s more common used for third party application integration. Please read TELNET and API section.

I’m worried about unauthorized access using WebServer or Telnet.

MTXTunnel has an internal firewall which can be activated. Then MTXTunnel will only accept connections from previously configured IP addresses. Any other IP addresses will be blocked.

For maintenance purposes, I would like access to MTXTunnel at any time and in any location, from any IP address.

In this case Firewall WebServer must be disabled, but we recommend protecting WebServer with a Login and Password. MTXTunnel can work with our without a Login/Password (public WebServer). The same applies for Telnet.

Could I or somebody else receive an SMS when an input changes, like alarm detection?

You can configure MTXTunnel to send special and configured SMS text strings up to 10 configured different phone numbers.

SMS text can be configured in different text strings related with digital or analog input.

MTXTunnel 5.0 is a GRPS-Serial tunnel Gateway. What is a GRPS-I2C, GPRS-SPI, HTTP-Serial or SMS-Serial tunnel? Do you have some examples?

Examples.

GPRS-I2C Tunnel: You can read an I2C sensor remotely like a temperature sensor.

GPRS-SPI Tunnel: For example you can write data on SPI bus and if a display is connected to it, the data will be on display.

HTTP-Serial Tunnel: Example. You have a Web page with a form. All filled form data can be sent to serial port MTXTunnel connected device. Then MTXTunnel will collect the machine response and send the data as a web response to your Web page.

SMS-Serial Tunnel:  Example. You can define a special text like “MTX” at the beginning of the SMS string. The text after this special string will be redirected to the serial port of the machine. MTXTunnel can get the response from the machine and send another SMS to the user. Example: “MTX 12345”: MTXTunnel will send “12345” string to the serial port and will get a response from the machine like “67890”, which will be sent as SMS.

I need a low power application MTX65ULP terminal modem. What can MTXTunnel do?

The MTX65ULP is normally switched off completely. This way the power consumption is about 2 uA. The modem is off and cannot do anything. It cannot receive calls, SMSs or communicate at all. Therefore an event needs to happen.

This event is similar to an interruption. A digital input level change or an alarm can wake up the modem.

As an example, MTXTunnel will wake up every 24 hours; send the telemetry (all the inputs values, RS232 …) and after 5 minutes of being awake, the terminal will be automatically switched off. You can control or configure the wake up time and the sleep time period.

Is it also possible to define scheduled wake up tasks. For example, MTX65ULP can wake up X minutes every day at 10.00 AM or only on the 1st and 15th days of the current month at 08.00am and 08.00 pm.

Keep in mind that the MTX65ULP is the ideal solution for remote water counter metering where there is no external power so it needs batteries to run for a long time (7 years…).

If MTXTunnel can be woken up in a configured time, does this mean that there is clock inside?  But you can also say that it’s powered off. Please explain.

MTX65ULP has own Real Time Clock independent to TC65 RTC and is always powered from external power, but it also has own battery source. This RTC allows to the modem wake up at configured-scheduled time/date.

Can this timing be synchronized?

All RTCs have some deviations. So, MTXTunnel V7 can use network timing synchronization. This feature is mandatory to use with the MTX65ULP. This way, every time MTXTunnel is connected to GPRS, it is linked to a timing server and can update the internal timing.

gprs-sincronizacion-horaria1

MTXTunnel used on the MTX65ULP wakes up at configured day/hour for some time (x minutes). Will the GPRS-Serial Gateway be active at this time?

During wake-up time, the modem will start and will run all configured services (WebServer, Telnet, Input/output telemetries…) as well as the serial tunnel gateway.

What about SSL security? How does it work?

Some applications need some encryption data transmission. SSL is used. This way the data is transmitted and received SSL encrypted, avoiding data recovering sniffer. SSK is only available in TCP client mode. Be sure than your server can support SSL sockets in the following specifications:

Nevertheless, we recommend SSL encryption if it is mandatory due to the bigger amount of data volume and the reduction in data speed transfer.

What does “API” feature mean?

API is mainly a way to integrate MTXTunnel in end user application. Basically it’s like a special AT commands end user. It can easily integrate in a web page and for example can also switch a relay (change an Output).

API could also be used to remotely access MTX configuration and send AT commands at the same time without knowing all of the configuration parameter syntax.

The new MTXTunnelv5.0 has many options… How do you configure a specific scenario?

The new MTXTunnel V5.0 has a lot of configuration parameters, more than explained in the FAQ section. Take a look in the configuration section.

Next you can find step-by-step MTXTunnel examples of first configuration scenarios; they are very useful for you for first hand-on.

In the Annex there are lots of examples of scenarios with the appropriate configuration to get MTXTunnel working. Try to find the closest scenario to you and review the copy & paste selected configuration, it’s nothing more special than that.

If you have specific questions contact the support line gsmsupport@matrix.es.

And that’s it. If you have read this far I would like to thank you J If you have any questions you can leave a comment in the forum forum I will gladly help you. You could also send me an email to jose@blogelectronica.com and my work email address is jgallego@matrix.es

I hope it’s been interesting, see you next time. 

Tags: , , , ,

Comments 4 Comments »